Java 无法在Hadoop的本机库中加载bzip2

Java 无法在Hadoop的本机库中加载bzip2,java,hadoop,bzip2,Java,Hadoop,Bzip2,我的环境是 CentOS 7; Spark 1.6.1; Hadoop 2.6.4;在集群模式下,我有两个从节点 当我尝试hadoop命令时,我得到了WARN util.NativeCodeLoader:无法为您的平台加载本机hadoop库…在适用的情况下使用内置java类 我检查了hadoop checknative-a,我得到了所有错误的回答。当我添加 export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native export H

我的环境是 CentOS 7; Spark 1.6.1; Hadoop 2.6.4;在集群模式下,我有两个从节点

当我尝试hadoop命令时,我得到了
WARN util.NativeCodeLoader:无法为您的平台加载本机hadoop库…在适用的情况下使用内置java类

我检查了hadoop checknative-a,我得到了所有错误的回答。当我添加

export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native/"
hadoop env.sh
中重新安装openssl-devel。 但是,当我键入hadoop checknative-a时,仍然收到警告:

[hadoop@host-10-174-101-17 ~]$ hadoop checknative -a
16/07/13 14:36:24 WARN bzip2.Bzip2Factory: Failed to load/initialize native-bzip2 library system-native, will use pure-Java version
16/07/13 14:36:24 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop:  true /usr/local/hadoop/lib/native/libhadoop.so.1.0.0
zlib:    true /lib64/libz.so.1
snappy:  true /lib64/libsnappy.so.1
lz4:     true revision:99
bzip2:   false 
openssl: true /lib64/libcrypto.so
16/07/13 14:36:24 INFO util.ExitUtil: Exiting with status 1
我重新安装了bizp2,并检查了bzip2的版本:

[hadoop@host-10-174-101-17 ~]$ bzip2 --version
bzip2, a block-sorting file compressor.  Version 1.0.6, 6-Sept-2010.

   Copyright (C) 1996-2010 by Julian Seward.

   This program is free software; you can redistribute it and/or modify
   it under the terms set out in the LICENSE file, which is included
   in the bzip2-1.0.6 source distribution.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   LICENSE file for more details.

bzip2: I won't write compressed data to a terminal.
bzip2: For help, type: `bzip2 --help'.
更重要的是,我检查dictionary~/lib64/,都是
libbz2.so.1
libbz2.so
存在,据说如果bzip2加载良好,这应该是路径。 看起来bzip2安装得很好,但hadoop无法加载它。 我也试着像前面提到的那样重新编译。 如果我完全按照它来做,它就不起作用了:

[hadoop@host-10-174-101-17 ~]$ strings /export/apps/hadoop/latest/lib/native/libhadoop.so | grep initIDs
strings: '/export/apps/hadoop/latest/lib/native/libhadoop.so': No such file
如果我将路径更改为我的hadoop路径:/usr/local/hadoop/lib/native/libhadoop.so,它就是这样得到的:

[hadoop@host-10-174-101-17 ~]$ strings /usr/local/hadoop/lib/native/libhadoop.so | grep initIDs
Java_org_apache_hadoop_io_compress_lz4_Lz4Compressor_initIDs
Java_org_apache_hadoop_io_compress_lz4_Lz4Decompressor_initIDs
Java_org_apache_hadoop_io_compress_snappy_SnappyCompressor_initIDs
Java_org_apache_hadoop_io_compress_snappy_SnappyDecompressor_initIDs
Java_org_apache_hadoop_crypto_OpensslCipher_initIDs
Java_org_apache_hadoop_io_compress_zlib_ZlibCompressor_initIDs
Java_org_apache_hadoop_io_compress_zlib_ZlibDecompressor_initIDs
Java_org_apache_hadoop_io_compress_lz4_Lz4Compressor_initIDs
Java_org_apache_hadoop_io_compress_lz4_Lz4Decompressor_initIDs
Java_org_apache_hadoop_io_compress_snappy_SnappyCompressor_initIDs
Java_org_apache_hadoop_io_compress_snappy_SnappyDecompressor_initIDs
Java_org_apache_hadoop_crypto_OpensslCipher_initIDs
Java_org_apache_hadoop_io_compress_zlib_ZlibCompressor_initIDs
Java_org_apache_hadoop_io_compress_zlib_ZlibDecompressor_initIDs
Java_org_apache_hadoop_io_compress_lz4_Lz4Decompressor_initIDs
Java_org_apache_hadoop_io_compress_lz4_Lz4Compressor_initIDs
Java_org_apache_hadoop_io_compress_zlib_ZlibDecompressor_initIDs
Java_org_apache_hadoop_io_compress_snappy_SnappyCompressor_initIDs
Java_org_apache_hadoop_io_compress_snappy_SnappyDecompressor_initIDs
Java_org_apache_hadoop_io_compress_zlib_ZlibCompressor_initIDs
Java_org_apache_hadoop_crypto_OpensslCipher_initIDs
虽然我检查了hadoop checknative-a,但它仍然不起作用。 在这种情况下我能做什么?非常感谢。

这个答案有帮助吗?