YARN加载本地库抛出Unable to load native-hadoop library解决办法
来源:互联网 发布:布丁淘宝客软件好用吗 编辑:程序博客网 时间:2024/05/16 04:56
用官方的Hadoop 2.1.0-beta安装后,每次hadoop命令进去都会抛出这样一个Warning
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
设置logger级别,看下具体原因
export HADOOP_ROOT_LOGGER=DEBUG,console
13/08/29 13:59:38 DEBUG util.NativeCodeLoader: Trying to load the custom-built native-hadoop library...13/08/29 13:59:38 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /usr/local/hadoop/hadoop-2.1.0-beta/lib/native/libhadoop.so.1.0.0: /usr/local/hadoop/hadoop-2.1.0-beta/lib/native/libhadoop.so.1.0.0: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)13/08/29 13:59:38 DEBUG util.NativeCodeLoader: java.library.path=/usr/local/hadoop/hadoop-2.1.0-beta/lib/native/Linux-amd64-64:/usr/local/hadoop/hadoop-2.1.0-beta/lib/native13/08/29 13:59:38 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicablewrong ELFCLASS32,难道是加载的so文件系统版本不对
执行命令file libhadoop.so.1.0.0
libhadoop.so.1.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
果然是80386,是32位的系统版本,而我的hadoop环境是64位OS
原来直接从apache镜像中下载的编译好的Hadoop版本native library都是32版本的,如果要支持64位版本,必须自己重新编译,这就有点坑爹了,要知道几乎所有的生产环境都是64位的OS
YARN官方对于native library的一段话验证了这一点
“The pre-built 32-bit i386-Linux native hadoop library is available as part of the hadoop distribution and is located in the lib/native directory”
重新checkout source code
svn checkout http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.1.0-beta/
加上编译native的选项,编译时会根据当前的操作系统架构来生产相应的native库
mvn package -Pdist,native -DskipTests -Dtar
再去native文件下查看所有的file type,已经都是64位版的了,替换线上文件,WARNING消除
file *libhadoop.a: current ar archivelibhadooppipes.a: current ar archivelibhadoop.so: symbolic link to `libhadoop.so.1.0.0'libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, not strippedlibhadooputils.a: current ar archivelibhdfs.a: current ar archivelibhdfs.so: symbolic link to `libhdfs.so.0.0.0'libhdfs.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, not stripped
本文链接http://blog.csdn.net/lalaguozhe/article/details/10361367,转载请注明
- YARN加载本地库抛出Unable to load native-hadoop library解决办法
- YARN加载本地库抛出Unable to load native-hadoop library解决办法
- YARN加载本地库抛出Unable to load native-hadoop library解决办法
- native-hadoop library本地库不一致解决: WARN util.NativeCodeLoader: Unable to load native-hadoop library
- hadoop无法加载本地库文件的原因 Unable to load native-hadoop library for your platform
- Hadoop本地库警告处理(WARN util.NativeCodeLoader: Unable to load native-hadoop library)
- hadoop Unable to load native-hadoop library
- Unable to load native-hadoop library
- Unable to load native-hadoop library
- Unable to load native-hadoop library
- hadoop 无法load Native库的问题( Unable to load native-hadoop library )
- HADOOP Unable to load native-hadoop library for your platform解决办法
- 【解决办法】hadoop运行warn “util.NativeCodeLoader: Unable to load native-hadoop library for your platform”
- hadoop2.X本地库编译问题INFO util.NativeCodeLoader - Unable to load native-hadoop library for your platform.
- hadoop Unable to load native-hadoop library --解决
- hadoop Unable to load native-hadoop library --解决
- hadoop Unable to load native-hadoop library for your platform
- Failed to load native-hadoop本地库不一致的解决办法
- cocos2d-x 全屏播放可以跳过的开场动画mp4
- Android HAL 开发 (3)
- android4.3 自带的权限管理功能
- iBATIS框架的认识
- 卡巴斯基安全部队2014,越来越像VISTA了
- YARN加载本地库抛出Unable to load native-hadoop library解决办法
- 当编写Android工程时不能自动出现R.JAVA文件
- Android HAL 开发 (4)
- arm汇编语言调用C函数
- Android HAL 开发 (5)
- SSH 注意事项
- java相关文件操作
- 支付宝API指南
- 临时表 变量表