zoukankan      html  css  js  c++  java
  • Hadoop异常解决:Unable to load native-hadoop library

    问题

    使用Hadoop时,每次起NameNode,DataNode,或者使用命令hadoop fs -ls的时候,都会出现如下提示

    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
    

    怎么修呢?

    分析

    查看网上文章,比较靠谱的说法是“hadoop不能加载本地库”。

    不能加载的原因主要有两种:

    • Linux机器是32位的,Hadoop安装包是64位的,不兼容,需要自己打包源码。
    • 运行的参数HADOOP_OPTS没有正确设置,所以找不到目录文件。

    一个一个来:

    方案1

    首先,我使用命令uname -i查看本机的配置,发现是64位的。第一个猜想不成立。

    x86_64
    

    参考 -> 5 ways to check if your Linux OS is 64-bit or 32-bit https://www.faqforge.com/linux/5-ways-check-linux-os-64-bit-32-bit/

    方案2

    其次,我配置了HADOOP_OPTS并重试,还是不行。第二个方案也失败了。

    /etc/hadoop/hadoop-env.sh

    vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
    
    ->
    
    export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
    

    参考 -> hadoop报错 https://blog.csdn.net/weixin_38256474/article/details/94440838

    解决

    多想一步,既然我们让Hadoop去这个/lib/native目录下查找类库,那么这个目录下到底有些什么东西呢?

    cd过去一看,空空如也!

    所以即使我们配置对了路径,还是什么都没有找到。

    我使用的是这个版本,hadoop-2.6.0-cdh5.15.1。去官网重下了一个,解压缩发现还是空的。

    于是换了一个不是CDH的版本:hadoop-2.7.7,下载解压缩,然后把/lib/native下的东西拷贝到原来的系统中。

    -rw-r--r-- 1 root root 1492202 Oct 30 10:59 libhadoop.a
    -rw-r--r-- 1 root root 1632624 Oct 30 10:59 libhadooppipes.a
    -rwxr-xr-x 1 root root  864841 Oct 30 10:59 libhadoop.so
    -rwxr-xr-x 1 root root  864841 Oct 30 10:59 libhadoop.so.1.0.0
    -rw-r--r-- 1 root root  476154 Oct 30 10:59 libhadooputils.a
    -rw-r--r-- 1 root root  446100 Oct 30 10:59 libhdfs.a
    -rwxr-xr-x 1 root root  281340 Oct 30 10:59 libhdfs.so
    -rwxr-xr-x 1 root root  281340 Oct 30 10:59 libhdfs.so.0.0.0
    

    可以正常使用了。

    总结

    遇到问题,结合前人经验,融合自己的思考,关键时刻要多想一步!

  • 相关阅读:
    SpringBoot-容器启动的时候执行一些内容
    Java JVM 启动参数
    leecode刷题(9)-- 有效的数独
    leecode刷题(8)-- 两数之和
    leecode刷题(7)-- 加一
    leecode刷题(6)-- 两个数组的交集II
    leecode刷题(5)-- 只出现一次的数字
    leecode刷题(4)-- 存在重复数组
    leecode刷题(3)-- 旋转数组
    leecode刷题(2)-- 买卖股票的最佳时机
  • 原文地址:https://www.cnblogs.com/maxstack/p/13901201.html
Copyright © 2011-2022 走看看