欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 Hadoop -- 高可用配置zookeeper

程序员文章站 2022-06-19 10:22:12
主机列表:IP主机名角色172.25.254.1server1NameNode 、DFSZKFailoverController 、ResourceManager172.25.254.2server2NameNode 、DFSZKFailoverController 、ResourceManager172.25.254.3server3JournalNode 、QuorumPeerMain 、DataNode 、NodeManager172.25.254...

主机列表:

IP 主机名 角色
172.25.254.1 server1 NameNode 、DFSZKFailoverController 、ResourceManager
172.25.254.5 server2 NameNode 、DFSZKFailoverController 、ResourceManager
172.25.254.2 server2 JournalNode 、QuorumPeerMain 、DataNode 、NodeManager
172.25.254.3 server3 JournalNode 、QuorumPeerMain 、DataNode 、NodeManager
172.25.254.4 server4 JournalNode 、QuorumPeerMain 、DataNode 、NodeManager

在典型的 HA 集群中,通常有两台不同的机器充当 NN。在任何时间,只有一台机器处于
Active 状态;另一台机器是处于 Standby 状态。Active NN 负责集群中所有客户端的操作;
而 Standby NN 主要用于备用,它主要维持足够的状态,如果必要,可以提供快速的故障恢
复。
为了让 Standby NN 的状态和 Active NN 保持同步,即元数据保持一致,它们都将会和
JournalNodes 守护进程通信。当 Active NN 执行任何有关命名空间的修改,它需要持久化到
一半以上的 JournalNodes 上(通过 edits log 持久化存储),而 Standby NN 负责观察 edits log
的变化,它能够读取从 JNs 中读取 edits 信息,并更新其内部的命名空间。一旦 Active NN
出现故障,Standby NN 将会保证从 JNs 中读出了全部的 Edits,然后切换成 Active 状态。
Standby NN 读取全部的 edits 可确保发生故障转移之前,是和 Active NN 拥有完全同步的命
名空间状态。
为了提供快速的故障恢复,Standby NN 也需要保存集群中各个文件块的存储位置。为
了实现这个,集群中所有的 Database 将配置好 Active NN 和 Standby NN 的位置,并向它们
发送块文件所在的位置及心跳,如下图所示:荐
                                                        Hadoop -- 高可用配置zookeeper
在任何时候,集群中只有一个 NN 处于 Active 状态是极其重要的。否则,在两个 Active NN
的状态下 NameSpace 状态将会出现分歧,这将会导致数据的丢失及其它不正确的结果。为
了保证这种情况不会发生,在任何时间,JNs 只允许一个 NN 充当 writer。在故障恢复期
间,将要变成 Active 状态的 NN 将取得 writer 的角色,并阻止另外一个 NN 继续处于 Active
状态。
为了部署 HA 集群,你需要准备以下事项:
(1)、NameNode machines:运行 Active NN 和 Standby NN 的机器需要相同的硬件配
置;
(2)、JournalNode machines:也就是运行 JN 的机器。JN 守护进程相对来说比较轻
量,所以这些守护进程可以可其他守护线程(比如 NN,YARN ResourceManager)运行在
同一台机器上。在一个集群中,最少要运行 3 个 JN 守护进程,这将使得系统有一定的容错
能力。当然,你也可以运行 3 个以上的 JN,但是为了增加系统的容错能力,你应该运行奇
数个 JN(3、5、7 等),当运行 N 个 JN,系统将最多容忍(N-1)/2 个 JN 崩溃。

1. 先部署三个 zk
Zookeeper 集群至少三台,总节点数为奇数个。

[cay@server1 sbin]$ ./stop-yarn.sh 
Stopping nodemanagers
Stopping resourcemanager
[cay@server1 sbin]$ ./stop-dfs.sh 
Stopping namenodes on [server1]			/先停掉开启的组件
Stopping datanodes
Stopping secondary namenodes [server1]

[cay@server1 sbin]$ rm -fr /tmp/*
[cay@server2 sbin]$ rm -fr /tmp/*		/清理缓存
[cay@server3 sbin]$ rm -fr /tmp/*
[cay@server4 sbin]$ rm -fr /tmp/*

server5 为新加入的NN结点,先进行配置:

[root@server5 ~]# yum install nfs-utils -y
[root@server5 ~]# useradd cay
[root@server5 ~]# id cay
uid=1000(cay) gid=1000(cay) groups=1000(cay)
[root@server5 ~]# systemctl start rpcbind

[root@server5 ~]# mount 172.25.254.1:/home/cay /home/cay/
[root@server5 ~]# df
Filesystem             1K-blocks    Used Available Use% Mounted on
/dev/mapper/rhel-root   17811456 1166916  16644540   7% /
devtmpfs                  735036       0    735036   0% /dev
tmpfs                     747128       0    747128   0% /dev/shm
tmpfs                     747128   16868    730260   3% /run
tmpfs                     747128       0    747128   0% /sys/fs/cgroup
/dev/sda1                1038336  135224    903112  14% /boot
tmpfs                     149428       0    149428   0% /run/user/0
172.25.254.1:/home/cay  17811456 3209216  14602240  19% /home/cay

[root@server5 ~]# su - cay
[cay@server5 ~]$ ls
bigfile  hadoop  hadoop-3.2.1  hadoop-3.2.1.tar.gz  jdk  jdk1.8.0_181  jdk-8u181-linux-x64.tar.gz
[cay@server1 ~]$ tar zxf zookeeper-3.4.9.tar.gz 
[cay@server1 ~]$ cd zookeeper-3.4.9/
[cay@server1 zookeeper-3.4.9]$ cd conf/
[cay@server1 conf]$ ls
configuration.xsl  log4j.properties  zoo_sample.cfg
[cay@server1 conf]$ cp zoo_sample.cfg zoo.cfg 
[cay@server1 conf]$ vim zoo.cfg
cp zoo_sample.cfg zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper			/数据目录,需要预先创建
clientPort=2181
server.1=172.25.0.2:2888:3888
server.2=172.25.0.3:2888:3888			表示单个zookeeper结点,对应server234
server.3=172.25.0.4:2888:3888			/3888用于选举ZK的leader,2888用于leader和follow的通信,数据同步
.1 .2 .3是标示符号

各节点配置文件相同,并且需要在/tmp/zookeeper 目录中创建 myid 文件,写入一个唯一的数字,取值范围在 1-255。比如:172.25.254.2 节点的 myid 文件写入数字“1”,此数字与配置文件中的定义保持一致,(server.1=172.25.254.2:2888:3888)其它节点依次类推。

[cay@server2 ~]$ mkdir  /tmp/zookeeper
[cay@server2 ~]$ echo 1 > /tmp/zookeeper/myid
[cay@server3 ~]$ mkdir  /tmp/zookeeper
[cay@server3 ~]$ echo 2 > /tmp/zookeeper/myid
[cay@server4 ~]$ mkdir  /tmp/zookeeper
[cay@server4 ~]$ echo 3 > /tmp/zookeeper/myid
[cay@server4 ~]$ cat /tmp/zookeeper/myid 
3

启动zk

[cay@server2 ~]$ cd zookeeper-3.4.9/bin/
[cay@server2 bin]$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/cay/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[cay@server2 bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/cay/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower

[cay@server3 ~]$ cd zookeeper-3.4.9/bin/
[cay@server3 bin]$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/cay/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[cay@server3 bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/cay/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: leader			/server3是他们决出来的领导者
	
[cay@server4 ~]$ cd zookeeper-3.4.9/bin/
[cay@server4 bin]$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/cay/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[cay@server4 bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/cay/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower

[cay@server3 bin]$ ./zkCli.sh		/可以通过这个命令进入它的命令行
[hadoop@server3 ~]$ jps
1222 QuorumPeerMain			/zk已经启动
1594 Jps

HDFS 高可用

1. Hadoop 配置
定义zk的集群地址:

[cay@server1 hadoop]$ cd etc/hadoop/
[cay@server1 hadoop]$ cat workers 
172.25.254.2
172.25.254.3
172.25.254.4
[cay@server1 hadoop]$ vim core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://masters</value>		/改为masters,因为高可用有几个master结点
    </property>
<property>
<name>ha.zookeeper.quorum</name>
<value>172.25.254.2:2181,172.25.254.3:2181,172.25.254.4:2181</value>
</property>			/定义zk的集群地址
</configuration>
[cay@server1 hadoop]$ vim hdfs-site.xml 
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    
/指定 hdfs 的 nameservices 为 masters,和 core-site.xml 文件中的设置保持一致
<property>
<name>dfs.nameservices</name>
<value>masters</value>
</property>

/masters 下面有两个 namenode 节点,分别是 h1 和 h2 (名称可自定义)
<property>
<name>dfs.ha.namenodes.masters</name>
<value>h1,h2</value>
</property>

/指定 h1 节点的 rpc 通信地址和http通信地址
<property>
<name>dfs.namenode.rpc-address.masters.h1</name>
<value>172.25.254.1:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.masters.h1</name>
<value>172.25.254.1:9870</value>
</property>

/指定 h2 节点的 rpc 通信地址和http通信地址
<property>
<name>dfs.namenode.rpc-address.masters.h2</name>
<value>172.25.254.5:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.masters.h2</name>
<value>172.25.254.5:9870</value>
</property>

/指定 NameNode 元数据在 JournalNode 上的存放位置
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://172.25.254.2:8485;172.25.254.3:8485;172.25.254.4:8485/masters</value>
</property>

/指定 JournalNode 在本地磁盘存放数据的位置,自动创建目录
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/tmp/journaldata</value></property>

/开启 NameNode 失败自动切换
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>

/配置失败自动切换实现方式
<property>
<name>dfs.client.failover.proxy.provider.masters</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

/配置隔离机制方法,每个机制占用一行
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>

/使用 sshfence 隔离机制时需要 ssh 免密码
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>

/sshfence 隔离机制超时时间
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>

</configuration>

2. 启动 hdfs 集群(按顺序启动
集群的启动是有顺序的要求的,先启动三个ZK 结点,
然后第一个启动的NN 结点就是ZK 的active结点

1)在三个 DN 上依次启动 zookeeper 集群
我们刚才已经启动了
2)在三个 DN 上依次启动 journalnode(第一次启动 hdfs 必须先启动 journalnode)

[cay@server2 bin]$ hdfs --daemon start journalnode
[cay@server3 bin]$ hdfs --daemon start journalnode
[cay@server4 bin]$ hdfs --daemon start journalnode
[cay@server4 bin]$ cd /tmp 
[cay@server4 tmp]$ ls
hadoop-cay  hadoop-cay-journalnode.pid  hsperfdata_cay  journaldata  zookeeper		/生成了日志目录

3)格式化 HDFS 集群

[cay@server1 hadoop]$ hdfs namenode -format

Namenode 数据默认存放在/tmp,需要把数据拷贝到 h2

[cay@server1 hadoop]$ scp -r /tmp/hadoop-cay 172.25.254.5:/tmp/
VERSION                                                                                                                                                                          100%  217   114.7KB/s   00:00    
seen_txid                                                                                                                                                                        100%    2     1.7KB/s   00:00    
fsimage_0000000000000000000.md5                                                                                                                                                  100%   62    74.3KB/s   00:00    
fsimage_0000000000000000000  

4)格式化 zookeeper (只需在 h1 上执行即可)

[cay@server1 sbin]$ hdfs zkfc -formatZK

5)启动 hdfs 集群(只需在 h1 上执行即可

[cay@server1 sbin]$ ./start-dfs.sh 
Starting namenodes on [server1 server5]
Starting datanodes
Starting journal nodes [server4 server3 server2]
server3: Warning: Permanently added 'server3' (ECDSA) to the list of known hosts.
server4: journalnode is running as process 4421.  Stop it first.
server2: journalnode is running as process 4450.  Stop it first.
server3: journalnode is running as process 4437.  Stop it first.
Starting ZK Failover Controllers on NN hosts [server1 server5]

  1. 查看各节点状态

[cay@server1 sbin]$ jps
6688 NameNode
7036 DFSZKFailoverController
7086 Jps

[cay@server5 tmp]$ jps
3872 Jps
3714 NameNode
3779 DFSZKFailoverController

[cay@server2 hadoop]$ jps
4672 Jps
4450 JournalNode
4312 QuorumPeerMain
4553 DataNode

[cay@server3 bin]$ jps
4258 QuorumPeerMain
4437 JournalNode
4662 Jps
4541 DataNode

[cay@server4 tmp]$ jps
4421 JournalNode
4647 Jps
4526 DataNode
4287 QuorumPeerMain

web 界面查看:
荐
                                                        Hadoop -- 高可用配置zookeeper
荐
                                                        Hadoop -- 高可用配置zookeeper
当前h1 是active的.server5是 standby
也可以进入到 cli 重查看:

[cay@server3 bin]$ ./zkCli.sh 
[zk: localhost:2181(CONNECTED) 4] get /hadoop-ha/masters/ActiveBreadCrumb 

mastersh1server1 �F(�>
  1. 测试故障自动切换
[cay@server1 sbin]$ hdfs dfs -mkdir /user
[cay@server1 sbin]$ hdfs dfs -mkdir /user/cay
[cay@server1 sbin]$ cd

[cay@server1 ~]$ dd if=/dev/zero of=bigfile bs=1M count=200
[cay@server1 ~]$ hdfs dfs -put bigfile 
[cay@server1 ~]$ jps
6688 NameNode
7036 DFSZKFailoverController
7309 Jps
[cay@server1 ~]$ hdfs dfs -ls
Found 1 items
-rw-r--r--   3 cay supergroup  209715200 2020-07-15 13:27 bigfile
[cay@server1 ~]$ kill -9 6688		/杀掉 server1 的NN进程
[cay@server1 ~]$ hdfs dfs -ls
Found 1 items
-rw-r--r--   3 cay supergroup  209715200 2020-07-15 13:27 bigfile		/仍然能获取到,这是因为server5变为了active

荐
                                                        Hadoop -- 高可用配置zookeeper
在启动server 1 的 NN:

[cay@server1 ~]$ hdfs --daemon start namenode
[cay@server1 ~]$ jps
7542 Jps
7036 DFSZKFailoverController
7468 NameNode

荐
                                                        Hadoop -- 高可用配置zookeeper
就成standby了

yarn 的高可用

  1. 编辑 mapred-site.xml 文件
[cay@server1 hadoop]$ vim mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>		指定 yarn 为 MapReduce 的框架
        <value>yarn</value>
    </property>
</configuration>

2)编辑 yarn-site.xml 文件

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>		/配置可以在 nodemanager 上运行 mapreduce 程序
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>

/激活 RM 高可用
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>

/指定 RM 的集群 id
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>RM_CLUSTER</value>
</property>

/定义 RM 的节点
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>

/指定 RM1 RM2的地址
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>172.25.254.1</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>172.25.254.5</value>
</property>

/激活 RM 自动恢复
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>

/配置 RM 状态信息存储方式,有 MemStore 和 ZKStore
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>

/配置为 zookeeper 存储时,指定 zookeeper 集群的地址
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>172.25.254.2:2181,172.25.254.3:2181,172.25.254.4:2181</value>
</property>

3)启动 yarn 服务

[cay@server1 sbin]$ ./start-yarn.sh
Starting resourcemanagers on [ 172.25.254.1 172.25.254.5]
Starting nodemanagers
[cay@server1 tmp]$ jps
4560 Jps
3714 NameNode
3779 DFSZKFailoverController		server1 5上出现了 RM进程
4326 ResourceManager
[cay@server2 hadoop]$ jps
4450 JournalNode
4312 QuorumPeerMain
4553 DataNode
4925 NodeManager			/server234 出现了NM 进程
5021 Jps

荐
                                                        Hadoop -- 高可用配置zookeeper
可以通过8088的端口访问。当前server1是active。

  1. 测试 yarn 故障切换
[cay@server1 sbin]$ kill -9 4038		/杀掉server1的RM进程

荐
                                                        Hadoop -- 高可用配置zookeeper
server5就成了active的状态了。

[cay@server1 sbin]$ yarn --daemon start resourcemanager		/再次启动
jps[cay@server1 sbin]$ jps
8677 Jps
8646 ResourceManager
7036 DFSZKFailoverController
7468 NameNode

荐
                                                        Hadoop -- 高可用配置zookeeper
就u成stangby状态了。

Hbase 分布式数据库高可用

HBASE是基于HADOOP的分布式海量数据库

[cay@server1 ~]$ tar zxf hbase-1.2.4-bin.tar.gz 
[cay@server1 ~]$ cd hbase-1.2.4/
[cay@server1 hbase-1.2.4]$ ls
bin  CHANGES.txt  conf  docs  hbase-webapps  LEGAL  lib  LICENSE.txt  NOTICE.txt  README.txt
[cay@server1 hbase-1.2.4]$ vim conf/hbase-env.sh
export JAVA_HOME=/home/cay/jdk			/指定 jdk
export HADOOP_HOME=/home/cay/hadoop		/默认值时 true,hbase 在启动时自动开启 zookeeper,如需自己维护 zookeeper 集群需设置为 false
export HBASE_MANAGES_ZK=false			/指定 hadoop 目录,否则 hbase无法识别 hdfs 集群配置。


[cay@server1 hbase-1.2.4]$ vim conf/hbase-site.xml
<configuration>
/指定 region server 的共享目录,用来持久化 HBase。这里指定的 HDFS 地址是要跟 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必须一致
<property>
<name>hbase.rootdir</name>
<value>hdfs://masters/hbase</value>
</property>

/启用 hbase 分布式模式
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

/Zookeeper 集群的地址列表,用逗号分割。默认是 localhost,是给伪分布式用的。要修改才能在完全分布式的情况下使用。
<property>
<name>hbase.zookeeper.quorum</name>
<value>172.25.254.2,172.25.254.3,172.25.254.4</value>
</property>

/指定 hbase 的 master
<property><name>hbase.master</name>
<value>h1</value>
</property>

</configuration>

[cay@server1 conf]$ cat regionservers 
172.25.254.2
172.25.254.3		/告诉他分布式存储的区域
172.25.254.4

[cay@server1 bin]$ ./start-hbase.sh 		/直接运行
starting master, logging to /home/cay/hbase-1.2.4/bin/../logs/hbase-cay-master-server1.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
172.25.254.4: starting regionserver, logging to /home/cay/hbase-1.2.4/bin/../logs/hbase-cay-regionserver-server4.out
172.25.254.3: starting regionserver, logging to /home/cay/hbase-1.2.4/bin/../logs/hbase-cay-regionserver-server3.out
172.25.254.2: starting regionserver, logging to /home/cay/hbase-1.2.4/bin/../logs/hbase-cay-regionserver-server2.out
[cay@server1 bin]$ jps
9793 Jps
8646 ResourceManager
9562 HMaster			/master结点的进程
7036 DFSZKFailoverController
7468 NameNode

[cay@server2 hadoop]$ jps
5296 HRegionServer			DN结点生成的进程
4450 JournalNode
4312 QuorumPeerMain
4553 DataNode
5547 Jps
4925 NodeManager

在备机上手动启动hbase:

[cay@server5 bin]$ ./hbase-daemon.sh start master
starting master, logging to /home/cay/hbase-1.2.4/bin/../logs/hbase-cay-master-server5.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
[cay@server5 bin]$ jps
3714 NameNode
3779 DFSZKFailoverController
4326 ResourceManager
5071 HMaster
5183 Jps

HBase Master 默认端口时 16000,还有个 web 界面默认在 Master 的 16010 端口
上,HBase RegionServers 会默认绑定 16020 端口,在端口 16030 上有一个展示
信息的界面。
荐
                                                        Hadoop -- 高可用配置zookeeper
插入一些数据:

[cay@server5 bin]$ ./hbase shell
hbase(main):001:0> create 'test','cf'
0 row(s) in 5.0730 seconds

=> Hbase::Table - test
hbase(main):002:0> list 'test'
TABLE                                                                                                                                                                                                              
test                                                                                                                                                                                                               
1 row(s) in 0.0190 seconds

=> ["test"]
hbase(main):004:0> put 'test','row1','cf:a','value1'
0 row(s) in 0.0500 seconds

hbase(main):005:0> put 'test','row2','cf:b','value2'
0 row(s) in 0.0370 seconds

hbase(main):006:0> scan 'test'
ROW                                                   COLUMN+CELL                                                                                                                                                  
 row1                                                 column=cf:a, timestamp=1594798895202, value=value1                                                                                                           
 row2                                                 column=cf:b, timestamp=1594798907459, value=value2                                                                                                           
2 row(s) in 0.0330 seconds

就可以在web界面看到了;
荐
                                                        Hadoop -- 高可用配置zookeeper
在zk重查看:

[zk: localhost:2181(CONNECTED) 8] get /hbase/master
�master:16000�
)�ϵ�PBUF

server1�}�����.�}		/当前master是server1

[cay@server1 bin]$ jps
10081 Jps
8646 ResourceManager
9562 HMaster
7036 DFSZKFailoverController
7468 NameNode
[cay@server1 bin]$ kill -9 9562			/关闭server1的master进程

[zk: localhost:2181(CONNECTED) 9] get /hbase/master
�master:16000fq;�'�	�PBUF
		
server5�}�����.�}				切换到了server5


[cay@server5 bin]$ ./hbase shell
hbase(main):001:0> scan 'test'
ROW                                                   COLUMN+CELL                                                                                                                                                  
 row1                                                 column=cf:a, timestamp=1594798895202, value=value1                                                                                                           
 row2                                                 column=cf:b, timestamp=1594798907459, value=value2                                                                                                           
2 row(s) in 0.4000 seconds
依然可以得到数据



[cay@server1 bin]$ ./hbase-daemon.sh start master			server1上再次开启,就成了standby 了
starting master, logging to /home/cay/hbase-1.2.4/bin/../logs/hbase-cay-master-server1.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
[cay@server1 bin]$ jps
8646 ResourceManager
10263 HMaster
10376 Jps
7036 DFSZKFailoverController
7468 NameNode

本文地址:https://blog.csdn.net/thermal_life/article/details/107356428

相关标签: Hadoop 分布式