Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作。
目前在Hadoop中,本地库应用在文件的压缩上面:
<!--[if !supportLists]-->· <!--[endif]-->zlib
<!--[if !supportLists]-->· <!--[endif]-->gzip
在使用这两种压缩方式的时候,Hadoop默认会从$HADOOP_HOME/lib/native/Linux-*目录中加载本地库。
如果加载成功,输出为:
DEBUG util.NativeCodeLoader – Trying to load the custom-built native-hadoop library…
INFO util.NativeCodeLoader – Loaded the native-hadoop library
如果加载失败,输出为:
INFO util.NativeCodeLoader – Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
在Hadoop的配置文件core-site.xml中可以设置是否使用本地库:
<property>
<name>hadoop.native.lib</name>
<value>true</value>
<description>Should native hadoop libraries, if present, be used.</description>
</property>
Hadoop默认的配置为启用本地库。
另外,可以在环境变量中设置使用本地库的位置:
export JAVA_LIBRARY_PATH=/path/to/hadoop-native-libs
有的时候也会发现Hadoop自带的本地库无法使用,这种情况下就需要自己去编译本地库了。在$HADOOP_HOME目录下,使用如下命令即可:
ant compile-native
编译完成后,可以在$HADOOP_HOME/build/native目录下找到相应的文件,然后指定文件的路径或者移动编译好的文件到默认目录下即可。
相关推荐
hadoop 本地调试代码,暂时还未调试完成,等待本地调试成功
Apache提供的hadoop本地库是32位的,而在64位的服务器上就会有问题,因此需要自己编译64位的版本。 该资源为 64位 macOS 系统下,hadoop 2.8.0 版本对应的本地库。 使用方法: 1.解压到已经安装好的hadoop安装目录...
Apache提供的hadoop本地库是32位的,而在64位的服务器上就会有问题,因此需要64位的版本。 该文件是手动编译的hadoop库文件中的本地库,将原native替换掉即可正常运行hadoop。
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z Hadoop源码_NativeIO.java
hadoop2.4.0 本地库(64位),本人在64位机子上亲自编译源代码后得到的本地库,经测试完全可用
Hadoop 2.2.0版本中在64为linux系统上运行所需要的native库文件。需要时用此native文件夹覆盖Hadoop 2.2.0中native文件夹即可。
针对执行hadoop中hdfs命令报错异常,fail to load native-hadoop的编译过的64位hadoop本地库,替换lib/native即可
hadoop的64位本地库,自己编译本地库比较麻烦,于是共享出来.
xxxx: Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /usr/local/hadoop-2.4.0/lib/native/libhadoop.so which might have disabled stack guard. The VM will try to fix the stack guard ...
解决本地调试Hadoop 异常。 org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
编译环境:centos 6 + hadoop-2.7.2 +jdk1.8.0_152...含snappy
macOS 下编译的hadoop-3.1.3源码所得的native库,可解决mac系统安装hadoop因缺失native库引起的报错
hadoop 64位 本地库
Hadoop数据仓库工具hive介绍
hadoop2.7.6本地运行需要的jar包和报错处理,有winutils.exe,libwinutils.lib,和NativeIO
我们从官网上下载的hadoop的本地库是在32位系统中编译。所以,如果你的linux系统是64位的那么运行的时候可能会出现一些错误导致namenode上hdfs不能启动,这时需要去下载64位本地库来进行替换。
替换掉安装目录下的lib即可,不会的留言
根据hadoop3.2.1源码编译,native library,native库依赖的第三方库主要有openssl 1.1,protobuf 2.5.0,第三方库未包含,如果有缺失的,例如zlib等,可通过homebrew自行安装,用最新版即可,jdk8,hadoop完整包可用...
11.Hadoop本地库1
用以解决native文件在编译出错的问题,下载后直接解压可以解决