问题如下:
配置完hadoop-env.sh,装好native库后,hadoop checknative仍然无法找到任何库
错误如下:
推荐一个实用技巧,手动设置hadoop shell debug模式:
export HADOOP_ROOT_LOGGER=DEBUG,console(直接输入到命令行就行)
18/08/22 17:12:28 DEBUG util.NativeCodeLoader: Trying to load the custom-built native-hadoop library...
18/08/22 17:12:28 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /opt/beh/core/hadoop/lib/native/libhadoop.so
: /lib64/libc.so .6: version `GLIBC_2.14' not found (required by /opt/beh/core/hadoop/lib/native/libhadoop.so )
18/08/22 17:12:28 DEBUG util.NativeCodeLoader: java.library.path=/opt/beh/core/hadoop/lib/native
18/08/22 17:12:28 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
18/08/22 17:12:28 DEBUG util.Shell: setsid exited with exit code 0
Native library checking:
hadoop: false
zlib: false
snappy: false
lz4: false
bzip2: false
openssl: false
18/08/22 17:12:28 INFO util.ExitUtil: Exiting with status 1
问题分析:
看报错一时间没反应过来为啥,也没有去搜索,旁边同事告诉我可能是centos版本的问题,这个错也符合这个情况,就没有搜索,开始尝试修改
软件版本:
hadoop-2.6.0-cdh5.13.1,Centos6
解决:
刚开始的native包是CDH-5.13.1-1.cdh5.13.1.p0.2-
el7
.parcel里面找的native库,然后我就用以前的cdh5.1.3.-
el6
的hadoop里面的native替代这个native(就在一台机器,方便拿),结果如下:
18/08/22 18:50:50 DEBUG util.NativeCodeLoader: Trying to load the custom-built native-hadoop library...
18/08/22 18:50:50 DEBUG util.NativeCodeLoader: Loaded the native-hadoop library
18/08/22 18:50:50 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
18/08/22 18:50:50 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
18/08/22 18:50:50 DEBUG crypto.OpensslCipher: Failed to load OpenSSL Cipher.
java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCodeLoader.buildSupportsOpenssl()Z
at org.apache.hadoop.util.NativeCodeLoader.buildSupportsOpenssl(Native Method)
at org.apache.hadoop.crypto.OpensslCipher.<clinit>(OpensslCipher.java:84)
at org.apache.hadoop.util.NativeLibraryChecker.main(NativeLibraryChecker.java:87)
18/08/22 18:50:50 DEBUG util.Shell: setsid exited with exit code 0
Native library checking:
hadoop: true /opt/beh/core/hadoop/lib/native/libhadoop.so
zlib: true /lib64/libz.so.1
snappy: true /opt/beh/core/hadoop/lib/native/libsnappy.so.1
lz4: true revision:99
bzip2: true /lib64/libbz2.so.1
openssl: false org.apache.hadoop.util.NativeCodeLoader.buildSupportsOpenssl()Z
当时以为没事,后来hbase一直起不了,报错跟这个一样,且hdfs 不能put文件,都是这个错。。。。
最后的手段就是着手下载CDH-5.13.1-1.cdh5.13.1.p0.2-
el6
.parcel,然后传到linux上解压(Windows解压不全,而且正好没有需要的native库(=|,|=))
完整路径:CDH/lib/hadoop/lib/native
把native拷贝到集群上,替换掉原有的native
然后就是一切ok了,有几台机器出现:
openssl: false Cannot load libcrypto.so (libcrypto.so: cannot open shared object file: No such file or directory)!
这个直接从好的机器拷贝过来到响应目录下就ok了
教训:版本真重要!
后来新搭建apache hadoop2.7.7再次出现这个错误:
第一反应是centos版本不对,后来用了cdh-el6的native包好使了,由此验证,Apache 官网自带的编译好的hadoop 2.7.7是基于centos7的。
问题如下:配置完hadoop-env.sh,装好native库后,hadoop checknative仍然无法找到任何库错误如下:推荐一个实用技巧,手动设置hadoop shell debug模式:export HADOOP_ROOT_LOGGER=DEBUG,console(直接输入到命令行就行) 18/08/22 17:12:28 DEBUG util.NativeC...
在页面中显示一直处于
ACCEPTED Applications 状态
修改日志级别export
HADOOP
_ROOT_LOGGER=
DEBUG
,console查看下详细信息
DEBUG
crypto.OpensslCipher:
Failed
to
load
OpenSSL Cipher.j...
http://archive.cloudera.com/cdh5/cdh/5/
hadoop
-2.5.0-cdh5.3.0.tar.gz
zookeeper-3.4.5-cdh5.3.0.tar.gz
hive-0.13.1-cdh5.3.0.tar.gz
https://repo1.maven.
org
/maven2/
org
/
apache
/hive/hive-jdbc/
1、java.lang.UnsatisfiedLinkError:
org
.
apache
.
hadoop
.
util
.
Native
Code
Loader
.buildSupportsSnappy()Z
这个
问题
是因为本地
库
没有加载上。在spark-env.sh中加上:
export JAVA_LIBRARY_PATH=$JAVA_LIBRARY_PATH:$
HADOOP
_HOME/lib/nati...
一、2019-09-17 21:52:04,160 WARN
util
.
Native
Code
Loader
: Unable to
load
native
-
hadoop
library for your platform... using builtin-java classes where applicable
解决办法:这错误可以忽略的,所以就参照网络上的直接在日志文件里面改了一下就没有了。
java.lang.UnsatisfiedLinkError:
org
.
apache
.
hadoop
.
util
.
Native
Code
Loader
.buildSupportsOpenssl()Z
at
org
.
apache
.
hadoop
.
util
.
Native
Code
Loader
.buildSupportsOpenssl(
Native
Method)
at
org
.
apache
.
hadoop
.cr
Hadoop
启动yarn的时候,无法获取"/opt/module/
hadoop
-3.1.1/logs/
hadoop
-ajie-nodemanager-
hadoop
102.out" 的文件状态(stat): 没有那个文件或目录
进入 vim /opt/module/
hadoop
-3.1.3/etc/
hadoop
/workers,删除localhost,如果已经删除,就是hostname可能写的有
问题
,hostname前后不允许有空格
2013-07-23 12:39:32,982 FATAL
org
.
apache
.
hadoop
.hdfs.server.namenode.NameNode: Exception in namenode join
java.io.IOException: NameNode is not formatted.
at
org
.
apache
.
hadoop
.hdfs.server.namenode.FS
1. 安装必要的工具和依赖项:
- 确保你的系统上已经安装了Java Development Kit(JDK)。
- 安装CMake(至少
版本
3.15)和GNU Autotools(如automake、autoconf等)。
- 安装编译
Hadoop
所需的其他依赖项,如zlib、protobuf、openssl等。
2. 获取
Hadoop
源代码:
- 下载
Hadoop
源代码包,可以从官方网站或Github上获取。
3. 配置编译环境:
- 进入
Hadoop
源代码目录,运行`./bootstrap.sh`命令以生成必要的构建文件。
- 运行`./configure`命令以配置编译环境。你可以使用`--prefix`参数指定安装目录。
4. 编译本地
库
:
- 运行`make`命令编译
Hadoop
本地
库
。你可以使用`-j`参数指定并发编译的线程数,以加快编译速度。
5. 安装本地
库
:
- 运行`make install`命令安装编译好的本地
库
。如果之前指定了安装目录,本地
库
将被安装到该目录中。
完成上述步骤后,你将在指定的安装目录中找到编译好的
Hadoop
本地
库
。请注意,编译
Hadoop
可能会耗费一定的时间和资源,具体取决于你的系统配置和网络速度。