部署Hadoop High Avalability

  • 部署規(guī)劃
    zookeeper集群需要奇數(shù)臺(tái)機(jī)器,至少需要三臺(tái)機(jī)器。hadoop集群至少需要2臺(tái)機(jī)器逼蒙。因此至少準(zhǔn)備三臺(tái)虛擬機(jī)。
    規(guī)劃每臺(tái)機(jī)器的主機(jī)名访忿,IP瞧栗,和扮演的角色斯稳,如下圖。
    Hadoop HA 規(guī)劃.png
  • 修改Linux主機(jī)名和IP
    根據(jù)規(guī)劃
    1)將網(wǎng)卡IP獲取方式修改為Manuel迹恐,并配置每臺(tái)機(jī)器的IP挣惰。
    2)修改/etc/hosts內(nèi)容將三臺(tái)機(jī)器的主機(jī)名和IP填寫進(jìn)去。
  • 配置ssh免密登錄并關(guān)閉防火墻
    根據(jù)規(guī)劃殴边,master需要免密登錄到slave0憎茂、slave1,以啟動(dòng)hadoop集群锤岸;同時(shí)slave1上啟動(dòng)resourcemanager竖幔,所以需要slave1免密登錄到master和slave0;master和slave0同為namenode是偷,一個(gè)宕機(jī)就啟動(dòng)另一個(gè)拳氢,所以要互相能免密登錄。
    綜上蛋铆,將master公鑰發(fā)送到slave0馋评、slave1;將slave1公鑰發(fā)送到master刺啦、slave0留特;將salve0公鑰發(fā)送到master。其中主要使用到的Linux命令有:
ssh-keygen -t rsa  
cat ./id_rsa.pub >> ./authorized_keys
scp ~/.ssh/id_rsa.pub user@hostname:/home/hadoop/
chmod 700 ./authorized_keys  //權(quán)限不夠會(huì)導(dǎo)致配置失敗
service iptables close
chkconfig iptables off ```

- **配置環(huán)境變量并部署集群**
在master節(jié)點(diǎn)上安裝JDK玛瘸,Hadoop蜕青,Zookeeper并配置環(huán)境變量,然后scp到其他節(jié)點(diǎn)上(JDK就不寫了)糊渊。
1)安裝zookeeper集群
主要修改配置文件conf/zoo.cfg

dataDir=/weekend/zookeeper-3.4.5/tmp
server.1=master:2888:3888server.2=slave0:2888:3888
server.3=slave1:2888:3888

2)安裝hadoop集群
主要修改5個(gè)配置文件:
**core.xml**

<configuration>

<property>
<name>fs.defaultFS</name>
<value>hdfs://ns</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/workspace/hdfs/temp</value>
</property>

<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>

<property>
<name>ha.zookeeper.quorum</name>
<value>master:2181,slave0:2181,slave1:2181</value>
</property>
</configuration>

**hdfs-site.xml**

<configuration>

<property>
<name>dfs.nameservices</name>
<value>ns</value>
</property>

<property>
<name>dfs.ha.namenodes.ns</name>
<value>nn1,nn2</value>
</property>

<property>
<name>dfs.namenode.rpc-address.ns.nn1</name>
<value>master:9000</value>
</property>

<property>
<name>dfs.namenode.http-address.ns.nn1</name>
<value>master:50070</value>
</property>

<property>
<name>dfs.namenode.rpc-address.ns.nn2</name>
<value>slave0:9000</value>
</property>

<property>
<name>dfs.namenode.http-address.ns.nn2</name>
<value>slave0:50070</value>
</property>

<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master:8485;slave0:8485;slave1:8485/ns</value>
</property>

<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/workspace/journal</value>
</property>

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

<property>
<name>dfs.client.failover.proxy.provider.ns</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>

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

<property>    
    <name>dfs.namenode.name.dir</name>    
    <value>file:///home/hadoop/workspace/hdfs/name</value>    
</property>    

<property>    
    <name>dfs.datanode.data.dir</name>    
    <value>file:///home/hadoop/workspace/hdfs/data</value>    
</property>    

<property>    
   <name>dfs.replication</name>    
   <value>2</value>    
</property>   
<!-- 在NN和DN上開啟WebHDFS (REST API)功能,不是必須 -->                                                                    
<property>    
   <name>dfs.webhdfs.enabled</name>    
   <value>true</value>    
</property>    

</configuration>

**mapred-site.xml**

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

**yarn-site.xml**

<configuration>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
</property>
</configuration>

**slaves**

master
slave0
slave1

- **啟動(dòng)zookeeper集群**
一市咆、首次啟動(dòng):
**01**
啟動(dòng)zookeeper集群:分別在三個(gè)節(jié)點(diǎn)上啟動(dòng)zookeeper

zkServer.sh start```
啟動(dòng)后用如下命令驗(yàn)證,集群?jiǎn)?dòng)成功再来,有兩個(gè)follower節(jié)點(diǎn)跟一個(gè)leader節(jié)點(diǎn)蒙兰;

[hadoop@master bin]$ zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower

02
啟動(dòng)journalnode集群(在master的hadoop目錄下執(zhí)行以下命令):

sbin/hadoop-daemons.sh start journalnode

03
格式化hdfs(在master上執(zhí)行以下命令):

hadoop namenode –format

04
格式化zkfc,讓在zookeeper中生成ha節(jié)點(diǎn)(在master上執(zhí)行以下命令):

hdfs zkfc –formatZK

05
啟動(dòng)HDFS(在master上執(zhí)行以下命令):

sbin/start-dfs.sh

06
啟動(dòng)YARN(在slave1上執(zhí)行以下命令):

sbin/start-yarn.sh

二磷瘤、再次啟動(dòng)
01
啟動(dòng)zookeeper(分別啟動(dòng)):

zkServer.sh start

02
啟動(dòng)hdfs(master的hadoop目錄下):

sbin/start-dfs.sh

03
啟動(dòng)yarn(在slave1的hadoop目錄下):

sbin/start-yarn.sh

三、啟動(dòng)成功后的進(jìn)程

#master上的java PID進(jìn)程
[hadoop@master hadoop-2.7.3]$ jps
2837 NodeManager
3054 DFSZKFailoverController
4309 Jps
2692 DataNode
2173 QuorumPeerMain
2551 NameNode
2288 JournalNode
#slave0上的java PID進(jìn)程
[hadoop@salve0 ~]$ jps
2869 DFSZKFailoverController
2353 DataNode
2235 JournalNode
4522 Jps
2713 NodeManager
2591 NameNode
2168 QuorumPeerMain
#slave1上的java PID進(jìn)程
[hadoop@slave1 ~]$ jps
2167 QuorumPeerMain
2337 JournalNode
3506 Jps
2457 DataNode
2694 NodeManager
2590 ResourceManager
  • 可能遇到的錯(cuò)誤
    01
    運(yùn)行zookeeperd的啟動(dòng)腳本顯示啟動(dòng)成功搜变,但用zkServer.sh status查看采缚,反饋如下:
JMX enabled by default  
Using config: /data/programfiles/zookeeper-3.4.9/bin/../conf/zoo.cfg  
Error contacting service. It is probably not running.  

原因:在/data里面查找zookeeper_server.pid這個(gè)文件,里面保存的是zookeeper的啟動(dòng)id挠他,當(dāng)服務(wù)器重啟時(shí)zookeeper非正常退出扳抽,這個(gè)zookeeper_server.pid的值沒有被清除,當(dāng)執(zhí)行zookeeper啟動(dòng)腳本時(shí)發(fā)現(xiàn)這個(gè)文件的值殖侵,就以為zookeeper已經(jīng)啟動(dòng)贸呢。
解決方案:把zookeeper_server.pid里面的內(nèi)容清空,zookeeper就能正常啟動(dòng)拢军。
02
節(jié)點(diǎn)啟動(dòng)失敗
原因:hadoop集群所有的用戶名要一樣楞陷,因?yàn)殡m然可以用ssh hadoop@hadoop1代替ssh hadoop1,這讓我們覺得沒有必要讓hadoop每臺(tái)自己的用戶名一樣茉唉。這樣想是不對(duì)的固蛾。因?yàn)閟sh遠(yuǎn)程無(wú)密碼登入可以用ssh hadoop@hadoop1。但是hadoop內(nèi)部是不會(huì)這樣智能處理的度陆。
解決方案:在配置hadoop集群時(shí)艾凯,要把所有機(jī)子的用戶名設(shè)置一樣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末懂傀,一起剝皮案震驚了整個(gè)濱河市趾诗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蹬蚁,老刑警劉巖恃泪,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異缚忧,居然都是意外死亡悟泵,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門闪水,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)糕非,“玉大人,你說(shuō)我怎么就攤上這事球榆⌒喾剩” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵持钉,是天一觀的道長(zhǎng)衡招。 經(jīng)常有香客問(wèn)我,道長(zhǎng)每强,這世上最難降的妖魔是什么始腾? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任州刽,我火速辦了婚禮,結(jié)果婚禮上浪箭,老公的妹妹穿的比我還像新娘穗椅。我一直安慰自己,他們只是感情好奶栖,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布匹表。 她就那樣靜靜地躺著,像睡著了一般宣鄙。 火紅的嫁衣襯著肌膚如雪袍镀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天冻晤,我揣著相機(jī)與錄音苇羡,去河邊找鬼。 笑死明也,一個(gè)胖子當(dāng)著我的面吹牛宣虾,可吹牛的內(nèi)容都是我干的惯裕。 我是一名探鬼主播温数,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蜻势!你這毒婦竟也來(lái)了撑刺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤握玛,失蹤者是張志新(化名)和其女友劉穎够傍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挠铲,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冕屯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拂苹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片安聘。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瓢棒,靈堂內(nèi)的尸體忽然破棺而出浴韭,到底是詐尸還是另有隱情,我是刑警寧澤脯宿,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布念颈,位于F島的核電站,受9級(jí)特大地震影響连霉,放射性物質(zhì)發(fā)生泄漏榴芳。R本人自食惡果不足惜嗡靡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窟感。 院中可真熱鬧叽躯,春花似錦、人聲如沸肌括。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谍夭。三九已至黑滴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間紧索,已是汗流浹背袁辈。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留珠漂,地道東北人晚缩。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像媳危,于是被迫代替她去往敵國(guó)和親荞彼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

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

  • 簡(jiǎn)述 hadoop 集群一共有4種部署模式待笑,詳見《hadoop 生態(tài)圈介紹》鸣皂。HA聯(lián)邦模式解決了單純HA模式的性能...
    mtide閱讀 12,984評(píng)論 8 20
  • 最近在學(xué)習(xí)大數(shù)據(jù)技術(shù),朋友叫我直接學(xué)習(xí)Spark暮蹂,英雄不問(wèn)出處寞缝,菜鳥不問(wèn)對(duì)錯(cuò),于是我就開始了Spark學(xué)習(xí)仰泻。 為什...
    Plokmijn閱讀 26,574評(píng)論 6 26
  • hadoop2集群搭建詳解------------------------天津九安醫(yī)療電子--吳偉 一荆陆、需要軟件 ...
    hogface閱讀 1,821評(píng)論 1 4
  • 之前的有點(diǎn)忘記了,這里在云筆記拿出來(lái)再玩玩.看不懂的可以留言 大家可以嘗試下Ambari來(lái)配置Hadoop的相關(guān)環(huán)...
    HT_Jonson閱讀 2,967評(píng)論 0 50
  • 1 目的將hadoop 2.7.1 安裝到 166、167集侯、168 三臺(tái)機(jī)器上2 提供環(huán)境練習(xí)環(huán)境192.168....
    灼灼2015閱讀 3,408評(píng)論 4 40