hadoop安装好后,启动的时候总报错
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
网上查到有人说是hadoop的本地库不兼容,需要自己重新编译,于是搜索各种文章,一边参考一边跟着做,期间很浮躁走了很多弯路,虽然有很多步骤可能是不必要的,也在此一并记录(对于我认为可能没用的会在段首备注)
1.编译native,安装必须工具,参考mac下hadoop 2.6.0编译native library,刚开始装的最新版protobuf,编译的时候common工程就出错了,提示protobuf版本不对,重新选择2.5的protobuf版本后common编译过(该文说不能用brew来装protobuf,其实是可以的,文末会附上方法),但是kms开始出现问题:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (dist) on project hadoop-kms: An Ant BuildException has occured: exec returned: 1
2. 重新查看源代码中根目录的BUILDING.txt文件,上面标有requirements,所以其实没必要上网找解决方法
3. Brew install zlib-devel不成功,提示不存在;查询到http://stackoverflow.com/questions/23749530/brew-install-zlib-devel-on-mac-os-x-mavericks,说
xcode-select --install
In OS X 10.9+, the command line developer tools are now installed on demand. So after running this also zlib and zlib-devel should be available (no need for brew install zlib...)
于是执行xcode-select --install试试,也不知道怎么验证是否安装成功,且往下走吧;再次编译,还是失败,还是在kms开始出现问题
4. (可能没用,可跳过)参考http://stackoverflow.com/questions/21752279/failed-to-execute-goal-org-apache-maven-pluginsmaven-antrun-plugin1-6-run-pr,执行mvn clean package -DskipTests -Dtar,无效
5. 参考http://blog.csdn.net/epeaktop/article/details/51604440将protobuf放进环境变量再编译试试(其中用brew安装的软件在目录/usr/local/Cellar/ 下,根据实际目录换掉文中对应的路径),还是报错
6. (可能没用,可跳过)又开始怀疑是不是zlib的问题,但是没有找到mac下的安装方法,查询zlib网站,下载zlib代码,按其根目录的readme文件编译,通过。这是不是意味着zlib-devel安装好了?再次编译,依然失败
7. (可能没用,可跳过)怀疑可能跟openssl有关系,因为编译另一个版本hadoop-2.7.3就是在编译pip的时候失败了,而BUILDING.txt文件中明确说了pip的编译需要openssl的,于是上openssl官网下载包,按里边的intall文件编译,跟zlib很类似。重新编译,结果依旧,看来跟这两个没有关系。
8. 决定不再乱查找文章瞎折腾,自己查看控制台输出,找到最开始出错的地方
Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (dist) on project hadoop-kms: An Ant BuildException has occured: exec returned: 1
[ERROR] around Ant part ...<exec dir="/Users/lishengda/Downloads/hadoop-2.7.0-src/hadoop-common-project/hadoop-kms/target" executable="sh" failonerror="true">... @ 10:134 in /Users/lishengda/Downloads/hadoop-2.7.0-src/hadoop-common-project/hadoop-kms/target/antrun/build-main.xml
[ERROR] -> [Help 1]
于是打开对应的文件/Users/lishengda/Downloads/hadoop-2.7.0-src/hadoop-common-project/hadoop-kms/target/antrun/build-main.xml,通过搜索找到对应行
...
<exec dir="/Users/lishengda/Downloads/hadoop-2.7.0-src/hadoop-common-project/hadoop-kms/target" executable="sh" failonerror="true">
<arg line="./tomcat-untar.sh"/>
</exec>
...
这xml文件虽然我不熟悉,但是看语句结合目前情况也能猜到意思是执行查看错误是执行/Users/lishengda/Downloads/hadoop-2.7.0-src/hadoop-common-project/hadoop-kms/target下的tomcat-utar.sh文件,既然执行出错了,那就找到并打开这个sh文件,内容就两行,分别拷贝出来在控制台执行,
第一行没问题,
lishengdadeMacBook-Air:hadoop-2.7.0-src lishengda$ cd "/Users/lishengda/Downloads/hadoop-2.7.0-src/hadoop-common-project/hadoop-kms/target/tomcat.exp"
lishengdadeMacBook-Air:tomcat.exp lishengda$ pwd
/Users/lishengda/Downloads/hadoop-2.7.0-src/hadoop-common-project/hadoop-kms/target/tomcat.exp
第二行报错,这应该就是错误源头
lishengdadeMacBook-Air:tomcat.exp lishengda$ gzip -cd ../../downloads/apache-tomcat-6.0.41.tar.gz | tar xf -
gzip: ../../downloads/apache-tomcat-6.0.41.tar.gz: unexpected end of file
gzip: ../../downloads/apache-tomcat-6.0.41.tar.gz: uncompress failed

本文详细记录了在Mac环境下,由于hadoop本地库不兼容导致的启动错误,以及如何通过编译解决此问题的过程。包括编译hadoop的native库,解决protobuf版本、zlib、openssl等问题,以及最终成功加载native-hadoop库的验证步骤。

1043

被折叠的 条评论
为什么被折叠?



