hadoop学习第一天

来源:互联网 发布:app数据接口设计规范 编辑:程序博客网 时间:2024/06/06 02:08

问题1:配置完hadoop后执行$ hadoop fs -put说没有此命令,可以确定是环境变量配置出问题了,但是查看/etc/profile 发现似乎没问题?

解决: 再次仔细查看后发现 /opt/yarn/hadoop2.5.2/bin 和 sbin 配置到classpath中去了,改成配置到path下就解决了。


问题2:执行$ hadoop fs -put ./MyWordCount hdfs://localhost:9000/MyWordCount 语句时报错了———15/10/22 19:27:26 WARN util.NativeCodeLoader:Unable to load native-hadoop library for your platform... using builtin-java classes where applicable put: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x


排错:首先参看了http://blog.csdn.net/lalaguozhe/article/details/10580727的解决方法,发现我的libhadoop.so.1.0.0是64位版本的和系统的是一致的,因此不用重新编译


于是又参看了http://www.linuxidc.com/Linux/2012-04/59200.htm

输入$ export HADOOP_ROOT_LOGGER=DEBUG,console按照查看debug信息

发现里面有这么一段 error: java.lang.UnsatisfiedLinkError: /opt/yarn/hadoop-2.5.2/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6:version `GLIBC_2.14' not found(required by /opt/yarn/hadoop-2.5.2/lib/native/libhadoop.so.1.0.0)。需要 GLIBC_2.14版本的。


查看系统当前libc版本 $ ll /lib64/libc.so.6 

lrwxrwxrwx. 1 root root 12 Oct 11  2014 /lib64/libc.so.6 -> libc-2.12.so

hadoop需要的是2.14,而我系统里的是2.12,需要升级,于是又参看了http://blog.csdn.net/officercat/article/details/39520227把libc-2.12.so升级到了libc-2.15.so(稍微高一点版本)


各个版本的glibc可以从http://ftp.gnu.org/gnu/glibc/找,包括其插件glibc-port,下面的工作就是完全照着该文档升级了。
wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz

wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gztar -xvf  glibc-2.15.tar.gztar -xvf  glibc-ports-2.15.tar.gzmv glibc-ports-2.15 glibc-2.15/portsmkdir glibc-build-2.15 cd glibc-build-2.15../glibc-2.15/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/binmake make install



如果成功了,则查看系统当前libc版本 $ ll /lib64/libc.so.6 
lrwxrwxrwx. 1 root root 12 Oct 11  2014 /lib64/libc.so.6 -> libc-2.15.so
会发现自动连接到2.15版本了,如果中间编译失败,或者想详细了解的,请点击上面的原博文链接。
再次运行$ hadoop fs -put ./MyWordCount hdfs://localhost:9000/MyWordCount还是有提示信息。

$ export HADOOP_ROOT_LOGGER=INFO,console,关闭提示信息。
查看系统支持的glibc版本
strings /lib64/libc.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_PRIVATE


可以成功运行了。

0 0