• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      淺析Hadoop高可用的配置

      2021-09-10 07:22:44劉慶生陳位妮
      科技研究 2021年18期
      關(guān)鍵詞:配置服務(wù)

      劉慶生 陳位妮

      摘要:高可用是保持服務(wù)高度可用性的一種設(shè)計(jì)。Hadoop高可用是應(yīng)用在只有一個(gè)NameNode節(jié)點(diǎn)無(wú)法在故障宕機(jī)或者升級(jí)軟硬件需要重啟時(shí)而導(dǎo)致中止服務(wù)時(shí),可快速用候補(bǔ)節(jié)點(diǎn)替代。要實(shí)現(xiàn)Hadoop高可用性,配置高可用是關(guān)鍵,特別要掌握配置過(guò)程中的技巧。

      關(guān)鍵詞:高可用、Active(服務(wù))、Standby(候補(bǔ))、配置

      HA is a design to keep services highly available.Hadoop’s HA is mainly used in cases where only one NameNode node is unable to suspend service in the event of a failure or a software or hardware upgrade requiring a restart,and can be quickly replaced with a standby node. To achieve Hadoop’s HA,configuration high availability is the key,especially to master the skills in the configuration process.

      一、什么是高可用

      高可用(High Availability),簡(jiǎn)稱HA,是通過(guò)專門設(shè)計(jì)來(lái)減少不可用時(shí)間并保持其服務(wù)高度可用性的一個(gè)系統(tǒng)。它能監(jiān)測(cè)與排除軟件故障、備份和數(shù)據(jù)保護(hù)、監(jiān)視各站點(diǎn)運(yùn)行情況,并隨時(shí)或定時(shí)報(bào)告,主動(dòng)采用必要的控制手段、實(shí)現(xiàn)錯(cuò)誤隔離、切換的主備份服務(wù)器間的服務(wù)。其核心體現(xiàn)在配置多臺(tái)服務(wù)器發(fā)生故障后,能快速的自動(dòng)切換。

      二、hadoop集群高可用的應(yīng)用背景

      hadoop集群一般包括一個(gè)NameNode和三個(gè)DateNode節(jié)點(diǎn),由FSNameSystem負(fù)責(zé)管理可靠性低的內(nèi)存中的數(shù)據(jù)。因fsimage持久化操作只在edits中更新,當(dāng)客戶端操作時(shí),變化的元數(shù)據(jù)僅在日志里面記錄過(guò)程,只有操作成功后,才在內(nèi)存中記錄數(shù)據(jù),因而edits中記錄的數(shù)據(jù)與fsimage中的數(shù)據(jù)沒有合并,故SecondaryNameNode每隔一段時(shí)間需將edits文件下載合并后加載到內(nèi)存形成新的元數(shù)據(jù),再把內(nèi)存中的數(shù)據(jù)形成新的fsimage發(fā)送到NameNode節(jié)點(diǎn),來(lái)替換原有的fsimage。若僅有一個(gè)NameNode節(jié)點(diǎn),當(dāng)故障宕機(jī)或升級(jí)軟硬件需重啟時(shí),Hadoop會(huì)暫時(shí)中止服務(wù),hdfs無(wú)法提供服務(wù),導(dǎo)致可用性降低。若hadoop集群有兩個(gè)NameNode節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)發(fā)生故障便可用另一個(gè)節(jié)點(diǎn)來(lái)代替,就可以解決無(wú)法持續(xù)提供服務(wù)的問(wèn)題。

      三、Hadoop高可用的配置(以搭建3個(gè)節(jié)點(diǎn)組成的Hadoop高可用模式集群為例)

      1、高可用群集規(guī)劃。分析Hadoop HA架構(gòu),集群由3臺(tái)主機(jī)組成,先準(zhǔn)備三臺(tái)已配好ZooKeeper組件的虛擬機(jī),其參數(shù)如表1:

      2、安裝Hadoop

      執(zhí)行/softs stud tar - zxvf hadoop-2.7.3.tar.gz -c/usr/local將Hadoop安裝包解壓到安裝目錄,更名為/usr/local/Hadoop,修改目錄權(quán)限。在/usr/local/Hadoop目錄下創(chuàng)建tmp子目錄。

      執(zhí)行vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml,編輯hdfs-site.xml文件,共16個(gè)屬性和值。

      執(zhí)行vi /usr/local/hadoop/etc/hadoop/core-site.xml,編輯core-site.xml文件,共3個(gè)屬性和值。

      執(zhí)行vi/usr/local/hadoop/etc/hadoop/mapred-site.xml,編輯mapred-site.xml文件,共3個(gè)屬性和值。在編輯mapred-site.xml文件時(shí),先由模板mapred-site.xml.template復(fù)制生成mapred-site.xml。

      執(zhí)行vi /usr/local/hadoop/etc/hadoop/yarn-site.xml,編輯yarn-site.xml文件,共8個(gè)屬性和值。

      執(zhí)行vi /usr/local/hadoop/etc/hadoop/slaves,編輯slaves文件。其中虛擬機(jī)master1、master2、slave是DataNode節(jié)點(diǎn)。

      3、設(shè)置JAVA_HOME

      在/usr/local/hadoop/etc/hadoop下的hadoop-env.sh、yarn-env.sh、mapred-env.sh三個(gè)配置文件中設(shè)置JAVA_HOME,增加語(yǔ)句:export JAVA_HOME=/usr/local/jdk,如果存在JAVA_HOME配置語(yǔ)句,注釋后再增加。

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

      用vi .bashrc命令編輯.bashrc文件,文件內(nèi)容如圖1所示:

      5、加載環(huán)境變量

      用source .bashrc命令使設(shè)置的環(huán)境變量生效,在master1虛擬機(jī)上用hadoop version命令測(cè)試。

      6、目錄打包、復(fù)制分發(fā)、解包

      將/usr/local/hadoop目錄打包,使用scp命令分發(fā)到master2、slave并解包到/usr/local目錄。分別在master2和slave上執(zhí)行。如圖2所示:

      7、分發(fā)加載.bashrc文件

      將master1上的~/.bashrc文件分發(fā)到master2、slave,并加載。在master2和slave上執(zhí)行。

      8、初始化

      (1)啟動(dòng)ZooKeeper組件

      分別在三臺(tái)虛擬機(jī)上用zkServer.sh start命令依次啟動(dòng)ZooKeeper組件,檢查ZooKeeper的角色:一個(gè)leader和兩個(gè)follower。

      (2)啟動(dòng)所有節(jié)點(diǎn)的journalnode進(jìn)程

      啟動(dòng)后,三臺(tái)虛擬機(jī)進(jìn)程都包括:journalNode、quorumPeerMain兩個(gè)進(jìn)程。

      (3)在master1上執(zhí)行格式化命令

      在master1上格式化~$ hdfs namenode - format,因兩個(gè)NameNode管理同一個(gè)元數(shù)據(jù),所以僅需在一個(gè)NameNode上格式化。

      (4)啟動(dòng)master1虛擬機(jī)上的NameNode進(jìn)程

      啟動(dòng)后,master1包括NameNode、journalNode、quorumPeerMain三個(gè)進(jìn)程。

      (5)在master2上同步master1上的元數(shù)據(jù)

      在master2上執(zhí)行~$ hdfs namenode -bootstrapStandby,圖4所示信息表示同步成功。

      (6)停止master1的NameNode進(jìn)程

      在master1上執(zhí)行~$ hadoop -daemon.sh stop namenode stopping namenode即可停止。

      (7)同時(shí)開啟DataNode進(jìn)程

      執(zhí)行master1的~$ hadoop -daemon.sh start datanode,即同時(shí)開啟所有主機(jī)上的DataNode進(jìn)程。

      (8)初始化zkfc監(jiān)聽

      執(zhí)行master1上~$ hdfszkfc - formatZK,進(jìn)入ZooKeeper客戶端,用ls命令顯示如圖5所示的hadoop-ha節(jié)點(diǎn)。

      (9)在兩臺(tái)主機(jī)上單步啟動(dòng)zkfc

      在master1和master2執(zhí)行~$ hadoop -daemon.sh start zkfc,單步啟動(dòng)zkfc。

      (10)在兩臺(tái)主機(jī)上單步啟動(dòng)NameNode

      分別在master1和master2執(zhí)行~$ hadoop -daemon.sh start namenode,單步啟動(dòng)NameNode。

      (11)在master1上啟動(dòng)yarn

      在master1上執(zhí)行~$ start -yarn.sh,但只啟動(dòng)了如圖6所示的一個(gè)resourcemanager,所以執(zhí)行~$ yarn --daemon.sh start resourcemanager單獨(dú)動(dòng)master2的進(jìn)程。

      (8)檢查三臺(tái)虛擬機(jī)進(jìn)程,如圖7所示即完成了高可用的設(shè)置。

      9、Hadoop高可用的日常啟動(dòng)

      按ZooKeeper->所有節(jié)點(diǎn)的journalnode服務(wù)->所有節(jié)點(diǎn)的datanode服務(wù)->分別啟動(dòng)master1、master2上ZKFC監(jiān)聽器->分別啟動(dòng)master1、master2上namenode服務(wù)->啟動(dòng)master1所有節(jié)點(diǎn)的yarn服務(wù)->單獨(dú)啟動(dòng)master2的resourcemanager進(jìn)程順序能正常啟動(dòng),說(shuō)明Hadoop高可用搭建完成。

      10、關(guān)閉高可用集群。

      執(zhí)行master1的stop-all.sh后,如果master2上的resourcemanager進(jìn)程無(wú)法停止,需在master2上手工停止;master1和master2上的JournalNode進(jìn)程需單獨(dú)停止。

      11、查看高可用狀態(tài)

      分別用瀏覽器打開master1、master2的50070端口,在Web界面可以看到兩個(gè)主機(jī)的高可用狀態(tài),如圖8 所示。

      12、測(cè)試Hadoop高可用

      在Web界面看到兩個(gè)NameNode節(jié)點(diǎn),一個(gè)處于激活(active)狀態(tài),一個(gè)處于備用(standby)狀態(tài)。手工停止處于激活狀態(tài)節(jié)點(diǎn)(master2)的namenode進(jìn)程,觀察處于備用狀態(tài)的節(jié)點(diǎn)(master1)是否能自動(dòng)切換到激活狀態(tài)。

      (1)手工停止master2虛擬機(jī)上namenode進(jìn)程. 如圖9所示:

      (2)用瀏覽器查看master1和master2的50070端口。master1節(jié)點(diǎn)已經(jīng)切換到active狀態(tài),master2節(jié)點(diǎn)則因?yàn)橥V沽薾amenode進(jìn)程而無(wú)法訪問(wèn)。至此,Hadoop高可用配置成功。如圖10、圖11所示:

      Hadoop高可用模式對(duì)硬件要求比較高,要求宿主機(jī)至少8G內(nèi)存,才能開出3臺(tái)1G內(nèi)存的ubuntu虛擬機(jī)。建議創(chuàng)建5臺(tái)虛擬機(jī),將NameNode和DataNode分開到不同虛擬機(jī)中,搭建Hadoop高可用的虛擬機(jī)或服務(wù)器使用奇數(shù)臺(tái)數(shù)。

      Hadoop高可用的配置是一個(gè)比較復(fù)雜的過(guò)程,高可用性能能否在系統(tǒng)因故障停機(jī)時(shí)啟用,關(guān)鍵在于搭建過(guò)程中配置是否正確。在實(shí)際搭建過(guò)程,出現(xiàn)缺失進(jìn)程的情況,一般是配置出錯(cuò)使一些進(jìn)程無(wú)法正常啟動(dòng)。所以在搭建過(guò)程要注意一些操作技巧避免出錯(cuò):修改配置文件后,需重新格式化hdfs和zkfc。在格式化hdfs前,先刪除tmp目錄下所有內(nèi)容;格式化zkfc前,需進(jìn)入ZooKeeper客戶端,刪除hadoop-ha和yarn-leader-election節(jié)點(diǎn)。另外特別注意配置文件hdfs-core.xml中的dfs.namenode.shared.edits.dir值的設(shè)置,需設(shè)置為不運(yùn)行namenode進(jìn)程的主機(jī)。

      參考文獻(xiàn):

      [1]湯愈韜.Hadoop集群的高可用-HA[EB/OL].https://blog.csdn.net/qq_38200548/article/details/84790353.2018-07-05

      [2]燈火闌珊.大數(shù)據(jù)之Hadoop HDFS-HA架構(gòu)[EB/OL].https://zhuanlan.zhihu.com/p/82190205.2019-09-11

      課題項(xiàng)目:2020年湖北省職教學(xué)會(huì)課題,課題名稱:基于OBE理念課程體系建設(shè)的內(nèi)在邏輯及實(shí)踐路徑研究-以大數(shù)據(jù)技術(shù)與應(yīng)用專業(yè)為例,課題編號(hào): ZJGA202022

      作者簡(jiǎn)介:

      劉慶生(1971-),性別:男,民族:漢,籍貫:湖北咸寧,職稱:教授,本科,研究方向:大數(shù)據(jù)、人工智能

      陳位妮(1974-),性別:女,民族:漢,籍貫:湖南常德,職稱:教授,碩士,研究方向:大數(shù)據(jù)、計(jì)算機(jī)應(yīng)用、職業(yè)教育

      猜你喜歡
      配置服務(wù)
      服務(wù)在身邊 健康每一天
      服務(wù)在身邊 健康每一天
      服務(wù)在身邊 健康每一天
      服務(wù)在身邊 健康每一天
      服務(wù)在身邊 健康每一天
      招行30年:從“滿意服務(wù)”到“感動(dòng)服務(wù)”
      商周刊(2017年9期)2017-08-22 02:57:56
      簡(jiǎn)析電力系統(tǒng)繼電保護(hù)技術(shù)及配置應(yīng)用
      一種智能家居系統(tǒng)自學(xué)習(xí)免配置方法
      世界主要國(guó)家軍民融合式發(fā)展財(cái)力資源配置的啟示
      商情(2016年39期)2016-11-21 10:03:22
      論高校網(wǎng)絡(luò)防火墻的配置與管理
      昌黎县| 夏津县| 伊宁县| 乐亭县| 巴彦县| 东丽区| 浠水县| 旬阳县| 礼泉县| 城固县| 和静县| 斗六市| 太原市| 东阿县| 洛宁县| 清新县| 北碚区| 阳春市| 鹤山市| 新乡县| 广饶县| 射阳县| 永善县| 康马县| 合山市| 尉氏县| 铁岭市| 灵武市| 濮阳市| 通化市| 靖西县| 龙海市| 温宿县| 蓬莱市| 阳东县| 江孜县| 拜泉县| 寿光市| 通海县| 盐山县| 崇左市|