首先确保hadoop集群正常运行,还需要确认hadoop和hbase的适配版本,我的hadoop是3.3.2,hbase下的是2.4.11。
背景:
我的机子:10.0.2.4是node1(master),10.0.2.15是node2(slave),10.0.2.5是node3(slave),先配置node1.
hosts文件配置和ssh免密登录等问题看我之前搭建hadoop集群的内容,这里不再强调。
一、下载hbase
hbase2.4.11下载https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.11/ 我是放到/opt/hbase目录,然后解压:
cd /opt/hbase
tar -zxvf hbase-2.4.11-bin.tar.gz
二、配置hbase
①配置环境变量,3台机器都要配置
vi /etc/profile
export HBASE_HOME=/opt/hbase/hbase-2.4.11
export PATH=$PATH:$HBASE_HOME/bin
source /etc/profile
②配置hbase-env.sh
cd /opt/hbase/hbase2.4.11/conf
vi hbase-env.sh
export JAVA_HOME=/opt/java/jdk1.8.0_321/
export HBASE_MANAGES_ZK=true
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true #必须加,否则运行hbase shell输入命令就报错
③配置hbase-site.xml
vi hbase-site.xml
<property>
<name>hbase.tmp.dir</name>
<value>./tmp</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://node1:9000/hbase/hbase_db</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>node1:60000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/hbase/zookeeper</value>
</property>
④配置regionservers
vi regionservers
删除localhost,新增:
node2
node3
三、发送HBASE文件到slave
在node2 node3 创建/opt/hbase目录
scp -r /opt/hbase/hbase-2.4.11/ root@node2:/opt/hbase/
scp -r /opt/hbase/hbase-2.4.11/ root@node3:/opt/hbase/
四、启动集群
./opt/hbase/hbase-2.4.11/bin/start-hbase.sh 启动在node1机器
这时候在master机器敲jps
在slave机器jps
HQuorumPeer进程是使用内置zk就会有。
五、测试
启动没有问题的话,测试一下:
敲命令hbase shell,等它启动,然后敲list:
如果能快速显示0 rows和查询时间则集群没有问题,通常有问题此处会超时或者报错。
最后如果需要关闭hbase,直接stop-hbase.sh很可能关不掉,这时候需要:
hbase-daemon.sh stop master
stop-hbase.sh