在咱們安裝高可用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看的。日誌