立即注册 登录
About云-梭伦科技 返回首页

desehawk的个人空间 https://www.aboutyun.com/?29 [收藏] [复制] [分享] [RSS]

日志

Hadoop和Spark本地版本库不一致解决方案

已有 1057 次阅读2016-7-25 13:46 | 解决方案, root权限, 运行程序, library, classes

就是报以下这个警告的,也不知道对运行程序究竟会产生什么样的影响,但看着就是不爽,还耽误了我几天时间,把它给解决了,这里记一下,方便以后查找。

unable to load native-hadoop library for your platform... using builtin-java classes where applicable

先是运行Hadoop的时候报该错误,当时发现是由于Hadoop所需要的版本库和系统本地的glibc的版本库不一致导致的,但是有一个问题是系统本地库的地址是在根目录的lib和lib64下面,由于对服务器没有root权限,是无法修改该库的版本的,因此到这里,网上说的大部分解决方案都不行了。

既然不能修改本地库,那就考虑修改环境变量中的PATH,PATH路径要保证读的库地址要在本地库地址路径的前面,因为PATH只要找到结果就会返回,那么我们就把路径/home/work/lacol/加进去并放在前面。

我们需要自己编译一个合适的版本库,例如编译到/home/work/local/glibc目录中,然后把该目录同步到其他相同的服务器,然后用软链接,注意在集群上批量执行该命令:

ln -s /home/work/local/glibc/libc.so /home/work/local/lib64/libc.so.6

以上就解决了Hadoop的版本库的问题,可是打开Spark,发现Spark还报版本库的错误,网上给的该解决方案并不能解决该问题,后来在spark-env.sh中增加了lib64的地址,最终边为如下:

export LD_LIBRARY_PATH=$SPARK_SUBMIT_LIBRARY_PATH:$HADOOP_HOME/lib/native:/home/work/local/lib/:/home/work/local/lib64/

再SCP到所有集群上面,遂解决。



路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条