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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

<Zhuuu_ZZ>那些年我们踩过的Hadoop HA的坑--高可用集群

發布時間:2023/12/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 <Zhuuu_ZZ>那些年我们踩过的Hadoop HA的坑--高可用集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

高可用集群

  • 一.Hadoop集群OK
  • 二.Zookeeper集群OK(時區同步OK)
  • 三.修改Hadoop配置文件
    • 1.`vi core-site.xml`
    • 2.`vi hdfs-site.xml`
    • 3.`vi mapred-site.xml`
    • 4.`vi yarn-site.xml`
  • 四.發送文件
  • 五.啟動集群
  • 六.測試集群是否部署成功

一.Hadoop集群OK

鏈接: Hadoop集群配置詳解.

二.Zookeeper集群OK(時區同步OK)

鏈接: Zookeeper集群與時區同步配置詳解.

三.修改Hadoop配置文件

  • 以往的配置全部刪除,直接插入下方配置信息即可
    首先轉到配置文件下 cd /opt/hadoop2.6.0/etc/hadoop/

1.vi core-site.xml

<configuration><!-- 指定hdfs的nameservice為ns --><property><name>fs.defaultFS</name><value>hdfs://ns</value></property><!-- 指定hadoop臨時目錄 --><property><name>hadoop.tmp.dir</name><value>/opt/hadoop2.6.0/tmp</value></property><!-- 指定zookeeper地址 --><property><name>ha.zookeeper.quorum</name><value>hadooptest1:2181,hadooptest2:2181,hadooptest3:2181</value></property><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property></configuration>

2.vi hdfs-site.xml

<configuration><property><name>dfs.replication</name><value>3</value></property><!--當使用HA配置集群時,則不需要secondarynamenode<property><name>dfs.namenode.secondary.http-address</name><value>192.168.198.111:50090</value></property>--><!--指定hdfs的nameservice為ns,需要和core-site.xml中的保持一致 --><property><name>dfs.nameservices</name><value>ns</value></property><!-- ns下面有兩個NameNode,分別是hadooptest1,hadooptest2--><property><name>dfs.ha.namenodes.ns</name><value>hadooptest1,hadooptest2</value></property><!-- hadooptest1的RPC通信地址 --><property><name>dfs.namenode.rpc-address.ns.hadooptest1</name><value>hadooptest1:9000</value></property><!-- hadooptest1的http通信地址 --><property><name>dfs.namenode.http-address.ns.hadooptest1</name><value>hadooptest1:50070</value></property><!-- hadooptest2的RPC通信地址 --><property><name>dfs.namenode.rpc-address.ns.hadooptest2</name><value>hadooptest2:9000</value></property><!-- hadooptest2的http通信地址 --><property><name>dfs.namenode.http-address.ns.hadooptest2</name><value>hadooptest2:50070</value></property><!-- 指定NameNode的元數據在JournalNode上的存放位置 --><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://hadooptest1:8485;hadooptest2:8485;hadooptest3:8485/ns</value></property><!-- 指定JournalNode在本地磁盤存放數據的位置 --><property><name>dfs.journalnode.edits.dir</name><value>/opt/hadoop2.6.0/journaldata</value></property><!-- 開啟NameNode失敗自動切換 --><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>sshfenceshell(/bin/true)</value></property><!-- 配置sshfence隔離機制超時時間 --><property><name>dfs.ha.fencing.ssh.connect-timeout</name><value>30000</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property></configuration>

3.vi mapred-site.xml

<configuration><!-- 指定mr框架為yarn方式 --><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>

4.vi yarn-site.xml

<configuration> <!--非HA模式下指定resourcemanager <property> <name>yarn.resourcemanager.hostname</name> <value>hadooptest1</value> </property> --> <!-- Site specific YARN configuration properties --> <!-- 開啟RM高可用 --><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!-- 指定RM的cluster id --><property><name>yarn.resourcemanager.cluster-id</name><value>cluster_id</value></property><!-- 指定RM的名字 --><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><!-- 分別指定RM的地址 --><property><name>yarn.resourcemanager.hostname.rm1</name><value>hadooptest1</value></property><property><name>yarn.resourcemanager.hostname.rm2</name><value>hadooptest2</value></property><property><name>yarn.resourcemanager.webapp.address.rm1</name><value>hadooptest1:8088</value></property><property><name>yarn.resourcemanager.webapp.address.rm2</name><value>hadooptest2:8088</value></property><!-- 指定zk集群地址 --><property><name>yarn.resourcemanager.zk-address</name><value>hadooptest1:2181,hadooptest2:2181,hadooptest3:2181</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration>

四.發送文件

在**/opt/hadoop2.6.0/etc/hadoop/**目錄下將配置好的主機配置文件發送到集群里的其它機器上
scp *.xml hadooptest2:$PWD
scp *.xml hadooptest3:$PWD
當然也可以采用多開方式一起配置集群里的虛擬機,條條大路通羅馬,只要沒有Bug我們都是好朋友!!!

五.啟動集群

若遇到Hadoop報錯:NoRouteToHostException: No route to host,關掉所有節點防火墻systemctl disable firewalld,重啟所有節點機器reboot就好。

注:第一次啟動集群需全部執行所有步驟,以后啟動集群一般而言直接執行第5,6,7,10步就行啦。

1.確保集群處于關閉狀態
2.集群所有機器啟動journalnode:hadoop-daemon.sh start journalnode
3.集群所有機器刪除tmp文件夾,選擇主節點重新格式化hadoop namenode -format
4.把主節點新生成的tmp文件夾復制到備用節點:scp -r tmp hadooptest2:$PWD。或者直接在備用節點輸入hdfs namenode -bootstrapStandby也可。
5.機器所有機器啟動Zookeeper:zkServer.sh start
6.啟動Hadoop集群: start-all.sh
7. 在備用節點上啟動備用resourcemanager: yarn-daemon.sh start resourcemanager
8. 主節點格式化zkfc:hdfs zkfc -formatZK
9. 主,備節點啟動zkfc:hadoop-daemon.sh start zkfc
10.啟動歷史服務:mr-jobhistory-daemon.sh start historyserver

六.測試集群是否部署成功


總結

以上是生活随笔為你收集整理的<Zhuuu_ZZ>那些年我们踩过的Hadoop HA的坑--高可用集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。