乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      HDFS Federation和NameNode HA的搭建

       春和秋榮 2019-09-08

      1. HDFS Federation產(chǎn)生背景

          在Hadoop 1.0中,HDFS的單NameNode設(shè)計(jì)帶來諸多問題,包括單點(diǎn)故障、內(nèi)存受限制約集群擴(kuò)展性和缺乏隔離機(jī)制(不同業(yè)務(wù)使用同一個(gè)NameNode導(dǎo)致業(yè)務(wù)相互影響)等,為了解決這些問題,Hadoop 2.0引入了基于共享存儲(chǔ)的HA解決方案和HDFS Federation,這里重點(diǎn)介紹HDFS Federation。

          HDFS Federation是指HDFS集群可同時(shí)存在多個(gè)NameNode,這些NameNode分別管理一部分?jǐn)?shù)據(jù),且共享所有DataNode的存儲(chǔ)資源。這種設(shè)計(jì)可解決單NameNode存在的以下幾個(gè)問題:

      (1)HDFS集群擴(kuò)展性。多個(gè)NameNode分管一部分目錄,使得一個(gè)集群可以擴(kuò)展到更多節(jié)點(diǎn),不再像1.0中那樣由于內(nèi)存的限制制約文件存儲(chǔ)數(shù)目。

      (2)性能更高效。多個(gè)NameNode管理不同的數(shù)據(jù),且同時(shí)對(duì)外提供服務(wù),將為用戶提供更高的讀寫吞吐率。

      (3)良好的隔離性。用戶可根據(jù)需要將不同業(yè)務(wù)數(shù)據(jù)交由不同NameNode管理,這樣不同業(yè)務(wù)之間影響很小。

      需要注意的,HDFS Federation并不能解決單點(diǎn)故障問題,也就是說,每個(gè)NameNode都存在在單點(diǎn)故障問題,你需要為每個(gè)namenode部署一個(gè)backup namenode以應(yīng)對(duì)NameNode掛掉對(duì)業(yè)務(wù)產(chǎn)生的影響。

      2.安裝環(huán)境

      由于HDFS federation仍然存在單點(diǎn)故障問題,所以我們考慮HA和HDFS federation共同搭建。各個(gè)節(jié)點(diǎn)角色分配如下:

      用戶名

      ip地址

      NameNode

      (active)

      secondarynamenode

      NameNode

      (standby)

      JournalNode

      DataNode

      Zookeeper

      歸屬組

      centos94

      192.168.1.94

      Y

      Y

       

       

      Y

       

      cloud-1

      centos105

      192.168.1.105

       

      Y

      Y

       

      Y

       

      centos95

      192.168.1.95

      Y

      Y

       

      Y

      Y

      Y

      cloud-2

      centos112

      192.168.1.112

       

      Y

      Y

      Y

      Y

      Y

      centos111

      192.168.1.111

       

       

       

      Y

      Y

      Y

       

       

      軟件版本:

      hadoop:hadoop-2.2.0.tar.gz(利用源碼自編譯后適用于64位系統(tǒng))

      zookeeper:zookeeper-3.4.6.tar.gz

       

      前期具體的安裝環(huán)境準(zhǔn)備請(qǐng)參考文檔:《Hadoop、HBase、Hive整合安裝文檔》

      下面主要是一些參數(shù)設(shè)置:

      HA + Federation,所有節(jié)點(diǎn)共同部分hdfs-site.xml

      <property>

         <name>dfs.namenode.name.dir</name>

         <value>/home/admin/hadoop-2.2.0/dfs/name</value>

      </property>

      <property>

          <name>dfs.datanode.data.dir</name>

          <value>/home/admin/hadoop-2.2.0/dfs/data</value>

       </property>

      <property>

          <name>dfs.nameservices</name>

          <value>cloud-1, cloud-2</value>

      </property>

      <property>

          <name>dfs.replication</name>

          <value>3</value>

      </property>

      <property>

          <name>dfs.ha.namenodes.cloud-1</name>

          <value>centos94,centos105</value>

      </property>

      <property>

          <name>dfs.ha.namenodes.cloud-2</name>

          <value>centos95,centos112</value>

      </property>

      <property>

          <name>dfs.namenode.rpc-address.cloud-1.centos94</name>

          <value>centos94:9000</value>

      </property>

      <property>

          <name>dfs.namenode.http-address.cloud-1.centos94</name>

          <value>centos94:50070</value>

      </property>

      <property>

          <name>dfs.namenode.rpc-address.cloud-1.centos105</name>

          <value>centos105:9000</value>

      </property>

       

      <property>

          <name>dfs.namenode.http-address.cloud-1.centos105</name>

          <value>centos105:50070</value>

      </property>

      <property>

          <name>dfs.namenode.rpc-address.cloud-2.centos95</name>

          <value>centos95:9000</value>

      </property>

      <property>

          <name>dfs.namenode.http-address.cloud-2.centos95</name>

          <value>centos95:50070</value>

      </property>

      <property>

          <name>dfs.namenode.rpc-address.cloud-2.centos112</name>

          <value>centos112:9000</value>

      </property>

      <property>

          <name>dfs.namenode.http-address.cloud-2.centos112</name>

          <value>centos112:50070</value>

      </property>

      <property>

      <name>dfs.journalnode.edits.dir</name>

      <value>/home/admin/hadoop-2.2.0/tmp/journal</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/admin/.ssh/id_rsa</value>

      </property>

      在cloud-1和cloud-2中不一樣的配置:

      cloud-1

      <property>

      <name>dfs.namenode.shared.edits.dir</name>

      <value>qjournal://centos95:8485;centos111:8485;centos112:8485/cloud-1</value>

      <description>指定cloud-1的兩個(gè)NameNode共享edits文件目錄時(shí),使用的是JournalNode集群來維護(hù)</description>

      </property>

      <property>

      <name>dfs.ha.automatic-failover.enabled.cloud-1</name>

      <value>true</value>

      </property>

      <property>

      <name>dfs.client.failover.proxy.provider.cloud-1</name>

      <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

      </property>

      cloud-2

      <property>

      <name>dfs.namenode.shared.edits.dir</name>

      <value>qjournal://centos95:8485;centos111:8485;centos112:8485/cloud-2</value>

      <description>指定cloud-2的兩個(gè)NameNode共享edits文件目錄時(shí),使用的是JournalNode集群來維護(hù)</description>

      </property>

      <property>

      <name>dfs.ha.automatic-failover.enabled.cloud-2</name>

      <value>true</value>

      </property>

      <property>

      <name>dfs.client.failover.proxy.provider.cloud-2</name>

      <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

      </property>

      配置:core-site.xml(所有節(jié)點(diǎn))

      <configuration>

      <property>
       <name>fs.defaultFS</name>
      <value>hdfs://cloud-1</value>

      <description>此處是默認(rèn)的HDFS路徑,在節(jié)點(diǎn)centos94和centos105中使用cloud-1,在節(jié)點(diǎn)centos95和centos112中使用cloud-2</description>

      </property>
      <property>
       <name>hadoop.tmp.dir</name>
       <value>/home/admin/hadoop-2.2.0/tmp</value>
      </property>
      <property>
       <name>ha.zookeeper.quorum</name>
      <value>centos95:2181,centos111:2181,centos112:2181</value>

       <description>Zookeeper集群<description>

      </property>

      </configuration>

      配置 slaves

      vi slaves

      centos94

      centos95

      centos111

      centos112

      centos105

      配置 mapred-site.xml(所有節(jié)點(diǎn))

      <configuration>

      <property>

       <name>mapreduce.framework.name</name>

       <value>yarn</value>

       </property>

      </configuration>

      配置yarn-site.xml(所有節(jié)點(diǎn))

      <configuration>

      <!-- Site specific YARN configuration properties -->

      <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>

      啟動(dòng):

      1、啟動(dòng)Zookeeper

      在centos95、centos111、centos112上執(zhí)行

          bin/zkServer.sh start

      2、啟動(dòng)JournalNode

      在centos95、centos111、centos112上執(zhí)行:

          sbin/hadoop-daemon.sh start journalnode

      3、ZooKeeper集群中初始化HA的狀態(tài)(僅第一次需要執(zhí)行)

      在centos95、centos112上執(zhí)行(namenodes節(jié)點(diǎn)上):

          bin/hdfs zkfc -formatZK

          在創(chuàng)建Federation環(huán)境的時(shí)候,需要注意保持${CLUSTER_ID}的值,以確保所有NN能共享同一個(gè)集群的存儲(chǔ)資源,具體做法是在格式化第一臺(tái)NN之后,取得其${CLUSTER_ID}的值,然后用如下命令格式化其他NN:

      hdfs namenode -format -clusterid ${CLUSTER_ID}

      4、在cloud-1的centos94節(jié)點(diǎn)上執(zhí)行格式化(只有在第一次啟動(dòng)時(shí)需要進(jìn)行格式化):

      ./hdfs namenode -format -clusterId hadoop(自己指定名稱或者由集群自己生成)

      sbin/hadoop-daemon.sh start namenode

      生成的hadoop-cluster這個(gè)ID是整個(gè)集群共用的。保證兩個(gè)NameService可以共享所有的DataNodes,否則兩個(gè)NameService在format之后,生成的clusterid不一致,DataNode會(huì)隨機(jī)注冊(cè)到不同的NameNode上。

      對(duì)centos105(備用NN)節(jié)點(diǎn)同步主NN的元數(shù)據(jù)信息:

      bin/hdfs namenode -bootstrapStandby

      啟動(dòng)備NN:

      sbin/hadoop-daemon.sh start namenode

      在centos94、centos105上啟動(dòng)zkfc:

      sbin/hadoop-daemon.sh start zkfc

      執(zhí)行后, hadoop0、hadoop1有一個(gè)節(jié)點(diǎn)就會(huì)變?yōu)閍ctive狀態(tài)。

      5、在cloud-2的centos95節(jié)點(diǎn)上執(zhí)行格式化:

         ./hdfs namenode -format -clusterId hadoop

      sbin/hadoop-daemon.sh start namenode

      對(duì)centos112(備用NN)節(jié)點(diǎn)同步主NN的元數(shù)據(jù)信息:

      bin/hdfs namenode -bootstrapStandby

      啟動(dòng)備NN:

      sbin/hadoop-daemon.sh start namenode

          在centos95、centos112上啟動(dòng)zkfc:

          sbin/hadoop-daemon.sh start zkfc

      6、啟動(dòng)所有的datanode

         在active namenode節(jié)點(diǎn)上執(zhí)行:sbin/hadoop-daemons.sh start datanode

      7、啟動(dòng)后的效果:

            

      可以看出四者的Cluster ID是一致的。

       

      8、啟動(dòng)YARN

         在centos94節(jié)點(diǎn)上執(zhí)行:

         sbin/start-yarn.sh

      9、關(guān)閉集群

          在RM和NN所在節(jié)點(diǎn)master執(zhí)行:

          停止yarn:

          stop-yarn.sh

          停止hdfs:

          stop-dfs.sh

          停止zookeeper:

          zkServer.sh stop

      10、總結(jié)

           問題1:格式化后兩個(gè)namespace的CID不一致。

           解決辦法:刪除所有的tmp文件和dfs文件,重新格式化啟動(dòng)。

      11、配置federation和HA后的hadoop集群安裝hbase集群

      在每一個(gè)federation內(nèi)配置hbase集群,有幾個(gè)federation就有幾個(gè)hbase集群,而hbase集群之間是平行孤立的。需要把各個(gè)federation內(nèi)hadoop配置文件hdfs-site.xml文件放置在hbase的conf目錄下,然后把hbase.rootdir配置成聯(lián)邦前綴。

      12、問題解決方法

       NN從non-HA轉(zhuǎn)到HA后,要清空/hbase/splitWAL

       在zookeeper node做下面的步驟

       1.運(yùn)行/usr/lib/zookeeper/bin/zkCli.sh

       2. ls /hbase/splitWAL,如果存在,運(yùn)行第三步

       3.rmr /hbase/splitWAL

       4.重啟HBase

       把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下,然后重啟HBase.

      13、傳統(tǒng)hadoop模式(主從結(jié)構(gòu))下hmaster啟動(dòng)失敗處理方式(在不存在數(shù)據(jù)的情況下)

       1.運(yùn)行~/zookeeper/bin/zkCli.sh

       2. ls /hbase/splitWAL,如果存在,運(yùn)行第三步

       3.rmr /hbase/splitWAL

       4.重啟HBase

       

       

         

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多