虽然开发使用hadoop很久,但是一直没有尝试过编译hadoop源码,此次正好因为有32位版本有兼容警告,促使我尝试编译一下hadoop源码顺便解决一下警告问题。
运行hdfs dfs -ls ./ 会有如下警告:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
原因:Hadoop官方提供的Hadoop安装包是由32位操作系统系统编译的,而我们在64位系统上部署时候便出现了警告信息,因此解决方案也很简单。可以自己在64位操作系统上进行编译,或者找到/hadoop/lib/下对应的64位库进行覆盖即可!
如果自行编译源码的话,首先在github上将代码clone下载之后,按照源码中BUILDING.txt文件进行编译环境准备,然后使用:mvn package -Pdist -DskipTests -Dtar 进行编译即可,编译完成之后在/hadoop-2.7.2-src/hadoop-dist/target中会生成一个hadoop-2.7.2.tar.gz压缩包,我编译的是Hadoop2.7.2版本,然后进行替换native即可!
Hadoop2.7.2 64位安装包:链接:http://pan.baidu.com/s/1c23prIo 密码:v7v5