Hbase是建立在Hadoop基础上的数据仓库,安装前首先要确保Hadoop分布式集群已经建立完成,运行正常。 Habse也有主和从的概念,Hbase的程序要安装在集群所有机器上。

要运行集群的Hbase,首先要配置好zookeeper。 如果你没有配置好zookeeper,在启动Hbase的时候就会看见从机上报错 Exception in thread "regionserver60020" java.lang.NullPointerException

zookeeper是做分布式系统的同步,命名,配置管理等用的。 这个Hbase本身也带有一个zookeeper,这里选择自己先安装zookeeper。 方法很简单,只要在主机上装就可以了,下载程序包,tar zxvf 解压到一个目录下,把这个目录的owner换成你要运行hbase和zookeeper的用户,一般也就是运行hadoop的用户。 然后把它的bin添加到PATH里。在conf目录下配置一个zoo.cfg文件,对于一台机器,很简单:把zoo_sample.cfg拷过来。 然后把dataDir改一下就可以,记得把那个目录的owner设为运行zookeeper的用户。

实际运行环境为了安全要多几个机器组成quorum,相互之间同步。方法看官网。

接下来Hbase的配置,下载程序包,同样tar 解压到目录,把该目录的owner换成运行hbase的人。 修改conf目录下的hbase-env.sh,把参数HBASE_MANAGES_ZK设为false。

修改hadoop的hdfs-site.xml 添加dfs.support.append属性,值为true,同样把这个加在hbase-site.xml里, 其他要在这个XML里添加的属性:

hbase.zookeeper.quorum        zookeeper的主机名,如有多个用逗号隔开

hbase.rootrir                把你的数据库放在HDFS的哪里,比如hdfs://host1:8020/hbase

hbase.cluster.distributed    设为true

hbase.tmp.dir         临时目录,记得要先在本机创建目录(本地的不是hdfs的),设好owner

dfs.replication         副本的数目,如果不指定,hbase会用默认的3,不管你的hadoop怎么设置。

然后,设置好NTP,habse对服务器时间同步有一定要求。

修改/etc/security/limits/conf 文件,对于运行hbase的user,nofile设为32768  noproc设为32000

regionservers,这个wenjian类似Hadoop的slave文件,把所有hbase从机都加进去。

在其他的从机上面,用scp吧hbase整个目录拷贝到本机相同的位置,这样配置文件就不用修改了,也不用tar 解压程序包了。  不过其他的本机临时目录,limits.conf等还是要做一遍。

然后,假设hadoop启动完成了。 在主机上,启动zookeeper, zkServer.sh start

start-hbase.sh 看看各个机器上的logs目录,没有报错就应该可以了

60010是主机上的web 界面端口, 60030 是丛机的WEb端口。

hbase shell  命令进入操作界面,可以尝试创建表,详见官网。

停止Habse:   stop-hbase.sh   然后 zkServer.sh stop