hbase依赖于hadoop环境,搭建habase之前首先需要搭建好hadoop的完全集群环境,因此看这篇文章之前需要先看我的上一篇文章:hadoop集群搭建
环境准备
- hbase软件包: http://mirror.bit.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
- 完成hadoop集群环境搭建
安装hbase
1、首先在hadoop-master安装配置好之后,在复制到从节点(我使用的版本是1.2.6)
wget http://mirror.bit.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
#解压
tar -xzvf hbase-1.3.1-bin.tar.gz -C /usr/local/
#重命名
mv hbase-1.3.1 hbase
2、配置环境变量
编辑: vim /etc/profile
export HBASE_HOME=/home/hbase/hbase
export PATH=$HBASE_HOME/bin:$PATH
生效: source /etc/profile
3、修改系统变量ulimit
ulimit -n 10240
配置文件
hbase 相关的配置主要包括hbase-env.sh、hbase-site.xml、regionservers三个文件,都在 /usr/local/hbase/conf目录下面:
1、配置hbase-env.sh
vim hbase-env.sh
#内容
export JAVA_HOME=/usr/java/jdk1.8.0_152
export HBASE_CLASSPATH=/home/hbase/hbase/conf
# 此配置信息,设置由hbase自己管理zookeeper,不需要单独的zookeeper。
export HBASE_MANAGES_ZK=true
export HBASE_HOME=/home/hbase/hbase
export HADOOP_HOME=/home/hadoop/hadoop
#Hbase日志目录
export HBASE_LOG_DIR=/home/hbase/hbase/logs
2、配置 hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop-master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hadoop-master:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop-master,hadoop-slave1,hadoop-slave2</value>
</property>
</configuration>
3、配置regionservers
vim /usr/local/hbase/conf/regionservers
hadoop-slave1
hadoop-slave2
4、 复制hbase到从节点中
scp -r /home/hbase/hbase hadoop-slave1:/home/hbase/hbase/
scp -r/home/hbase/hbase hadoop-slave2:/home/hbase/hbase/
启动hbase
启动仅在master节点上执行即可
~/hbase/bin/start-hbase.sh
启动后,master上进程和slave进程列表
master中的信息
[hadoop@master ~]$ jps
6225 Jps
2897 SecondaryNameNode # hadoop进程
2710 NameNode # hadoop master进程
3035 ResourceManager # hadoop进程
5471 HMaster # hbase master进程
2543 HQuorumPeer # zookeeper进程
salve中的信息
[hadoop@slave1 ~]$ jps
4689 Jps
2533 HQuorumPeer # zookeeper进程
2589 DataNode # hadoop slave进程
4143 HRegionServer # hbase slave进程
因为hbase依赖于hadoop,因此启动和停止都是需要按照顺序进行
如果安装了独立的zookeeper
启动顺序: hadoop-> zookeeper-> hbase
停止顺序:hbase-> zookeeper-> hadoop
使用自带的zookeeper
启动顺序: hadoop-> hbase
停止顺序:hbase-> hadoop
重启hbase
/home/hbase/hbase/bin/stop-hbase.sh
/home/hadoop/hadoop/sbin/stop-all.sh
/home/hadoop/hadoop/sbin/start-all.sh
/home/hbase/hbase/bin/start-hbase.sh
hbase UI界面
错误处理
1、启动hbase输出ignoring option PermSize=128m; support was removed in 8.0告警信息
解决办法:
由于JDK使用的是jdk1.8.0_65
hbase-env.sh注释掉以下:
# Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
2、hregionserver没有启动
原因:在slave1、slave2主机中查看CST时间
[grid@slave1 bin]$ date
2018年 08月 22日 星期三 18:05:23 CST
在master主机中查看CST时间
[grid@master bin]$ date
2018年 08月 22日 星期三 18:00:35 CST
没错主从节点的系统日期是不一样的。
解决方法:把master主机的时间设置成和slave主机时间一致
[root@master bin]# date -s 18:06:00
2018年 08月 22日 星期三 18:06:00 CST
第二个原因,可以修改hbase默认的最大链接时间长一些。
HBase配置文件hbase-siter.xml中添加连接时长的属性
<property>
<name>hbase.master.maxclockskew</name>
<value>120000</value>
</property>
参考:纯洁的微笑:hbase分布式集群搭建