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

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

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

一,在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中的配置,如:第十章 :hbase集群搭建,测试

<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/hadoop
xiaoye@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.xml
hadoop-metrics2-hbase.properties  hbase-policy.xml  log4j.properties
hbase-env.cmd                     hbase-site.xml    regionservers
xiaoye@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-bak
xiaoye@ubuntu:~/hbase$ ls
bin                hbase-checkstyle      hbase-protocol      LICENSE.txt
CHANGES.txt        hbase-client          hbase-rest          logs
cloudera           hbase-common          hbase-server        NOTICE.txt
conf-bak           hbase-examples        hbase-shell         oldWALs
data               hbase-hadoop2-compat  hbase-testing-util  pom.xml
dev-support        hbase-hadoop-compat   hbase-thrift        README.txt
docs               hbase.id              hbase.version       src
hbase-annotations  hbase-it              hbase-webapps       WALs
hbase-assembly     hbase-prefix-tree     lib

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.out
ubuntu3: starting zookeeper, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-zookeeper-ubuntu3.out
ubuntu2: starting zookeeper, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-zookeeper-ubuntu2.out
starting master, logging to /home/xiaoye/hbase/bin/../logs/hbase-xiaoye-master-ubuntu.out
ubuntu3: 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.out
xiaoye@ubuntu:~/hbase$ jps
1838 NameNode
1492 JournalNode
2416 DataNode
18813 Jps
2529 NodeManager
2736 DFSZKFailoverController
1454 QuorumPeerMain
18630 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

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

这里我们再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:~$ jps
25022 JournalNode
25205 NameNode
27101 HMaster
25383 NodeManager
1402 QuorumPeerMain
25385 DFSZKFailoverController
25633 DataNode

27226 Jps

ubuntu没有反应

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

ubuntu2成为master

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

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

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

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

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

目前是:

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

第十章 :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

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

ubuntu的界面已经打不开了。

看看Ubuntu2的界面:

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

已经自动切换成active状态。

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

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

看到下图确实存在hbase目录

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

点开hbase有如下目录:

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号