Hbase 2.1.6安装配置教程(踩坑记录)

前言

初学大数据,安装大数据各种环境。分享一下安装(CAI KENG)过程(JI LU)。

前提

你已安装好Hadoop 2.7.x版本,强烈推荐的版本!绝对不能是3.1.2版本,因为它不兼容Hbase 2.X.x版本,官方兼容列表说3.1.1+的Hadoop,我的实践中,3.1.2不成功,翻来好久,才看到某DN网友说它是不兼容的,遂放弃T .T。(要是谁能成功了,当我说错了吧,我是暂时不敢再碰3字头的版本了)。这里我用的Hadoop 2.8.5能够成功运行。

第一步:下载

不用多说,选择官方版https://hbase.apache.org/,选择2.1.6版本。真的,不要对最新版本有太强的执念!!尤其是大版本,是要经过市场考验才能成为主力版本。对hbase不是很了解,选择次新版本。

第二步:解压缩

我选择解压缩到/usr/local/hbase。其它的Hadoop和Hive、Spark都在/usr/local/目录下。

第三步:Standalone配置

目前单机中,用Standalone模式配置,后面会虚拟机做分布式配置,如果坑多再补充。这步最关键,Hbase配置不多,其中有几个配置需要注意一下。

配置conf/hbase-env.sh文件,这个文件只需要配置JDK 的绝对路径:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

配置conf/hbase-site.xml文件,它的运行配置:

    
        hbase.rootdir
        hdfs://127.0.0.1:9000/hbase
    
    
        hbase.cluster.distributed
        false
    
    
        hbase.zookeeper.property.dataDir
        /usr/local/hbase/zookeeper
        property from zoo.cfg,the directory where the snapshot is stored
    
    
            hbase.tmp.dir
            /hbase/tmp
            Temporary directory on the local filesystem.
    
    
        hbase.unsafe.stream.capability.enforce
        false
    
    
        zookeeper.znode.parent
        /hbase/master
    

    
        hbase.wal.provider
        filesystem
    
  • hbase.rootdir  Hbase 文件的存储路径,我这里选择存到HDFS

  • hbase.cluster.distributed 是否分布式集群,我这暂时设置为否

  • hbase.zookeeper.property.dataDir 分布式部署时Zk文件的存储路径

  • hbase.tmp.dir 缓存文件存放路径,可以自定义,默认的话,可能会被系统自动清理

  • hbase.unsafe.stream.capability.enforce 单机模式官方推荐设置,具体我也不清楚。。。。

  • zookeeper.znode.parent 这个用于解决 no node for hbase master的报错

  • hbase.wal.provider 这个配置就很关键了,官方BUG,最为致命。以下是官方文档的描述:

  • We will try to use AsyncFSWAL for HBase-2.x as it has better performance while consuming less resources. But the problem for AsyncFSWAL is that it hacks into the internal of the DFSClient implementation, so it will easily be broken when upgrading hadoop, even for a simple patch release.

  • 大意是AsyncFSWAL这个功能带来更好的性能和更低的资源占用,但是它hack了内部DFSClient的实现,当hadoop升级时,导致Region Server极其容易崩,即使第三位数微版本升级。

  • 当这个BUG出现时,它的日志类似如下:

  • An exception was
    thrown by org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper$13.operationComplete()
    java.lang.Error: Couldn't properly initialize access to HDFS

总之,看到FanOutOneBlockAsyncDFSOutputHelper大概就可以确定是这个问题了。

解决方法:

1、使用上述配置,不使用新的特性。

2、使用更旧版本的Hbase 1.X,大意同1.

3、使用最新版本Hbase,新版本3.0的快照版本的文档中已经没有这个问题了。不清楚2.2.0版本修复了没。

 

最后一步:验证安装

首先是确认HDFS 已成功运行。

然后hbase目录下,终端使用如下命令:

#启动Hbase
bin/start-hbase

进入hbase shell

./bin/hbase shell
 #创建测试表
create 'test', 'cf'
#查看测试表
 list 'test'

hbase shell中直接使用list或者status还不足以确定成功部署,成功地创建表,并且能够查看到才能基本确定是成功的。

 

初学,如有错误,还望指正。

转载于:https://my.oschina.net/u/3393029/blog/3102634

你可能感兴趣的:(Hbase 2.1.6安装配置教程(踩坑记录))