第十章 :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集群搭建,测试

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

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何绘制qq图_python画图

    如何绘制qq图_python画图Q-Q图主要可以用来回答这些问题:两组数据是否来自同一分布PS:当然也可以用KS检验,利用python中scipy.stats.ks_2samp函数可以获得差值KSstatistic和P值从而实现判断。两组数据的尺度范围是否一致两组数据是否有类似的分布形状前面两个问题可以用样本数据集在Q-Q图上的点与参考线的距离判断;而后者则是用点的拟合线的斜率判断。用Q-Q图来分析分布的好处都有啥?(谁说对了…

    2022年8月10日
    6
  • 绕过问题也是一种能力–记一次接口的问题「建议收藏」

    绕过问题也是一种能力–记一次接口的问题

    2022年1月19日
    77
  • win10JDK环境变量的配置

    win10JDK环境变量的配置在win10系统下进行jdk环境变量与win7的一些区别,作者踩过一些坑,最后通过网上查找资料才将问题解决,但是网上的资料比较零碎,作者整理一下亲自操作过程并且将步骤详细的写了下来,希望能够帮助需要的人。一、下载安装完成jdk之后,桌面右键此电脑选择属性,进入以下界面,然后选择高级系统设置,进入系统配置二、进入系统配置之后点击环境变量,进入环境变量配置窗口三、此时我们可以看到有用户变量…

    2022年7月21日
    9
  • Java之数组转集合&集合转数组[通俗易懂]

    Java之数组转集合&集合转数组[通俗易懂]一、数组转换为集合需要注意的是,转换只能转换为List集合。那么为什么不能转换为Set集合呢?原因是:Set不能存放重复元素,所以若转换为Set集合可能出现丢失元素的情况。。。数组转换为集合使用的是数组的工具类Arrays的静态方法asList。查看API文档可知该方法返回由指定数组支持的固定大小的列表。eg:importjava.util.Arrays;importjava.u…

    2022年6月29日
    22
  • webservice优缺点以及使用框架_web前端主流框架有哪些

    webservice优缺点以及使用框架_web前端主流框架有哪些原文:https://www.cnblogs.com/firstdream/p/5575928.html1摘要 开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有很多种,这对于开发者如何选择带来一定的疑惑。性能Webservice的关键要素,不同的框架性能上存在较大差异,而当前在官方网站、网络资料中可以方便的找到各自框架的介绍,但是很少有针对不同框架性能测试数据…

    2022年9月16日
    1
  • 奇怪的电梯

    奇怪的电梯奇怪的电梯【问题描述】某栋大楼有一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1≤i<N)上有一个数字K(≤K≤N)电梯只有四个按钮:开、关、上、下。上、下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:33125代表了Ki(K1=3,K2=3,…),从一层开始。在一层按“上”可以到4层,按“下”是不起作用的,因为没有-2层。那么从A层到B层至少要按几次按钮呢?【输入格式】第1行为3个用1个空格隔开的正整数,表示N、A、B(l≤N≤200,1≤

    2022年6月14日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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