HBase本地安装Snappy

笔者最近要调试一个线上的HBase bug,所以需要做到本地配置等跟线上完全一样。其它的都还好说,但是到了Snappy这儿却碰了一鼻子灰。

所以,在这篇文章,我会介绍如何在本地,安装Snappy,并配置HBase使用它。

环境

HBase cdh5-1.2.0_5.12.1

环境特别重要。它直接关系到需要使用的Snappy以及Hadoop的版本。如果版本对不上,很可能出现链接本地动态链接库时的错误。

操作

操作其实很简单。但是由于官网上没有写,我们自己找blog又没有明确说明版本的问题。所以会碰不少灰。

  1. 编译或者从生产环境,将对应的libsnappy.so拷到本地。
    这一步,你可以选择自行编译snappy,但是,最好不要自行编译,因为你需要非常清楚地知道,你依赖的snappy是哪个版本。这个是1.1.3版本的。
    最好还是直接从生产环境拷过来,因为你本地的HBase源码,肯定对应的是生产环境的。如果使用的是CDH HBase,路径应该是/opt/cloudera/parcels/CDH/lib/hadoop/lib/native

  2. 编译或者从生产环境,将对应的libhadoop.so拷到本地。
    同样,非常不建议自行编译libhadoop。因为我看源码,它依赖的是cdh自己的版本,而且,编译的过程中很容易碰到错误。也不建议直接从网上找一个libhadoop.so。
    还是直接从生产环境拷过来就好了。路径同上

  3. 在HBASE_HOME下面创建一个目录lib/native/Linux-amd64-64/,或者是lib/native/Linux-i386-32 /,取决于你的CPU架构。

  4. 将上面的两个so文件拷贝到这个目录里面去

  5. 在hbase-env.sh中,添加这么两行:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64                                                                                              
export HBASE_LIBRARY_PATH=$HBASE_HOME/lib/native/Linux-amd64-64
  1. 这就完成了,重启即可。

重点是,上面两个动态链接库必须有。而且版本必须对应。这一点要谨记。

    原文作者:AlstonWilliams
    原文地址: https://www.jianshu.com/p/11b5af783429
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞