近期,打算hbase建表用snappy压缩时,碰到一些hadoop本地库的问题。

事实上这些问题是一直存在的,仅仅是不影响正常使用,就没有引起重视。

这次希望彻底解决下面问题:

问题一:运行start-dfs.sh时出现下面日志

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 now.

xxxx: It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.

这是由于官网提供的版本号本地库是32位的,在64位主机环境下无法运行。须要下载hadoop源代码进行编译(怎样编译源代码能够上网搜索),编译成功后,找到native下的文件复制到${HADOOP_HOME}/lib/native文件夹下就可以。

问题二:运行start-dfs.sh时出现下面日志

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

在网上找到的全部文章中,都是说在hadoop-env.sh中增加下面两行配置:

export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native

export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/"

可是在測试过程中,增加以上配置还是会提示告警信息,说明本地库未载入成功。

开启debug:

export HADOOP_ROOT_LOGGER=DEBUG,console

运行start-dfs.sh,发现下面日志:

DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: no hadoop in java.library.path

从日志中能够看出hadoop库不在java.library.path所配置的文件夹下,应该是java.library.path配置的路径有问题。在hadoop-env.sh中又一次配置:

export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native

export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native/"

运行start-dfs.sh,告警信息不再显示。经測试。事实上仅仅需export HADOOP_OPTS就可以解决这个问题。

验证本地库是否载入成功:hadoop checknative

15/08/18 10:31:17 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native

15/08/18 10:31:17 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library

Native library checking:

hadoop: true /usr/local/hadoop-2.4.0/lib/native/libhadoop.so.1.0.0

zlib:   true /lib64/libz.so.1

snappy: true /usr/local/hadoop-2.4.0/lib/native/Linux-amd64-64/libsnappy.so.1

lz4:    true revision:99

bzip2:  true /lib64/libbz2.so.1

以上说明本地库已经载入成功。

安装snappy压缩配置能够參考下面两篇文章:

http://www.micmiu.com/bigdata/hadoop/hadoop-snappy-install-config/

http://www.cnblogs.com/shitouer/archive/2013/01/14/2859475.html

依据以上文章配置hbase的时候,建表的时候会卡住。且regionserver报错:IOException: Compression algorithm 'snappy' previously failed test

在网上搜了非常多的文章。都是千篇一律的复制粘帖,始终无法解决以上问题。只是幸运的是。最后找到了这篇文章http://blackwing.iteye.com/blog/1943575,尽管描写叙述上一直让我非常费解,可是经过摸索终于还是攻克了我的问题,非常感谢这位博主。

最后配置hbase须要做的步骤:

1、把hadoop的本地库和snappy的本地库都复制到$HBASE_HOME/lib/native/Linux-amd64-64/文件夹下,例如以下截图:

2、在hbase-env.sh中加入下面配置:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/

export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64/

希望对碰到相同问题的童鞋有点帮助。

hadoop native本地库问题总结的更多相关文章

  1. Hadoop的本地库(Native Libraries)介绍

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

  2. [hadoop] hadoop native libraries 编译

    安装hadoop启动之后总有警告:Unable to load native-hadoop library for your platform... using builtin-Javaclasses ...

  3. spark使用hadoop native库

    默认情况下,hadoop官方发布的二进制包是不包含native库的,native库是用C++实现的,用于进行一些CPU密集型计算,如压缩.比如apache kylin在进行预计算时为了减少预计算的数据 ...

  4. Hadoop支持的压缩格式对比和应用场景以及Hadoop native库

    对于文件的存储.传输.磁盘IO读取等操作在使用Hadoop生态圈的存储系统时是非常常见的,而文件的大小等直接影响了这些操作的速度以及对磁盘空间的消耗. 此时,一种常用的方式就是对文件进行压缩.但文件被 ...

  5. hadoop native

    http://blog.csdn.net/benben85/article/details/4161134 http://stackoverflow.com/questions/19943766/ha ...

  6. 更改hadoop native库文件后datanode故障

    hadoop是用cloudra的官方yum源安装的,服务器是CentOS6.3 64位操作系统,自己写的mapreduce执行的时候hadoop会提示以下错误: WARN util.NativeCod ...

  7. hadoop-2.6.0-cdh5.4.5.tar.gz(CDH)的3节点集群搭建(含zookeeper集群安装)

    前言 本人呕心沥血所写,经过好一段时间反复锤炼和整理修改.感谢所参考的博友们!同时,欢迎前来查阅赏脸的博友们收藏和转载,附上本人的链接 http://www.cnblogs.com/zlslch/p/ ...

  8. hadoop本地库与系统版本不一致引起的错误解决方法

    hadoop本地库与系统版本不一致引起的错误解决方法 部署hadoop的集群环境为 操作系统 centos 5.8 hadoop版本为cloudera   hadoop-0.20.2-cdh3u3 集 ...

  9. Hadoop本地库介绍及相关问题解决方法汇总

    1.hadoop本地库的作用是什么?2.哪两个压缩编码器必须使用hadoop本地库才能运行?3.hadoop的使用方法?4.hadoop本地库与系统版本不一致会引起什么错误?5.$ export HA ...

随机推荐

  1. 微信商户现金红包api php

    微信开发文档: 现金红包:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_5 裂变红包:https:// ...

  2. 洛谷 P1583 魔法照片【二级结构体排序】

    题目描述 一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初始权值从大到小进行排序 ...

  3. 树上两点的最近公共祖先问题(Least Common Ancestors)

    概念: 对于有根树T的两个节点u,v,最近公共祖先LCA(T, u, v)表示一个节点 x, 满足 x 是 u , v 的祖先且 x 的深度尽可能的大.即从 u 到 v 的路径一定经过点 x. 算法: ...

  4. CocoaPods 2017最新、最快安装和使用说明

    2017 - 11 - 29 更新 记录: 今天把系统升级到了最新的10.13 也就是high sierra,导入snapKit的时候Cocoapods的时候出现了下面的问题: -bash: /usr ...

  5. AxureRP7超强部件库打包下载

    摘要: 很多刚刚开始学习Axure的朋友都喜欢到网上搜罗各种部件库(组件库)widgets library ,但是网络中真正实用的并且适合你使用的少之又少,最好的办法就是自己制作适合自己工作内容的部件 ...

  6. [BZOJ 2752] 高速公路

    Link: BZOJ 2752 传送门 Solution: 虽然有期望,但实际上就是除了个总数…… 此题计算总代价明显还是要使用对每个$w_i$计算贡献的方式: $w_i的贡献为w_i*(i-l+1) ...

  7. 【状态压缩DP】BZOJ1087-[SCOI2005]互不侵犯King

    [题目大意] 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. [思路] 先预处理每一行可行的状态 ...

  8. [Interview] 程序员如何制作一份漂亮的面试简历

    简历模板 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; ...

  9. Exercise02_17

    import javax.swing.JOptionPane; public class FrostTemperature { public static void main(String[] arg ...

  10. 更新升级10.11 cocoapods安装出问题最简单的解决方法

    这是因为10.11把cocoapods直接干掉了 sudo gem install -n /usr/local/bin cocoapods 再加一句,完美解决 sudo xcode-select -- ...