欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

三、zookeeper--實現(xiàn)NN和RM的HA-創(chuàng)新互聯(lián)

一、hdfs namenode HA

1、概述

? 在hadoop1.0的時候,hdfs集群中namenode存在單點故障的問題,當namenode不可用的時候,就會導致整個hdfs集群服務不可用。另外如果需要臨時對namenode進行設計或者其他操作時,停掉namenode之后,hdfs集群也無法使用了。
? 通過HA的方式,可以一定程度上解決單點故障問題。

創(chuàng)新互聯(lián)是專業(yè)的吳忠網(wǎng)站建設公司,吳忠接單;提供做網(wǎng)站、成都網(wǎng)站設計,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行吳忠網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

2、namenode HA工作要點

1)元數(shù)據(jù)管理方式需要改變:
內存中各自保存一份元數(shù)據(jù);
Edits日志只有Active狀態(tài)的namenode節(jié)點可以做寫操作;
兩個namenode都可以讀取edits;
共享的edits放在一個共享存儲中管理(qjournal和NFS兩個主流實現(xiàn));

2)需要一個狀態(tài)管理功能模塊
hadoop實現(xiàn)了一個zkfailover,常駐在每一個namenode所在的節(jié)點,每一個zkfailover負責監(jiān)控自己所在namenode節(jié)點,利用zk進行狀態(tài)標識,當需要進行狀態(tài)切換時,由zkfailover來負責切換,切換時需要防止brain split現(xiàn)象的發(fā)生。

3)必須保證兩個NameNode之間能夠ssh無密碼登錄。用于后面的隔離。通過ssh方式到另外的namenode節(jié)點上,將namenode進程徹底殺死。防止腦裂。

4)隔離(Fence),即同一時刻僅僅有一個NameNode對外提供服務

3、namenode HA自動故障轉移工作機制

namenode HA自動故障轉移除了要兩個namenode之外,還需要增加兩個組件:zookeeper集群服務,ZKFailoverController(ZKFC)。

(1)ZKFC

它是zookeeper的一個客戶端,同時負責監(jiān)控namenode的狀態(tài)。每個namenode上都運行一個ZKFC進程。
1)健康監(jiān)測:
ZKFC使用一個健康檢查命令定期地ping與之在相同主機的NameNode,只要該NameNode及時地回復健康狀態(tài),ZKFC認為該節(jié)點是健康的。如果該節(jié)點崩潰,凍結或進入不健康狀態(tài),健康監(jiān)測器標識該節(jié)點為非健康的。
2)ZooKeeper會話管理:
當本地NameNode是健康的,ZKFC保持一個在ZooKeeper中打開的會話。如果本地NameNode處于active狀態(tài),ZKFC也保持一個特殊的znode鎖,該鎖使用了ZooKeeper對短暫節(jié)點(也就是臨時節(jié)點)的支持,如果會話終止,鎖節(jié)點將自動刪除。

ZKFC會在zookeeper上創(chuàng)建一個  /hadoop-ha/namenodeHA集群名稱/ 這樣一個節(jié)點,
該節(jié)點上有兩個子節(jié)點:
ActiveBreadCrumb:
持久節(jié)點,節(jié)點的值中記錄了  HA集群名稱 active節(jié)點別名 active節(jié)點地址
主要用于其他想訪問namenode服務的client用于獲取active狀態(tài)的namenode地址,所以必須得是持久節(jié)點。

ActiveStandbyElectorLock:
臨時節(jié)點,節(jié)點的值中記錄了  HA集群名稱 active節(jié)點別名 active節(jié)點地址。
起到互斥鎖的作用,只有獲取到該節(jié)點的使用權,才能修改上面ActiveBreadCrumb節(jié)點的值。
因為是臨時節(jié)點,所以當active namenode和zk保持連接,該節(jié)點就會一直存在,而standby的namenode也是和zk保持連接,但是發(fā)現(xiàn)該臨時節(jié)點已存在,就明白已經(jīng)有人占用了,所以它不會做任何事。當上面的active namenode發(fā)生問題,不正常了,ZKFC就會斷開和zk的連接,那么臨時節(jié)點就會消失。此時standby namenode就會重新創(chuàng)建該臨時節(jié)點,相當于獲得了鎖,可以修改ActiveBreadCrumb的值。此時它自己也就順理成章變成新的active namenode。

3)基于ZooKeeper的選擇:
如果本地NameNode是健康的,且ZKFC發(fā)現(xiàn)沒有其它的節(jié)點當前持有znode鎖,它將為自己獲取該鎖。如果成功,則它已經(jīng)贏得了選擇,并負責運行故障轉移進程以使它的本地NameNode為active。

4、HA配置

(1)環(huán)境規(guī)劃

主機 角色
bigdata121/192.168.50.121namenode,journalnode,datanode,zk
bigdata122/192.168.50.122namenode,journalnode,zk
bigdata123/192.168.50.123zk
軟件版本hadoop2.8.4,zookeeper3.4.10,centos7.2

jdk,zookeeper部署不重復講了,看之前的文章吧

基礎環(huán)境配置:
每個機器添加主機名解析/etc/hosts
每臺主機對自己,以及對另外兩臺主機都要配置ssh免秘鑰登錄
關閉防火墻以及selinux

(2)部署

hadoop的完整部署可以看之前的文章,這里著重講namenode HA的配置。
修改配置文件:
core-site.xml

<configuration>
        <!--指定namenode的HA集群的名字 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://mycluster</value>
        </property>

        <!--指定hadoop中hdfs保存數(shù)據(jù)塊和元數(shù)據(jù)塊的目錄-->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/modules/HA/hadoop-2.8.4/data/ha_data</value>
        </property>

        <!--指定使用的zk集群的所有節(jié)點ip:port-->
        <property>
                <name>ha.zookeeper.quorum</name>
            <value>bigdata121:2181,bigdata122:2181,bigdata123:2181</value>
        </property>
</configuration>

hdfs-site.xml

<configuration>
        <!-- namenode完全分布式集群名稱,名字需和core-site中定義的集群名字一樣 -->
        <property>
                <name>dfs.nameservices</name>
                <value>mycluster</value>
        </property>

        <!-- 集群中NameNode節(jié)點都有哪些,這里是節(jié)點的別名 -->
        <property>
                <name>dfs.ha.namenodes.mycluster</name>
                <value>nn1,nn2</value>
        </property>

        <!-- nn1的RPC通信地址 -->
        <property>
                <name>dfs.namenode.rpc-address.mycluster.nn1</name>
                <value>bigdata121:9000</value>
        </property>

        <!-- nn2的RPC通信地址 -->
        <property>
                <name>dfs.namenode.rpc-address.mycluster.nn2</name>
                <value>bigdata122:9000</value>
        </property>

        <!-- nn1的http通信地址 -->
        <property>
                <name>dfs.namenode.http-address.mycluster.nn1</name>
                <value>bigdata121:50070</value>
        </property>

        <!-- nn2的http通信地址 -->
        <property>
                <name>dfs.namenode.http-address.mycluster.nn2</name>
                <value>bigdata122:50070</value>
        </property>

        <!-- 指定NameNode元數(shù)據(jù)在JournalNode上的存放位置,用于存放edits日志 ,多個節(jié)點用逗號隔開-->
        <property>
                <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://bigdata121:8485;bigdata122:8485/mycluster</value>
        </property>

        <!-- 配置隔離機制,即同一時刻只能有一臺服務器對外響應,有shell和sshfence兩種方式,主要用于到down掉的namenode所在主機將進程kill掉
             防止腦裂的情況 -->
        <property>
                <name>dfs.ha.fencing.methods</name>
                <value>sshfence</value>
        </property>

        <!-- 使用隔離機制時需要ssh無秘鑰登錄到另外的主機上將namenode進程kill掉,這里指定私鑰的路徑-->
        <property>
                <name>dfs.ha.fencing.ssh.private-key-files</name>
                <value>/root/.ssh/id_rsa</value>
        </property>

        <!-- 聲明journalnode服務器存儲目錄-->
        <property>
                <name>dfs.journalnode.edits.dir</name>
                <value>/opt/modules/HA/hadoop-2.8.4/data/jn</value>
        </property>

        <!-- 關閉權限檢查-->
        <property>
                <name>dfs.permissions.enable</name>
                <value>false</value>
        </property>

        <!-- 訪問代理類:client,mycluster,active配置失敗自動切換實現(xiàn)方式。用于訪問已配置HA的namenode-->
        <property>
                <name>dfs.client.failover.proxy.provider.mycluster</name>
                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>

        <!-- 啟動ha的自動故障轉移,無需手動切換故障的namenode-->
        <property>
                <name>dfs.ha.automatic-failover.enabled</name>
                <value>true</value>
        </property>
</configuration>

配置文件同步到各個節(jié)點中。使用scp或者rsync隨意吧。

(3)啟動集群

第一次啟動時:

cd /opt/modules/HA/hadoop-2.8.4

1)各個journalnode節(jié)點上啟動journalnode服務
sbin/hadoop-daemon.sh start journalnode

2)nn1上格式化namenode,并啟動
bin/hdfs namenode -format
sbin/hadoop-daemon.sh start namenode

3)nn2上通過啟動的journalnode從nn1上同步namenode的數(shù)據(jù)到本地namenode
bin/hdfs namenode -bootstrapStandby

4)啟動nn2
sbin/hadoop-daemon.sh start namenode

5)nn1上啟動所有datanode
sbin/hadoop-daemons.sh start datanode

6)兩臺namenode上查看namenode狀態(tài)
bin/hdfs haadmin -getServiceState nn1
bin/hdfs haadmin -getServiceState nn2
正常情況一個是active,一個是standby

7)手動轉換成active和standby
bin/hdfs haadmin -transitionToActive namenode名稱
bin/hdfs haadmin -transitionToStandby namenode名稱
注意,如果需要手動切換,那么需要將hdfs-site.xml中的自動切換關掉。否則報錯。
或者使用 --forceactive 進行強制轉換。

啟動完成后,可以手動將active的namenode關掉,可以看到剛剛standby的namenode會自動轉為 active。而剛才關掉的namenode重新上線的話,就會變?yōu)閟tandby。

第二次啟動:
直接start-dfs.sh即可

(4)為什么沒有SNN?

當我們啟動完整個namenode的HA集群之后,我們發(fā)現(xiàn)并沒有SNN的身影,天真的我以為以為還需要手動啟動,就手動啟動一發(fā)了,結果報錯了。
查看SNN的啟動日志,可以發(fā)現(xiàn)有這么一個報異常信息

org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Failed to start secondary namenode
java.io.IOException: Cannot use SecondaryNameNode in an HA cluster. The Standby Namenode will perform checkpointing.
        at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.<init>(SecondaryNameNode.java:189)
        at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.main(SecondaryNameNode.java:690)

意思很明顯了,就是說SNN的職責由standby的namenode來完成了,HA狀態(tài)下不需要SNN的存在了。這樣其實也很合理,可以說是充分利用了standby的namenode,免得它閑在那里。

二、yarn resourceManager HA

1、工作機制

其實和上面的namenode的ha類似,也是借助ZKFC進行監(jiān)控RM。
會在 zk上創(chuàng)建一個 /yarn-leader-election/yarn集群名稱 的節(jié)點,
下面有兩個子節(jié)點:ActiveBreadCrumb, ActiveStandbyElectorLock
作用類似,不重復講。工作機制基本類似的

2、HA配置

(1)規(guī)劃

主機 角色
bigdata121zk, rm
bigdata122zk, rm
bigdata123zk

(2)配置文件

yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
        <!--指定reducer獲取數(shù)據(jù)方式為shuffle機制-->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

        <!--啟動日志聚集功能-->
        <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
        </property>

        <!--指定日志保留時間為7天,單位是秒-->
        <property>
                <name>yarn.log-aggregation.retain-seconds</name>
                <value>604800</value>
        </property>

    <!--啟用resourcemanager ha-->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>

    <!--聲明兩臺resourcemanager的集群名稱-->
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>cluster-yarn1</value>
    </property>

    <!--聲明兩臺resourcemanager的節(jié)點的別名-->
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>

    <!--聲明兩臺rm的地址-->
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>bigdata121</value>
    </property>

    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>bigdata122</value>
    </property>

    <!--指定zookeeper集群的地址-->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>bigdata121:2181,bigdata122:2181,bigdata123:2181</value>
    </property>

    <!--啟用自動恢復,故障自動切換-->
    <property>
         <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
    </property>

    <!--指定resourcemanager的狀態(tài)信息存儲在zookeeper集群-->
    <property>
        <name>yarn.resourcemanager.store.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
    </property>
</configuration>

配置文件同步到其他節(jié)點。

(3)啟動集群

bigdata121:啟動yarn
sbin/start-yarn.sh

bigdata122:啟動rm
sbin/yarn-daemon.sh start resourcemanager

查看服務狀態(tài):
bin/yarn rmadmin -getServiceState rm1
bin/yarn rmadmin -getServiceState rm2

測試方式和namenode類似,這里不重復

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站欄目:三、zookeeper--實現(xiàn)NN和RM的HA-創(chuàng)新互聯(lián)
路徑分享:http://aaarwkj.com/article46/ccogeg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供關鍵詞優(yōu)化、網(wǎng)站內鏈、網(wǎng)站收錄、網(wǎng)站維護搜索引擎優(yōu)化、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
亚洲欧美一区二区中文字幕| 在线播放亚洲一区二区三区| 欧美日韩在线不卡一区| 夜色一区二区av人片| 国产高清av免费在线播放| 激情自拍偷拍合集一部| 亚洲香蕉av一区二区蜜桃| 日韩丰满少妇在线观看| 九九视频免费观看5| 亚洲最新精品一区二区| 一区二区在线视频国产| 亚洲精品国产av一区| 国产日本韩国三级在线| 亚洲中文有码在线播放| 久久精品一品二品三品| 91精品麻豆国产自产在线| 日韩欧美一区二区三区| 69久久精品费精品国产| 中文字幕变态另类一区二区| 国产精品久久电影观看| 丁香婷婷激情五月天综合| 亚洲福利一区福利三区| 国产三级三级三级av精品| 秋霞三级在线免费观看| 99精品国产综合久久麻豆| 91精品日日躁夜夜躁欧美| 精品一区二区久久久久久网精| 中文字幕人妻紧贴拍摄| 99久久久精品国产免费| 日韩一二三四区免费观看| 欧美性色黄大片人与善| 久久久久久精品国产免费| 欧美黄片视频免费观看| 午夜福利在线视频观看| 久久国产精品必看狼人| 欧美在线观看黄片视频| 亚洲激情午夜福利视频| 99久久免费热在线观看| 亚洲中文永久免费视频| 国产av一区最新精品麻豆| 欧美性做爰片免费视频网|