日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hadoop3节点hdfs ha,yarn ha配置

發(fā)布時(shí)間:2024/1/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop3节点hdfs ha,yarn ha配置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

0 各機(jī)器職責(zé)


進(jìn)程node1node2node3
NN

NameNode

11
DN

DateNode

111
JN

JournalNode

111
YARN

ResourceManage

11

NodeManager111
ZOOQuorumPeerMain111
ZKFC

DFSZKFailoverController

11

1 系統(tǒng)ip,hostname,hosts,環(huán)境變量配置

這里三臺(tái)機(jī)器如下,具體配置略,java環(huán)境配置略

192.168.158.101 node1

192.168.158.102 node2

192.168.158.103 node3

每臺(tái)機(jī)器環(huán)境變量 配置:

執(zhí)行vi ~/.bash_profile,加入如下內(nèi)容(目錄大家根據(jù)自己實(shí)際情況更改)

export?ZOOKEEPER_HOME=/home/hadoop/app/zookeeper export?HADOOP_HOME=/home/hadoop/app/hadoop export?PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

2 免密碼配置

?1 檢查每臺(tái)機(jī)器的防火墻是否關(guān)閉 ,防火墻需要關(guān)閉(必須,博主這一步忘了后面zookeeper怎么也不能啟動(dòng)成功)
?2 關(guān)閉Selinux,避免對(duì)其他服務(wù)影響,具體影響博主還不清楚,知道后更新
?3 配置免密碼登錄

a) 如果用戶路徑下存在.ssh文件夾,需要先刪除?

b) 所有節(jié)點(diǎn)生成RSA密鑰對(duì),命令如下:?

ssh-keygen?-t?rsa

一路回車就好

c) 在所有節(jié)點(diǎn)之間建立兩兩互信。?

步驟如下:?

將每個(gè)機(jī)器生成的公鑰id_rsa.pub的內(nèi)容復(fù)制到本機(jī)的 ~/.ssh/ 的authorized_keys 文件 里。命令如下:?

cp id_rsa.pub authorized_keys?

然后,將各個(gè)機(jī)器的 authorized_keys 文件中的內(nèi)容追加到其余機(jī)器上的 ~/.ssh/ authorized_keys 文件中(包括

namenode和datanode)?

d) 修改權(quán)限?

chmod 700 ~/.ssh?

?chmod 600 ~/.ssh/*

e) 經(jīng)過以上步驟,ssh配置也已完成。通過以下命令驗(yàn)證:?

ssh?節(jié)點(diǎn)名

第一次連接需要密碼,輸入yes和機(jī)器密碼就可以,以后即不用再輸入。?

注意: .ssh是700 ? ?.ssh下的文件是600 這一步也千萬別忘了,博主吃過虧的

3 配置zookeeper

1) 下載zookeeper包,并解壓到/home/hadoop/app/?

2) 編輯安裝路徑下conf/zoo.cfg文件,加入以下內(nèi)容:?

tickTime=2000?

initLimit=10?

syncLimit=5?

dataDir=/home/hadoop/data/zookeeper?

clientPort=2181?

#server.x=主機(jī)名:F和F之間同步和通信端口:選舉端口?

server.1=node1:2888:3888

server.2=node2:2888:3888

server.3=node3:2888:3888

右邊可以配置兩個(gè)端口,第一個(gè)端口用于 F和L之間的數(shù)據(jù)同步和其它通信,第二個(gè)端口用于Leader 選舉過程中投票通信。?

在 Node1、Node2、Node3 的$dataDir 下新建 myid 文件,分別放入各自的 server.id,比如 Node3 的 myid

文件中寫入3.?

3) 將zookeeper的文件夾分發(fā)到node2、node3?

4) 配置環(huán)境變量?

5) Zookeeper啟動(dòng)并檢查狀態(tài)??

啟動(dòng)zkServer.sh start

查看狀態(tài)zkServer.sh?status?

注意:每個(gè)節(jié)點(diǎn)啟動(dòng)后再查看狀態(tài),三節(jié)點(diǎn)的話必須兩個(gè)以上啟動(dòng)成功才算成功

4 HDFS 集群 HA 環(huán)境搭建?

1 配置hadoop-env.sh

將JAVA_HOME設(shè)置為具體路徑,如下

export?JAVA_HOME=/home/hadoop/app/jdk1.8.0_05
2 配置core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://cluster1</value></property><property><name>hadoop.tmp.dir</name><value>/home/hadoop/data/tmp</value></property><property><name>ha.zookeeper.quorum</name><value>node1:2181,node2:2181,node3:2181</value></property> </configuration>
3 配置hdfs-site.xml?
<configuration><property><name>dfs.permissions</name><value>false</value></property><property><name>dfs.permissions.enabled</name><value>false</value></property><property><name>dfs.name.dir</name><value>/home/hadoop/data/hdfs/name</value></property><property><name>dfs.data.dir</name><value>/home/hadoop/data/hdfs/data</value></property><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.nameservices</name><value>cluster1</value></property><property><name>dfs.ha.namenodes.cluster1</name><value>node1,node2</value></property><property><name>dfs.namenode.rpc-address.cluster1.node1</name><value>node1:9000</value></property><property><name>dfs.namenode.http-address.cluster1.node1</name><value>node1:50070</value></property><property><name>dfs.namenode.rpc-address.cluster1.node2</name><value>node2:9000</value></property><property><name>dfs.namenode.http-address.cluster1.node2</name><value>node2:50070</value></property><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://node1:8485;node2:8485;node3:8485/cluster1</value></property><property><name>dfs.ha.automatic-failover.enabled.cluster1</name><value>true</value></property><property><name>dfs.client.failover.proxy.provider.cluster1</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><property><name>dfs.journalnode.edits.dir</name><value>/home/hadoop/data/journaldata/jn</value></property><property><name>dfs.ha.fencing.methods</name><value>shell(/bin/true)</value></property><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/home/hadoop/.ssh/id_rsa</value></property><property><name>dfs.namenode.handler.count</name><value>100</value></property> </configuration>
4 配置slave
node1 node2 node3

5 啟動(dòng)

1、啟動(dòng)Zookeeper集群

分別在node1、node2、node3上執(zhí)行

zkServer.sh start

然后執(zhí)行

zkServer.sh status

查看是否啟動(dòng),確保啟動(dòng)后執(zhí)行后面的步驟

2、格式化Zookeeper集群,目的是在Zookeeper集群上建立HA的相應(yīng)節(jié)點(diǎn)

node1上執(zhí)行(任選一節(jié)點(diǎn))

hdfs zkfc ?-formatZK

3、啟動(dòng)Journal集群

分別在node1、node2、node3分別上執(zhí)行

hadoop-daemon.sh start journalnode

4、格式化集群上的一個(gè)NameNode

node1和node2上任選一個(gè)即可,這里我是在os1

hdfs namenode -format?

5、啟動(dòng)集群中步驟4中的NameNode

啟動(dòng)os1上的NameNode

hadoop-daemon.sh start namenode

6、把NameNode的數(shù)據(jù)同步到另一個(gè)NameNode上

把NameNode的數(shù)據(jù)同步到node2上,在node2中執(zhí)行

hdfs namenode –bootstrapStandby

7、啟動(dòng)另個(gè)一NameNode

node2上執(zhí)行

hadoop-daemon.sh start namenode

8、啟動(dòng)所有的DataNode

node1中執(zhí)行

hadoop-daemons.sh start datanode

9、啟動(dòng)ZKFC

分別在node1、node2上執(zhí)行

hadoop-daemon.sh start zkfc

6 YARN-HA環(huán)境搭建?

1 配置mapred-site.xml?
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property> </configuration>
2 配置yarn-site.xml
<property><name>yarn.resourcemanager.ha.enabled</name><value>true</value> </property> <!--是否啟用自動(dòng)故障轉(zhuǎn)移。默認(rèn)情況下,在啟用?HA?時(shí),啟用自動(dòng)故障轉(zhuǎn)移。--> <property><name>yarn.resourcemanager.ha.automatic-failover.enabled</name><value>true</value> </property> <!--啟用內(nèi)置的自動(dòng)故障轉(zhuǎn)移。默認(rèn)情況下,在啟用?HA?時(shí),啟用內(nèi)置的自動(dòng)故障轉(zhuǎn)移。-->? <property><name>yarn.resourcemanager.ha.automatic-failover.embedded</name><value>true</value> </property> <property><name>yarn.resourcemanager.cluster-id</name><value>yarn-rm-cluster</value> </property> <property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value> </property> <property><name>yarn.resourcemanager.hostname.rm1</name><value>node1</value> </property> <property><name>yarn.resourcemanager.hostname.rm2</name><value>node2</value> </property> <!--啟用?resourcemanager?自動(dòng)恢復(fù)-->? <property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value> </property> <!--配置?Zookeeper?地址-->? <property><name>yarn.resourcemanager.zk.state-store.address</name><value>node1:2181,node2:2181,node3:2181</value> </property> <property><name>yarn.resourcemanager.zk-address</name><value>node1:2181,node2:2181,node3:2181</value> </property> <property><name>yarn.resourcemanager.address.rm1</name><value>node1:8032</value> </property> <property><name>yarn.resourcemanager.address.rm2</name><value>node2:8032</value> </property> <property><name>yarn.resourcemanager.scheduler.address.rm1</name><value>node1:8034</value> </property> <property><name>yarn.resourcemanager.webapp.address.rm1</name><value>node1:8088</value> </property> <property><name>yarn.resourcemanager.scheduler.address.rm2</name><value>node2:8034</value> </property> <property><name>yarn.resourcemanager.webapp.address.rm2</name><value>node2:8088</value> </property> <property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value> </property> <!--執(zhí)行?MapReduce?需要配置的?shuffle?過程-->? <property><name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value> </property>
3 將上面兩個(gè)配置文件分發(fā)到各節(jié)點(diǎn),然后按下面步驟啟動(dòng)

a)在node1執(zhí)行?sbin/start-yarn.sh

jps查看ResourceManager進(jìn)程是否啟動(dòng),如果沒有看日志排查問題后重新執(zhí)行?

b) node1中成功啟動(dòng)ResourceManager進(jìn)城后在node2執(zhí)行

?sbin/yarn-daemon.sh?start?resourcemanager

同時(shí)打開一下web界面。?

http://node1:8088

http://node2:8088?

關(guān)閉其中一個(gè)resourcemanager,然后再啟動(dòng),看看這個(gè)過程的web界面變化。?

sbin/yarn-daemon.sh?start?resourcemanager? sbin/yarn-daemon.sh?stop?resourcemanager
4?檢查一下ResourceManager狀態(tài)
bin/yarn?rmadmin?-getServiceState?rm1? bin/yarn?rmadmin?-getServiceState?rm2

7 Wordcount示例測試?

? ?1. 準(zhǔn)備test.txt文件,內(nèi)容如下:

????hello world hello hadoop

????2 .hdfs中創(chuàng)建test目錄并上傳測試文件,然后執(zhí)行hadooop自帶wordcount程序

?hadoop?fs?-?mkdir?-p?/testhadoop?fs?-put?test.txt?/testhadoop?jar?share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar?wordcount?/test/test.txt?/test/out/

出現(xiàn)下圖代表執(zhí)行成功,大家可以通過”hadoop fs -ls?輸出目錄“自行去看下執(zhí)行結(jié)果

轉(zhuǎn)載于:https://my.oschina.net/firstBlooded/blog/550198

總結(jié)

以上是生活随笔為你收集整理的hadoop3节点hdfs ha,yarn ha配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。