NameNode和Zookeeper的format作用
在我们安装高可用hadoop集群时,我们会按照以下命令去执行启动操作;
?
?(1)格式化zk
?
??hdfs zkfc -formatZK
?
?(2)启动journalnode进程
?
?(3)格式化namenode
?
??hadoop namenode -format 集群名
?
?(4)启动namenode
?
?(5)在备namenode节点同步元数据
?
?(6)启动备namenode
?
?(7)启动zkfc
?
那么我们为什么要对NameNode和Zookeeper进行format操作;
?
?(1)格式化zk
?
??hdfs zkfc -formatZK
?
?(2)启动journalnode进程
?
?(3)格式化namenode
?
??hadoop namenode -format 集群名
?
?(4)启动namenode
?
?(5)在备namenode节点同步元数据
?
?(6)启动备namenode
?
?(7)启动zkfc
?
那么我们为什么要对NameNode和Zookeeper进行format操作;
- NameNode进行format的作用
core-site.xml 是 NameNode 的核心配置文件,主要对 NameNode 的属性进行设置,也仅仅在 NameNode 节点生效,这里我用的是hadoop用户。
<property> <name>hadoop.tmp.dir</name> <value>/tmp/hadoop-${user.name}</value> </property>
hadoop.tmp.dir存放临时数据的公共目录目录,如果没有配置,那么即为默认配置namenode、
?
journalnode和datanode的数据都会存放在此目录中,也可以单独配置在hdfs-site.xml文件中。
?
dfs.journalnode.edits.dir:指定JournalNode集群存储edits目录
?
dfs.namenode.name.dir:元数据目录
?
dfs.datanode.data.dir:数据目录
?
namenode进行format操作后会创建以下文件:
?
文件解释如下:
fsimage:存储命名空间(实际上就是目录和文件)的元数据信息;
?
edits:用来存储对命名空间操作的日志信息,实现NameNode节点的恢复;
?
VERSION:用来存储NameNode版本信息,命名空间ID(版本号);
?
editsinprogress:还在使用的edits文件。
?
- Zookeeper的format作用
?
NameNode高可用和共享存储与ZooKeeper架构图
?
zkfc是ZK集群的客户端,用来监控NN的状态信息。
?
主要功能如下:
?
- 2.1 健康监控
?
zkfc定期对本地的NN发起health-check的命令,如果NN正确返回,那么这个NN被认为是OK
的。否则被认为是失效节点。
? - 2.2 Zookeeper会话管理
?
当本地NN是健康的时候,zkfc将会在zk中持有一个session。如果本地NN又正好是active的,那么zkfc还有持有一个"ephemeral"的节点作为锁,一旦本地NN失效了,那么这个节点将会被自动删除。
?
*2.3 基于Zookeeper的选举
?
如果本地NN是健康的,并且zkfc发现没有其他的NN持有那个独占锁。那么他将试图去获取该锁,一旦成功,那么它就需要执行Failover,然后成为active的NN节点。Failover的过程是:第一步,对之前的NN执行fence,如果需要的话。第二步,将本地NN转换到active状态。
?
?hdfs zkfc -formatZK 做了什么操作?
?
因为FC(failOver)需要把NN的状态写给ZK,所以命令这个就是为了创建一个父目录,后续fc会
?
把nn的状态写到这下面给zk看的。
相关推荐
deyu 2020-07-21
Kafka 2020-09-18
iamdll 2020-07-29
deyu 2020-07-27
deyu 2020-07-07
ZHANGYONGHAO0 2020-07-05
joynet00 2020-06-26
isHooky 2020-06-25
CobingLiu 2020-06-21
CobingLiu 2020-06-16
airfish000 2020-06-14
roddex00 2020-06-12
iamdll 2020-06-11
CobingLiu 2020-06-10
MrZhangAdd 2020-06-09
yixietianxia 2020-06-04
pfjia 2020-05-31