HDFS HA搭建步驟

1筒愚、HDFS HA 配置主要涉及幾點

1)多NameNode配置修己,唯一為active恢总,其他為standby
2)多個NameNode對EditLogs文件的共享:JournalNode
3)fence:任意時刻只能僅有一臺NameNode向外提供服務
4)NameNode在client的proxy

2、按照官方文檔步驟一步一步來操作

1)配置hdfs-site.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>

    
    <!-- secondary namenode 進程運行服務器 -->
    <!--
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>luozheng.bigdata2:9868</value>
    </property>
    -->
    <!-- 配置新的nameservices邏輯名稱 -->
    <property>
      <name>dfs.nameservices</name>
      <value>luozhengcluster</value>
    </property>

    <!-- 配置所有的NameNode睬愤,官方推薦NameNode節(jié)點數(shù)量最少為2個片仿,最好是3個,不要超過5個尤辱, -->
    <property>
      <name>dfs.ha.namenodes.luozhengcluster</name>
      <value>nn1,nn2,nn3</value>
    </property>

    <!-- 配置NameNode RPC地址 -->
    <property>
      <name>dfs.namenode.rpc-address.luozhengcluster.nn1</name>
      <value>luozheng.bigdata:8020</value>
    </property>
    <property>
      <name>dfs.namenode.rpc-address.luozhengcluster.nn2</name>
      <value>luozheng.bigdata1:8020</value>
    </property>
    <property>
      <name>dfs.namenode.rpc-address.luozhengcluster.nn3</name>
      <value>luozheng.bigdata2:8020</value>
    </property>
    
    <!-- 配置NameNode HTTP訪問地址 -->
    <property>
      <name>dfs.namenode.http-address.luozhengcluster.nn1</name>
      <value>luozheng.bigdata:9870</value>
    </property>
    <property>
      <name>dfs.namenode.http-address.luozhengcluster.nn2</name>
      <value>luozheng.bigdata1:9870</value>
    </property>
    <property>
      <name>dfs.namenode.http-address.luozhengcluster.nn3</name>
      <value>luozheng.bigdata2:9870</value>
    </property>
    <!-- 共享editlogs存放節(jié)點砂豌,以供Active NameNode Write和Standby NameNode Read -->
    <property>
      <name>dfs.namenode.shared.edits.dir</name>
      <value>qjournal://luozheng.bigdata:8485;luozheng.bigdata1:8485;luozheng.bigdata2:8485/luozhengcluster</value>
    </property>
    
    <!-- NameNode proxy  -->
    <property>
      <name>dfs.client.failover.proxy.provider.luozhengcluster</name>
      <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    
    <!-- NameNode隔離機制,這里采用ssh方式光督,采用這種方式要注意的地方奸鸯,就是任意一個NameNode都能免密登錄到其他所有NameNode -->
     <property>
      <name>dfs.ha.fencing.methods</name>
      <value>sshfence</value>
    </property>

    <property>
      <name>dfs.ha.fencing.ssh.private-key-files</name>
      <value>/home/luozheng/.ssh/id_rsa</value>
    </property>
</configuration>

2)配置core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>

    <!-- namenode 服務器地址配置   -->
    <!--
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://luozheng.bigdata:9000</value>
    </property>
    -->
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://luozhengcluster</value>
    </property>

    <property>
      <name>dfs.journalnode.edits.dir</name>
      <value>/home/luozheng/tools/hadoop-3.0.1/data/journal</value>
    </property>

    <!-- 臨時文件存儲地址 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/luozheng/tools/hadoop-3.0.1/data/tmp</value>
    </property>
    
    <!-- 配置垃圾回收站中文件保存時間-->
    <property>
        <name>fs.trash.interval</name>
        <value>10080</value>
    </property>
    
    <!-- 配置讀寫文件緩沖區(qū)大小 -->
    <property>
        <name>io.file.buffer.size</name>
        <value>4096</value>
    </property>
    
</configuration>

3)啟動步驟
3.0)通過以下命令把相關文件同步到其他節(jié)點上

scp -r etc/ data/ luozheng@luozheng.bigdata1:/home/luozheng/tools/hadoop-3.0.1/
scp -r etc/ data/ luozheng@luozheng.bigdata2:/home/luozheng/tools/hadoop-3.0.1/

3.1)通過以下命令依次啟動所有journalnode守護進程

bin/hdfs --daemon start journalnode
image.png
image.png
image.png

3.2) 通過以下命令在luozheng.bigdata節(jié)點格式化namenode并啟動namenode

bin/hdfs namenode -format
bin/hdfs --daemon start namenode

3.3)在luozheng.bigdata1和luozheng.bigdata2節(jié)點通過以下命令同步the contents of NameNode metadata directories,這里luozheng.bigdata1和luozheng.bigdata2都要同步是因為搭建的HA是有三個NameNode的。

bin/hdfs namenode -bootstrapStandby

3.4)通過以下命令依次啟動其他NameNode

bin/hdfs --daemon start namenode
image.png

image.png

image.png

3.5)依次啟動datanode

bin/hdfs --daemon start datanode

啟動結束后可帽,在瀏覽器中敲入http://luozheng.bigdata:9870娄涩,http://luozheng.bigdata1:9870http://luozheng.bigdata2:9870映跟,可以看到3個節(jié)點都啟動起來了蓄拣。

image.png

image.png
image.png

3.6) 讓指定的namenode狀態(tài)為active

bin/hdfs haadmin -transitionToActive nn1
image.png
4、Automatic Failover

namenode active和standby狀態(tài)的切換努隙,除了通過手動敲命令來實現(xiàn)球恤,還可以通過zookeeper來實現(xiàn)自動故障轉移,zookeeper通過ZKFailoverController來實時的監(jiān)控namenode的運行狀態(tài)荸镊,從而實現(xiàn)故障轉移咽斧。
4、1)相關配置躬存,先在hdfs-site.xml文件中加入如下內(nèi)容:

<!-- HA automatic failover -->
    <property>
       <name>dfs.ha.automatic-failover.enabled</name>
       <value>true</value>
     </property>

4张惹、2)在core-site.xml配置文件中加入如下配置信息:

<property>
       <name>ha.zookeeper.quorum</name>
       <value>luozheng.bigdata:2181,luozheng.bigdata1:2181,luozheng.bigdata2:2181</value>
    </property>

4、3)同步配置文件到其他節(jié)點

scp -r core-site.xml hdfs-site.xml luozheng@luozheng.bigdata1:/home/luozheng/tools/hadoop-3.0.1/etc/hadoop/

scp -r core-site.xml hdfs-site.xml luozheng@luozheng.bigdata2:/home/luozheng/tools/hadoop-3.0.1/etc/hadoop/

4岭洲、4)如果HDFS文件系統(tǒng)是處于運行狀態(tài)宛逗,先通過如下命令stop

sbin/stop-dfs.sh

4、5)到zookeeper安裝目錄盾剩,依次啟動zookeeper服務

bin/zkServer.sh start

4雷激、6)初始化HA在zookeeper狀態(tài)

bin/hdfs zkfc -formatZK

4、7)啟動HDFS集群

sbin/start-dfs.sh
image.png

image.png

image.png

image.png

image.png

image.png

zookeeper自動選舉了luozheng.bigdata節(jié)點中的namenode作為active namenode
現(xiàn)在強制kill掉該節(jié)點的namenode進程告私,測試下Automatic Failover


image.png

image.png

image.png

image.png
5屎暇、最后補充一點hadoop的高級特性

1)Federation:目前HDFS系統(tǒng)中,任意時刻都只有一臺namenode向外提供服務驻粟,F(xiàn)ederation可以讓多個namenode同時向外提供服務根悼,具體看官方文檔
2)HDFS快照
3)緩存管理
4)DistCp:分布式數(shù)據(jù)拷貝工具,官方文檔

總結,到此番挺,hadoop基本先告一段落唠帝,在學習的過程中,基本是以熟悉框架為主玄柏,先有個大概的概念襟衰,對于里面很多的原理基本沒有涉及,這個考慮的是在熟悉整個hadoop生態(tài)圈后粪摘,再慢慢通過官方文檔或是其他書籍來補充瀑晒,先要快速熟悉它們!

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末徘意,一起剝皮案震驚了整個濱河市苔悦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌椎咧,老刑警劉巖玖详,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異勤讽,居然都是意外死亡蟋座,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門脚牍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來向臀,“玉大人,你說我怎么就攤上這事诸狭∪颍” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵驯遇,是天一觀的道長芹彬。 經(jīng)常有香客問我,道長妹懒,這世上最難降的妖魔是什么雀监? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮眨唬,結果婚禮上,老公的妹妹穿的比我還像新娘好乐。我一直安慰自己匾竿,他們只是感情好,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布蔚万。 她就那樣靜靜地躺著岭妖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上昵慌,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天假夺,我揣著相機與錄音,去河邊找鬼斋攀。 笑死已卷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的淳蔼。 我是一名探鬼主播侧蘸,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鹉梨!你這毒婦竟也來了讳癌?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤存皂,失蹤者是張志新(化名)和其女友劉穎晌坤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旦袋,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡骤菠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了猜憎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娩怎。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖胰柑,靈堂內(nèi)的尸體忽然破棺而出截亦,到底是詐尸還是另有隱情,我是刑警寧澤柬讨,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布崩瓤,位于F島的核電站,受9級特大地震影響踩官,放射性物質(zhì)發(fā)生泄漏却桶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一蔗牡、第九天 我趴在偏房一處隱蔽的房頂上張望颖系。 院中可真熱鬧,春花似錦辩越、人聲如沸嘁扼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趁啸。三九已至强缘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間不傅,已是汗流浹背旅掂。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留访娶,地道東北人商虐。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像震肮,于是被迫代替她去往敵國和親称龙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 終極算法 關注微信號每天收聽我們的消息終極算法為您推送精品閱讀 前言 Hadoop 在大數(shù)據(jù)技術體系中的地位至關...
    Yespon閱讀 129,957評論 12 168
  • 翻譯: http://hadoop.apache.org/docs/stable/hadoop-project-d...
    金剛_30bf閱讀 513評論 0 1
  • 為什么要搭建NameNode HA戳晌? 因為hadoop中NameNode存在單節(jié)點故障鲫尊。hadoop1.x 中的S...
    心_的方向閱讀 1,803評論 0 4
  • (一)分布式文件系統(tǒng)概述 數(shù)據(jù)量越來越多,在一個操作系統(tǒng)管轄的范圍存不下了沦偎,那么就分配到更多的操作系統(tǒng)管理的磁盤中...
    時待吾閱讀 1,511評論 0 0
  • 導致我下定決心學習ADB的一個小原因是換了Mac之后疫向,手機和電腦傳輸文件成了一個大問題。原生的文件軟件不知道在我電...
    小屁孩_H閱讀 820評論 0 0