分享

HADOOP的本地库(NATIVE LIBRARIES)介绍

admin 2014-4-13 16:52:58 发表于 常识型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 15582
我们都知道hadoop是用Java语言,本地库比较容易被忽略,但有时候出错,会遇到是因为本地的原因。下面了解一下本地库。
1.本地库的作用是什么?
2.本地库加载的成功会输出什么信息?
3.本地库加载失败会输出什么信息?
4.如何编译本地库?
5.本地库的位置该如何设置?

Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作。

目前在Hadoop中,本地库应用在文件的压缩上面:
zlib
gzip
在使用这两种压缩方式的时候,Hadoop默认会从$HADOOP_HOME/lib/native/Linux-*目录中加载本地库。

如果加载成功,输出为:

  1. DEBUG util.NativeCodeLoader - Trying to load the custom-built native-hadoop library...
  2. INFO util.NativeCodeLoader - Loaded the native-hadoop library
复制代码

如果加载失败,输出为:

  1. INFO util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
复制代码


在Hadoop的配置文件core-site.xml中可以设置是否使用本地库:

  1. <property>
  2.   <name>hadoop.native.lib</name>
  3.   <value>true</value>
  4.   <description>Should native hadoop libraries, if present, be used.</description>
  5. </property>
复制代码



Hadoop默认的配置为启用本地库。

另外,可以在环境变量中设置使用本地库的位置:

  1. export JAVA_LIBRARY_PATH=/path/to/hadoop-native-libs
复制代码


有的时候也会发现Hadoop自带的本地库无法使用,这种情况下就需要自己去编译本地库了。在$HADOOP_HOME目录下,使用如下命令即可:

  1. ant compile-native
复制代码

编译完成后,可以在$HADOOP_HOME/build/native目录下找到相应的文件,然后指定文件的路径或者移动编译好的文件到默认目录下即可。



已有(7)人评论

跳转到指定楼层
Victor-Shy 发表于 2014-4-18 19:51:35
有点不太明白为什么以前没报过这个错呢,我记得以前没添加这几个配置没有报错呀

点评

Hadoop默认的配置为启用本地库。你看看是不是环境发生变化,导致本地库加载失败  发表于 2014-4-18 19:54
回复

使用道具 举报

pig2 发表于 2014-4-18 19:57:00
Victor-Shy 发表于 2014-4-18 19:51
有点不太明白为什么以前没报过这个错呢,我记得以前没添加这几个配置没有报错呀

你看是不是其他原因造成的,比如权限等。你的错误是什么,你把完整的错误截个图看看
回复

使用道具 举报

babyLiyuan 发表于 2014-12-14 13:04:34
export JAVA_LIBRARY_PATH=/path/to/hadoop-native-libs需要什么变化么,还是每台机子都是一模一样的?

点评

每台机器都可以设置一下  发表于 2014-12-14 13:07
回复

使用道具 举报

desehawk 发表于 2014-12-14 13:08:22
babyLiyuan 发表于 2014-12-14 13:04
export JAVA_LIBRARY_PATH=/path/to/hadoop-native-libs需要什么变化么,还是每台机子都是一模一样的?

他们说hadoop2.6官网提供的是64位,也可以自己在32位机器编译一下安装包。

点评

好的,我试试看,谢谢  发表于 2014-12-14 13:15
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条