在咱们安装高可用hadoop集群时,咱们会按照如下命令去执行启动操做;
(1)格式化zk
hdfs zkfc -formatZK
(2)启动journalnode进程
(3)格式化namenode
hadoop namenode -format 集群名
(4)启动namenode
(5)在备namenode节点同步元数据
(6)启动备namenode
(7)启动zkfc
那么咱们为何要对NameNode和Zookeeper进行format操做;node
core-site.xml 是 NameNode 的核心配置文件,主要对 NameNode 的属性进行设置,也仅仅在 NameNode 节点生效,这里我用的是hadoop用户。session
<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文件。ide
zkfc是ZK集群的客户端,用来监控NN的状态信息。
主要功能以下:
oop
hdfs zkfc -formatZK 作了什么操做?
由于FC(failOver)须要把NN的状态写给ZK,因此命令这个就是为了建立一个父目录,后续fc会
把nn的状态写到这下面给zk看的。日志