第十章 :hbase集群搭建,测试

2022-08-05 09:04:45 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

一,在ubuntu主机上安装hbase,

在上一章中我们已经在ubuntu3主机上安装了hbase,这里为了省事,直接远程复制到ubuntu主机上。

xiaoye@ubuntu3:~$ ls apache-activemq-5.15.3 hbase Public classes hive QueryResult.java derby.log metastore_db SDS.java Desktop Music sqoop Documents mysql-connector-java-5.1.32 Templates Downloads Pictures Videos examples.desktop product2.java zookeeper hadoop product.java zookeeper.out

xiaoye@ubuntu3:~$ scp -r hbase/ xiaoye@ubuntu:/home/xiaoye/

1.2修改配置文件,

第一个是:

xiaoye@ubuntu3:~/hbase/conf$ vim hbase-env.sh

这里是修改java_home地址,我们再上一章改过了也不用改了。

第二个是:xiaoye@ubuntu3:~/hbase/conf$ vim hbase-site.xml

下面的hdfs://ns/hbase对应的是:hadoop的core-site.xml中的配置,如:

<configuration> <!– 指定hbase在hdfs上的存储路径 –> <property> <name>hbase.rootdir</name> <value>hdfs://ns/hbase</value> </property> <!– 指定hbase客户端端口–> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2182</value> </property> <!– 指定hbase是分布式的–> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!–指定zk地址,多个用“,”分割–> <property> <name>hbase.zookeeper.quorum</name> <value>ubuntu3:2181</value> </property> </configuration>

第三个是:regionservers(被管理者),HBase做为管理者的是HMaster,被管理者是HRegionServer,被管理者一般有多个。这里我们为了高可靠性,把ubuntu,ubuntu2当做管理者,是为了后面测试一个管理者挂掉后,能够有备用的切换,ubuntu3作为被管理者。

xiaoye@ubuntu3:~/hbase/conf$ vim regionservers

ubuntu3 ~

~

配置完上面的内容后,这里还有个问题,那就是HBase需要依赖集群的HDFS和Zookeeper,关于Zookeeper,我们在HBase的配置文件中已经明确指定了,但是关于HDFS,我们只是配置了http://ns1,它并不知道具体的映射关系,也就是说只是告诉HBase的小弟HRegionServer应该连NameNode,但是它并不知道NameNode具体在哪几台设备上,也不知道DataNode在哪几台设备上,那么这样的话,HRegionServer进程便无法正常启动。为了解决这个问题,我们有两种方式可以解决:第一种是在hbase-site.xml中配置映射关系,第二种就是把有映射关系的文件拷贝到HBase的conf目录下,这样HBase就会自动去读取配置文件并获取映射关系,从而可以正常启动HRegionServer进程。为了简单,我们这里就采用第二种方法即向HBase的conf目录下。

xiaoye@ubuntu3:~/hbase/conf cd ..xiaoye@ubuntu3:~/hbase cd ..xiaoye@ubuntu3:~ cd hadoop/etc/hadoopxiaoye@ubuntu3:~/hadoop/etc/hadoop cp core-site.xml hdfs-site.xml ~/hbase/conf/xiaoye@ubuntu3:~/hadoop/etc/hadoop cd ..xiaoye@ubuntu3:~/hadoop/etc cd ..xiaoye@ubuntu3:~/hadoop cd ..xiaoye@ubuntu3:~ ls hbase/conf/core-site.xml hbase-env.sh hdfs-site.xmlhadoop-metrics2-hbase.properties hbase-policy.xml log4j.propertieshbase-env.cmd hbase-site.xml regionserversxiaoye@ubuntu3:~

到这步我们已经配置好了一台设备的HBase,接下来我们把这台设备上的HBase目录拷贝到其它设备上去。这里我们也是远程复制,但是hbase有点打,我们就复制我们改的文件所在的目录把,

ubuntu2还没有安装就全都复制过去:

xiaoye@ubuntu3:~$ scp -r hbase/ xiaoye@ubuntu2:/home/xiaoye/

ubuntu:

xiaoye@ubuntu:~/hbase/conf cd ..xiaoye@ubuntu:~/hbase mv conf/ conf-bakxiaoye@ubuntu:~/hbase

xiaoye@ubuntu:~/hbase$ pwd

/home/xiaoye/hbase

ubuntu3执行命令:

xiaoye@ubuntu3:~$ scp -r hbase/conf/ xiaoye@ubuntu:/home/xiaoye/hbase/ Warning: Permanently added ‘ubuntu,192.168.72.131’ (ECDSA) to the list of known hosts. hbase-env.cmd 100% 4196 4.1KB/s 00:00 regionservers 100% 8 0.0KB/s 00:00 hbase-env.sh 100% 7287 7.1KB/s 00:00 core-site.xml 100% 1332 1.3KB/s 00:00 hbase-policy.xml 100% 2257 2.2KB/s 00:00 hdfs-site.xml 100% 3742 3.7KB/s 00:00 hadoop-metrics2-hbase.properties 100% 1026 1.0KB/s 00:00 log4j.properties 100% 3554 3.5KB/s 00:00

hbase-site.xml

这样三台机子都配置好了:

因为小编这里事先已经启动好zookeeper和hdfs,所以就直接起动hbase.

在ubuntu上启动hbase:

xiaoye@ubuntu:~/hbase ./bin/start-hbase.sh ubuntu2: Warning: Permanently added ‘ubuntu2,192.168.72.132’ (ECDSA) to the list of known hosts.ubuntu: Warning: Permanently added ‘ubuntu,192.168.72.131’ (ECDSA) to the list of known hosts.ubuntu3: Warning: Permanently added ‘ubuntu3,192.168.72.133’ (ECDSA) to the list of known hosts.ubuntu: starting zookeeper, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-zookeeper-ubuntu.outubuntu3: starting zookeeper, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-zookeeper-ubuntu3.outubuntu2: starting zookeeper, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-zookeeper-ubuntu2.outstarting master, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-master-ubuntu.outubuntu3: Warning: Permanently added ‘ubuntu3,192.168.72.133’ (ECDSA) to the list of known hosts.ubuntu3: starting regionserver, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-regionserver-ubuntu3.outxiaoye@ubuntu:~/hbase jps1838 NameNode1492 JournalNode2416 DataNode18813 Jps2529 NodeManager2736 DFSZKFailoverController1454 QuorumPeerMain18630 HMaster

xiaoye@ubuntu:~/hbase$

发现多了一个HMaster进程,这个进程是HBase的管理进程。

我们还需要到ubuntu3看看有没有HRegionServer备用进程:

xiaoye@ubuntu3:~$ jps 18845 Jps 18708 HRegionServer 1431 QuorumPeerMain 2279 ResourceManager 1503 JournalNode 2196 DataNode 2424 NodeManager

xiaoye@ubuntu3:~$

发现也是有的。

打开hbase的界面,端口默认是60010

这里我们再ubuntu和ubuntu2上设置为master。目前我们启动的是ubuntu上的hbase.如果再启动ubuntu2上的hbase,就会把ubuntu的hbase给冲掉。即ubuntu2替换掉ubuntu当做master.

如下:

xiaoye@ubuntu2:~$ ./hbase/bin/start-hbase.sh xiaoye@ubuntu3’s password: ubuntu: starting zookeeper, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-zookeeper-ubuntu.out ubuntu2: starting zookeeper, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-zookeeper-ubuntu2.out

xiaoye@ubuntu3’s password: ubuntu3: Permission denied, please try again.

xiaoye@ubuntu3’s password: ubuntu3: Permission denied, please try again.

ubuntu3: Permission denied (publickey,password). starting master, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-master-ubuntu2.out

xiaoye@ubuntu3’s password:

ubuntu3: regionserver running as process 21863. Stop it first.xiaoye@ubuntu2:~ xiaoye@ubuntu2:~ jps25022 JournalNode25205 NameNode27101 HMaster25383 NodeManager1402 QuorumPeerMain25385 DFSZKFailoverController25633 DataNode

27226 Jps

ubuntu没有反应

ubuntu2成为master

点击上图的ubuntu3可跳转到ubuntu3界面。

三,下面我们测试hbase的高可用性。

目前是:

可以看出,ubuntu处于激活状态,为master.ubuntu2处于备用状态,二者都是hbase管理者。ubuntu3是regionServer被管理者。现在我kill 掉ubuntu的hmaster。

xiaoye@ubuntu:~$ jps 20832 NodeManager 21030 DFSZKFailoverController 25696 Jps 20615 JournalNode 20693 NameNode 25569 HMaster 21172 DataNode 1454 QuorumPeerMain

xiaoye@ubuntu:~$ kill -9 25569

ubuntu的界面已经打不开了。

看看Ubuntu2的界面:

已经自动切换成active状态。

第五步:查看HBase的文件存储信息

我们在配置HBase的时候配置过<value>hdfs://ns/hbase</value>这么一条信息,这条配置意味着,HBase将在HDFS系统的根目录下创建一个hbase的目录,并将HBase产生的数据放到这个目录下面。那么我们通过查看HDFS系统来验证是否已经生成了Hbase的目录。

看到下图确实存在hbase目录

点开hbase有如下目录:

创建表并在管理界面查看我们建的表。

这里一直卡主了,先放着。不过能进行到动态切换设备也算大功告成了。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106164.html原文链接:https://javaforall.cn

0 人点赞