在ZooKeeper集群搭建好之后,配置HBase集群(master,node1,node3);
其中master作为HBase的主节点,担当Hmaster的角色。
在这次操作中,我只打开了三个节点,分别是master,node1,node3:
先用jps查看一下进程,发现之打开了主进程,关闭了ZooKeeper集群处于关闭状态,接下来不用打开,直接利用xftp将文件传输到mater节点的opt目录下:
将文件进行解压,并且改名,方便后续操作:
tar -zxf /opt/hbase-2.2.6-bin.tar.gz -C /usr/local
cd /usr/local
ls
mv hbase-2.2.6 hbase
ls
然后进入conf目录进行文件配置:
cd hbase/conf
ls
首先进行hbase-site.xml文件的配置, 所添加的代码如下,值得注意的是最开始没有configuration,但是最后有,因为注释之前的没有删掉,而注释之后的删掉了,所以下面的代码中前有后没有configuration,总之只要照着下面的代码复制过去就没问题了:
hbase.rootdir
hdfs://master:8020/hbase
hbase.master
master
hbase.cluster.distributed
true
hbase.zookeeper.property.clientPort
2181
hbase.zookeeper.quorum
master,node1,node3
zookeeper.session.timeout
60000000
dfs.support.append
true
hbase.unsafe.stream.capability.enforce
false
切记,这两个用于做标记的##号一定要删除,否则在启动hbase集群的时候会报错。
接下来配置hbase-env.sh文件,在文件最末尾加上下面的代码(注意:每个人的配置内容可能不一样,特别是JAVA_HOME的地址):
export HBASE_CLASSPATH=/opt/hadoop-3.1.4/etc/hadoop
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
export HBASE_MANAGES_ZK=false
不确定自己文件目录位置和名称的,可以在xshell中再开一个窗口连接master主机进行查询:
cd /opt/hadoop-3.1.4/etc/hadoop
ls
pwd
echo $JAVA_HOME
接下来配置regionservers文件,将原本的localhost改成下面的内容:
master
node1
node3
然后将master上的这些文件复制到node1和node3子结点中:
scp -r /usr/local/hbase/ node1:/usr/local/
scp -r /usr/local/hbase/ node3:/usr/local/
接下来编辑环境变量,在文章末尾添加如下内容:
注意上面一句是添加在path的末尾,不能删除path原有的东西
:$HBASE_HOME/bin
export HBASE_HOME=/usr/local/hbase
在path中添加bin目录是因为bin中是hbase启动的一些命令:
最后更新一下配置的环境变量:
vi /etc/profile
source /etc/profile
然后输入命令hbase出现反应就知道我们配置的文件起作用了,如果说hbase不是命令,多运行两次source即可:
将配置的profile文件复制拷贝到node1和node3中:
scp -r /etc/profile node1:/etc/profile
scp -r /etc/profile node3:/etc/profile
然后到node1和node3上运行一下,切记运行之前先source更新文件:
source /etc/profile
hbase
然后再按照启动Hadoop集群,启动ZooKeeper集群,启动HBase集群的顺序启动集群,因为Hbase是建立在Hadoop集群基础上的:
这里启动Hadoop集群与之前有所不一样,他用all替换了三行命令,且在三个节点上(master,node1,node2上都要启动):
cd /opt/hadoop-3.1.4/sbin
./start-all.sh
jps
接下来启动master节点,node1节点,node3节点的zookeeper集群,并查看状态:
zkServer.sh start
zkServer.sh status
然后就开始启动hbase集群:
cd /usr/local/hbase/bin/
./start-hbase.sh
jps
如果报错图示,一定要将文件中的两个用于做标记的##删掉,记得三个结点都要删除,因为之前是从master复制过去的,现在修改那么三个节点都要单独修改,所以最好是开始就删除,不报错就不纠错:
但是这样一来,就导致三个节点上都出现了HMaster,本来是只有master节点上应该有HMater这个进程的,正常应该是下面的图,只有master上有HMster,其余两个节点都没有,我是对三个节点关闭了hbase集群,再在mster节点上打开集群(打开集群只用在一个节点操作即可):
然后在浏览器中输入master:16010就可以看到HBase的页面,里面有关于自己安装的节点的信息: