Hadoop异常解决(util.NativeCodeLoader)

本文主要介绍了解决异常util.NativeCodeLoader: Unable to load native-hadoop library for your platform的方法。

配置环境

安装sun官网jdk

由于之前安装的java-1.8为openjdk,因此在编译的时候可能会报错。为了解决该问题,因此需要安装官方的jdk

  1. 卸载原先安装的java yum remote java-1.8.0
  2. 下载JDK 8后安装
  3. /etc/profile中配置环境变量,并使用source /etc/profile生效

    1
    2
    3
    export JAVA_HOME=/home/hadoop/jdk1.8.0_101
    export CLASSPATH=$JAVA_HOME/lib/
    export PATH=$PATH:$JAVA_HOME/bin:/usr/bin:/usr/sbin:/bin:/sbin
  4. 使用命令yum install java-1.8.0-openjdk-devel安装devel.

    下载hadoop源码

    1
    2
    tar zxvf hadoop-2.6.5-src.tar.gz
    mv hadoop-2.6.5-src /usr/local/hadoop-2.6.5-src/

安装各种库

1
2
yum -y install svn ncurses-devel gcc*
yum -y install lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel

安装maven

1
2
tar zxvf apache-maven-3.3.9-bin.tar.gz
mv apache-maven-3.3.9 /usr/local/hadoop-2.6.5-src/labc/apache-maven-3.3.9

/etc/profile中配置环境变量,并使用source /etc/profile生效

1
2
3
export MAVEN_HOME=/usr/local/hadoop-2.6.5-src/labc/apache-maven-3.3.9
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$PATH:$MAVEN_HOME/bin

使用mvn -version检查是否配置正确。

安装protocolBuffer

1
2
3
4
5
6
tar zxvf protobuf-2.5.0.tar.gz
mv protobuf-2.5.0 /usr/local/hadoop-2.6.5-src/labc/protobuf-2.5.0
cd /usr/local/hadoop-2.6.5-src/labc/protobuf-2.5.0
./configure
make
make install

使用protoc --version检查是否配置正确。

安装findbugs

1
2
unzip findbugs-1.3.9.zip
mv findbugs-1.3.9 /usr/local/hadoop-2.6.5-src/labc/findbugs-1.3.9

/etc/profile中配置环境变量,并使用source /etc/profile生效

1
2
export  FINDBUGS_HOME=/usr/local/hadoop-2.6.5-src/labc/findbugs-1.3.9
export PATH=$PATH:$FINDBUGS_HOME/bin

使用findbugs -version检查配置是否正确。

编译源码

1
2
cd /usr/local/hadoop-2.6.5-src
mvn clean package -Pdist,native,src -DskipTests -Dtar -Dmaven.javadoc.skip=true

等待编译完成。编译好的文件在/usr/local/hadoop-2.6.5-src/hadoop-dist/target/hadoop-2.6.5.tar.gz下。

安装

/etc/profile中配置环境变量,并使用source /etc/profile生效。

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

已安装情况

若已经完成了hadoop的安装,则将/usr/local/hadoop-2.6.5-src/hadoop-dist/target/hadoop-2.6.5.tar.gz文件解压后,将其中的lib/native替换原安装目录下的文件。

未安装情况

若还未安装,则将该tar文件安装即可。Hadoop-2.7.1非分布式/伪分布式/集群安装与配置(CentOS-6.9)

本文标题:Hadoop异常解决(util.NativeCodeLoader)

文章作者:Jerry

发布时间:2018年06月05日 - 17:04:00

最后更新:2018年06月06日 - 08:41:52

原始链接:https://jerryma0912.github.io/2018/06/05/17-hadoop-NativeCodeLoader/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。