1、需要的软件: hadoop、zookeeper
我们使用的版本分别是: hadoop-0.20.2-cdh3u4 、 zookeeper-3.3.5、hbase-0.90.6-cdh3u6
hadoop 和 zookeeper的安装 这里就不介绍了。
2、下载安装包:http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDHTarballs/3.25.2013/CDH3-Downloadable-Tarballs/CDH3-Downloadable-Tarballs.html
解压: tar -zxvf hbase-0.90.6-cdh3u6.tar.gz
3、修改 conf 下的配置:
vim conf/hbase-env.sh:
修改 JAVA_HOME:
# The java implementation to use. Java 1.6 required.
export JAVA_HOME=/home/q/java/jdk1.6.0_20
修改HBase 使用zookeeper的方式:
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
这个参数默认是 true。意思是是否让hbase 单独管理 zookeeper
如果安装的机器上已经安装了zookeeper,并且这个zookeeper是多个平台共用的,那么这个参数应该设置为 false
如果集群上没有安装zookeeper,并且只有hbase 自己使用zookeeper,那么这个参数应该设置为true。
vim hbase-site.xml:
这里我们简单的介绍几个参数:
<name>hbase.rootdir</name>
这个是指hbase存放数据的位置,如果是单机的话,指定 存放数据的路径,例如: file:///home/q/hbase/data
hbase 一般hdf一起使用:
<value>hdfs://namenode:9000/hbase</value>
如果使用hdfs 存储数据,这个参数应该设置为 true
<property>
<name>hbase.master</name>
<value>hdfs://namenode:60000</value>
</property>
<name>hbase.cluster.distributed</name>
<value>true</value>
指定hbase 连接的zookeeper的 端口,一般为 2181
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
指定hbase可以连接的zookeeper 节点:
<name>hbase.zookeeper.quorum</name>
<value>zkhostlist</value>
指定zookeeper存放快照数据的目录:
<name>hbase.zookeeper.property.dataDir</name>
<value>/export1/zookeeper/datalog</value>
hbase的master 和 regionserver的时钟要保持一致,否则启动regionserver的时候会报如下错误:
org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server hadoop02,60020,1374576225508 has been rejected; Reported time is too far out of sync with master. Time difference of 62062623ms > max allowed of 30000ms
这是由于master 和 regionserver之间的时间误差太大造成的,
解决方法1 :修改下面的参数
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>Time difference of regionserver from master</description>
该参数默认值为 30 000 (30秒)
解决方法2: 使用ntpdate 同步集群的时钟
修改regionservers 文件配置:
这个文件是用来指定regionserver的机器的,一行一个,一般使用datanode作为regionserver:
vim conf/regionservers
regoinserverlist
配置 backup-masters:
vim conf/backup-masters:
backupmaster
启动hbase:
如果集群各个机器都有ssh 无密码登陆,可以直接使用 start-hbase.sh 启动整个集群。
或者 到每个机器上 使用daemon脚本启动:
到 master 机器上:hbase-daemon.sh start master
到 regionserver 机器上 : hbase-daemon.sh start regionserver
查看集群是否正常:
查看master的监控页面: masterip:60010