centos6.7部署HBase
一.前言
配置前可以自行选择配置zookeeper
由于大三学习需要,而且网上的教程都有点模糊,导致我走了不少弯路,因此我写下这篇博客,本文仅供参考,如果有不足之处,还望指出。
二.下载安装
1.镜像下载,这里用的是清华镜像下载的hbase-1.4.13版本,这里要注意的是hbase的版本可能会有与Hadoop和jdk不兼容的问题,可以参考以下链接:
http://hbase.apache.org/book.html#java(官网)
https://blog.csdn.net/liubenlong007/article/details/95340332
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.4.13/hbase-1.4.13-bin.tar.gz
下载好后桌面会出现hbase的压缩包,我们可以解压到/usr/local目录下,操作如下:
tar -zxvf hbase-1.4.13-bin.tar.gz
mv hbase-1.4.13 /usr/local/
三.设置HBase环境变量
我们可以配置hbase中Java的路径:
Java的路径具体可以用以下命令查看:
echo $JAVA_HOME
文件hbase-env.sh是hbase的环境变量,我们这里要修改Java的路径:
vi /usr/local/hbase-1.4.13/conf/hbase-env.sh
修改
#export JAVA_HOME=/usr/java/jdk1.6.0/
为export JAVA_HOME=/usr/java/jdk1.8.0_60/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O5wQkoDX-1633758753017)(https://i.loli.net/2021/10/09/38oKfJqLANhacEl.png)]
- 注:ZooKeeper的
HBASE_ MANAGES_ZK
配置项,该项表示是否使用HBase管理其自带的ZooKeeper。如果取消注释,并设置其值为true
,将使用自带的ZooKeeper,这样就不需要再单独下载ZooKeeper并做相应配置了。我之前安装部署了ZooKeeper,所以不取消注释。
vi /usr/local/hbase-1.4.13/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop1:8020/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop1,hadoop2,hadoop3</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper-3.4.14</value>
</property>
<property>
<name>hbase.master</name>
<value>hadoop1:60000</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
</configuration>
保存退出
-
hbase.rootdir
设置为HDFS的NameNode的位置。 -
属性
hbase.zookeeper.quorum
:该属性的值会让HBase启动时在相应节点上运行ZooKeeper实例。保存关闭后,修改regionservers组件
vi /usr/local/hbase-1.4.13/conf/regionservers
- 删掉默认的
localhost
,并添加想要运行RegionServer的节点名
hadoop2
hadoop3
保存退出
- 删掉
localhost
的原因是并不想在Hadoop的namenode上运行RegionServer。因为namenode上并不存储HDFS数据,运行RegionServer需要远程调用数据,同时也会加重namenode的负担。如果一定要在namenode上运行RegionServer,也应该把localhost
换成相应的机器名,如master
。因为HBase也可以通过在其他节点上运行start-hbase.sh
脚本启动(这时会把输入命令的节点作为master节点),这时localhost
指的是本机节点而不是namenode。
我们接着修改hbash.sh文件:
vi /etc/profile.d/hbase.sh
添加:
export HBASE_HOME=/usr/local/hbase-1.4.13
export PATH=$HBASE_HOME/bin:$PATH
export HADOOP_CLASSPATH=$HBASE_HOME/lib/*
注意修改后要source一下:
source /etc/profile.d/hbase.sh
把以上在master节点配置好的文件传给其他主机:
rsync -av /usr/local/hbase-1.4.13 hadoop2:/usr/local/
rsync -av /etc/profile.d/hbase.sh hadoop2:/etc/profile.d/
rsync -av /usr/local/hbase-1.4.13 hadoop3:/usr/local/
rsync -av /etc/profile.d/hbase.sh hadoop3:/etc/profile.d/
这里注意在其他主机也要执行以下命令:
source /etc/profile.d/hbase.sh
四.启动hbase:
这里要注意的是我们先要启动Hadoop,保证Hadoop正常运行,然后我们再启动hbase。
我们可以在主节点运行以下命令:
/usr/local/hbase-1.4.13/bin/start-hbase.sh
这里如果启动成功的话,我们可以看到如下界面:系统首先启动HBase自带的zookeeper,然后启动HBase的HMaster,接着分别启动slave节点上的regionserver。
启动后我们在网站输入以下网址:60010是我们在上面配置的端口号,下面的截图是成功界面
http://hadoop1:60010/
停止hbase:
/usr/local/hbase-1.4.13/bin/stop-hbase.sh