Hadoop学习1--解决启动过程中的问题

方法:http://www.aboutyun.com/thread-12694-1-1.html

http://www.linuxidc.com/topicnews.aspx?tid=13

http://www.cnblogs.com/kinglau/p/3270160.html

http://www.winseliu.com/blog/2014/04/21/hadoop2-windows-startguide/

$ bin/start-all.sh
-bash: bin/start-all.sh: No such file or directory

解决历程:

1、一堆人说是没权限,把当前登陆用户对Hadoop文件夹的权限,设置为完全控制。

结果:不起作用

2、参考这篇文章 http://blog.sciencenet.cn/blog-288615-493280.html

结果:无效

3、看日志,http://www.linuxidc.com/Linux/2012-04/59200.htm有一段

15/07/13 23:07:54 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

有一篇文章说,库类型和平台不一致,突然想到,安装cygwin时,64位版本安装失败,后来32位的反倒安装成功了。

明天试一下,重新安装个64位版本试试。

结果:无效

4、再次尝试。网上遇到上述问题,日志里都有error,而我这里,肉眼检查了几遍,也没找到。

使用以下命令打印日志详情,

$ export HADOOP_ROOT_LOGGER=DEBUG,console

$ bin/hadoop fs -text /test/data/origz/access.log.gz

依然没有找到error

很费解,于是,把命令窗口的日志复制到文本中,全文搜索error,

见证神奇的时刻来了!

发现了这么一段:

15/07/14 16:58:01 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: no hadoop in java.library.path

好高级的错误,这也行!

沿着这条路继续走下去=>

http://blog.csdn.net/bamuta/article/details/13506843

我发现了libhadoop.so的快捷方式,也有libhadoop.so.1.0.0

把后者改名,尝试,涛声依旧。

http://blog.csdn.net/xichenguan/article/details/38797331

查了下,发现前者是后者的一个快捷方式(姑且这么叫,因为我的确不知道在linux中该叫啥)

有的说这个版本问题,就是这东西,下载下来是32位的,如果在64位系统中安装,需要自己编译一个。

一边查怎么编译,一边隐隐的觉得有什么地方不对劲。

姑且不论这也是大公司提供的东西,就冲着这是个开源的东西,总不会这么不智能吧?就不能提供一个成品?

接着查!果然,从Hadoop2.5版本后官方已经提供64位版本了。

顺便还学到了怎么验证当前版本的命令

一路cd到这个文件的目录下:..../lib/Native

file libhadoop.so

就可以看到,果然,我机子上装的就是64位。

---------光明啊,又破灭了,一丝凉风吹来。。。没关系,转向继续

在上面那句报错日志之后,是一串的目录,总觉得是路径配置的不对

D:\tools\Cygwin\home\lenovo\hadoop\lib\native

会不会是这种路径,在这个伪linux系统下,不认识呢,隐约记的前两天看到过一个文章说路径要这样来配置:

Cygwin/d/tools/Cygwin/bin...

于是,找了环境变量里的path,和用户变量:HADOOP_HOME(没有自己加),统统改为Cygwin/d/tools/Cygwin/bin

再来格式化!!!!!

错误消失!!!!!!!!!!!!!!!

好艰难的一步。

到最后一步,执行bin/start-all.sh

一直失败,

-bash: bin/start-all.sh: No such file or directory

几近崩溃啊

最后抱着试试看的心理,给我参照的博客的作者回复了一下,没想到让我柳暗花明了

再次隆重推出这篇文章:http://www.cnblogs.com/kinglau/p/3270160.html

作者说,从2.xx版本后,-all.sh文件就换了目录了!

在sbin

no zuo no die!

总算解决了这个东西了,这就像委将对想引用设置到对象实例一般神级的存在。

感觉这个路上绕的时间有点长了。

前置工作没做好。

开始换个方向:

1、学习下Linux系统,不需要太深入,先了解下基本的操作使用,这样对大部分命令就有个初步的认识了。

2、直接在Linux系统上安装,避开由于环境带来的困扰,毕竟,要不变初心才好,而初心,是学习Hadoop。

从下一篇开始走新路。

上一篇:Windows下安装kafka


下一篇:SerialPort访问COM接口获取电子秤数据(C#)