方法:http://www.aboutyun.com/thread-12694-1-1.html
http://www.linuxidc.com/topicnews.aspx?tid=13
https://cloud.tencent.com/developer/article/1389629
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:toolsCygwinhomelenovohadooplibnative
会不会是这种路径,在这个伪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
几近崩溃啊
最后抱着试试看的心理,给我参照的博客的作者回复了一下,没想到让我柳暗花明了
再次隆重推出这篇文章:https://cloud.tencent.com/developer/article/1389629
作者说,从2.xx版本后,-all.sh文件就换了目录了!
在sbin
no zuo no die!
总算解决了这个东西了,这就像委将对想引用设置到对象实例一般神级的存在。
感觉这个路上绕的时间有点长了。
前置工作没做好。
开始换个方向:
1、学习下Linux系统,不需要太深入,先了解下基本的操作使用,这样对大部分命令就有个初步的认识了。
2、直接在Linux系统上安装,避开由于环境带来的困扰,毕竟,要不变初心才好,而初心,是学习Hadoop。
从下一篇开始走新路。