【问题标题】:Hadoop: Unable to load native-hadoop library for your platformHadoop:无法为您的平台加载本机 hadoop 库
【发布时间】:2016-05-08 09:45:09
【问题描述】:

我在 Ubuntu 上安装了 Hadoop 2.7.2 单节点,我想运行 java wordcount 程序。 jar 文件的编译和创建已成功完成,但是当我在 Hadoop 上运行 jar 文件时,我收到以下消息:

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

我通过编辑 .bashrc 文件来设置环境变量:

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib

当我输入 hadoop checknative -a 我得到这个:

hadoop: true /usr/local/hadoop/lib/native/libhadoop.so.1.0.0
zlib: true /lib/x86_64-linux-gnu/libz.so.1
snappy: false 
lz4: true revision:99
bzip2: false
openssl: true /usr/lib/x86_64-linux-gnu/libcrypto.so

16/05/09 00:48:53 INFO util.ExitUtil: Exiting with status 1

Hadoop 版本:2.7.2

Ubuntu 版本:14.04

谁能提供一些关于这个问题的线索?

【问题讨论】:

标签: java hadoop


【解决方案1】:

将已编译的本机库文件移动到 $HADOOP_HOME/lib 文件夹。

然后通过编辑 .bashrc 文件来设置你的环境变量

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib  
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib"

确保已编译的本机库文件位于 $HADOOP_HOME/lib 文件夹中。

它应该可以解决问题。

【讨论】:

    【解决方案2】:

    将下面的命令行添加到hadoop-env.sh,它应该会抑制遇到的错误

    export HADOOP_HOME_WARN_SUPPRESS=1
    export HADOOP_ROOT_LOGGER="WARN,DRFA"
    

    【讨论】:

    • 我在 raspberry 上配置了 hadoop,其中没有一个库文件是本机的,虽然一切正常,但可以很好地抑制警告。非常感谢
    【解决方案3】:

    尝试将 hadoop jars-“hadoop-common.jar 和 hadoop-core.jar”加载到您的类路径中。您可以简单地在 eclipse ans 中执行此操作,同时创建一个 jar 文件,这些 jar 将被自动引用。

    【讨论】:

      【解决方案4】:

      /usr/local/etc/hadoop中编辑文件hadoop-env.sh

      将 Hadoop 库添加到 LD_LIBRARY_PATH 中:

      export LD_LIBRARY_PATH=/usr/local/hadoop/lib/native/:$LD_LIBRARY_PATH
      

      试试吧,对我有用

      【讨论】:

        猜你喜欢
        • 2013-11-25
        • 2015-08-02
        • 2013-09-10
        • 2021-12-11
        • 2016-04-30
        • 2016-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多