最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

hadoop1.0高可靠性(HA)安裝與總結(jié)

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 12:59:15
文檔

hadoop1.0高可靠性(HA)安裝與總結(jié)

hadoop1.0高可靠性(HA)安裝與總結(jié):繼上次安裝完Kerberos安全認(rèn)證后,現(xiàn)在我在這基礎(chǔ)上,又給CDH加上了HA(high availability),也就是高可靠性,具體來講就是雙NameNode,雙Jobtracker(我還是在MRv1模式下),有了HA后,這下集群的健壯性就能夠得到很好的保證了。 我還是按照官方文檔來操作
推薦度:
導(dǎo)讀hadoop1.0高可靠性(HA)安裝與總結(jié):繼上次安裝完Kerberos安全認(rèn)證后,現(xiàn)在我在這基礎(chǔ)上,又給CDH加上了HA(high availability),也就是高可靠性,具體來講就是雙NameNode,雙Jobtracker(我還是在MRv1模式下),有了HA后,這下集群的健壯性就能夠得到很好的保證了。 我還是按照官方文檔來操作

繼上次安裝完Kerberos安全認(rèn)證后,現(xiàn)在我在這基礎(chǔ)上,又給CDH加上了HA(high availability),也就是高可靠性,具體來講就是雙NameNode,雙Jobtracker(我還是在MRv1模式下),有了HA后,這下集群的健壯性就能夠得到很好的保證了。 我還是按照官方文檔來操作

繼上次安裝完Kerberos安全認(rèn)證后,現(xiàn)在我在這基礎(chǔ)上,又給CDH加上了HA(high availability),也就是高可靠性,具體來講就是雙NameNode,雙Jobtracker(我還是在MRv1模式下),有了HA后,這下集群的健壯性就能夠得到很好的保證了。

我還是按照官方文檔來操作的,有了上次的經(jīng)驗(yàn),建議大家在具體操作實(shí)施前,先快速閱讀一遍,做到心中有數(shù),我還閱讀了Apache官方的說明,也不用怎么詳細(xì),大概知道怎么回事就行了。

首先說明一點(diǎn)的就是,CDH5 只支持Quorum Journal Manager(QJM)模式下的HA,不支持NFS模式的,這點(diǎn)和Apache官方的不一樣,大家要留意下。

下面說說我遇到的坑:

  • 按照software_config上面說的配置一步步來,如果要實(shí)現(xiàn)自動(dòng)的Failover,需要安裝zookeeper,安裝也很簡單,從http://archive.cloudera.com/cdh5/cdh/5/下載zookeeper-3.4.5-cdh5.0.2.tar.gz,然后按照zookeeper的安裝說明安裝即可,官方推薦zookeeper的集群數(shù)目為奇數(shù),推薦值為3,我這樣也配置了3臺,zookeeper服務(wù)在在啟動(dòng)時(shí)會向集群內(nèi)其他服務(wù)器發(fā)送認(rèn)證數(shù)據(jù),但是在第一次啟動(dòng)時(shí)難免有個(gè)先后順序,所以先啟動(dòng)的節(jié)點(diǎn)向還沒有啟動(dòng)的服務(wù)器發(fā)生數(shù)據(jù)時(shí)會報(bào)錯(cuò),類型下面的錯(cuò)誤信息
  • 2014-07-17 14:49:06,151 [myid:1] - INFO [WorkerReceiver[myid=1]:FastLeaderElection@542] - Notification: 1 (n.leader), 0x100000106 (n.zxid), 0x1 (n.round), LOOKING (n.state), 1 (n.sid), 0x2 (n.peerEPoch), LOOKING (my state)2014-07-17 14:49:06,153 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@368] - Cannot open channel to 2 at election address node1/10.4.13.63:3888java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:354) at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:327) at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:393) at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:365) at java.lang.Thread.run(Thread.java:745)

    這個(gè)是正常的,等3臺全部啟動(dòng)后,有如下日志就證明沒問題了

    2014-07-17 11:26:44,425 [myid:3] - INFO [WorkerReceiver[myid=3]:FastLeaderElection@542] - Notification: 3 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 3 (n.sid), 0x0 (n.peerEPoch), LOOKING (my state)2014-07-17 11:26:44,426 [myid:3] - INFO [WorkerReceiver[myid=3]:FastLeaderElection@542] - Notification: 2 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEPoch), LOOKING (my state)
  • 在配置Securing access to ZooKeeper這步時(shí),我也能得到像官方教程上說的
  • digest:hdfs-zkfcs:vlUvLnd8MlacsE80rDuu6ONESbM=:rwcda

    與這個(gè)類似的信息,但是在執(zhí)行zkfc -formatZK時(shí),老是說的我得到的字符串(’->’ 后面的那部分)不對,我也不知道為什么,不知道是不是哪步少了什么,因?yàn)閦ookeeper集群在內(nèi)網(wǎng),集群內(nèi)安全性一般不用考慮,我這里就直接忽略了這步,以后機(jī)會再找原因。

  • 在配置Fencing Configuration時(shí),我用了sshfence的方式,這里需要配置ssh的密鑰,我直接把hdfs用戶的密鑰路徑給上,后來在我驗(yàn)證雙Namenode是否生效(通過kill掉active的NN,看看standby的NN能不能變?yōu)閍ctive的NN)發(fā)現(xiàn)不對,老是報(bào)錯(cuò),連接不上另一個(gè)Namenode,后來發(fā)現(xiàn)需要用root的密鑰,但是hdfs用戶又不能讀取root的密鑰,所以我這里直接把root的.ssh文件下的文件全copy到hdfs用戶的$HOME下,并設(shè)置為hdfs為其owner(我的root用戶在集群內(nèi)也是可以免密碼登錄的),這樣就沒問題了。

  • 需要說明的是,在開啟namenode之前,必須先開啟journalnode,因?yàn)閚amenode開啟時(shí)會去連接journalnode

  • 然后就是開啟雙Namenode的步驟了,下面記錄一些需要用到的命令

  • sudo -u hdfs bin/hdfs zkfc -formatZKsudo -u hdfs sbin/hadoop-daemon.sh start journalnode #開啟journalnode進(jìn)程sudo -u hdfs sbin/hadoop-daemon.sh start zkfc #開啟automatic failover進(jìn)程sudo -u hdfs bin/hdfs namenode -initializeSharedEdits #把一個(gè)non-HA的NameNode轉(zhuǎn)為HA時(shí)用到sudo -u hdfs bin/hdfs namenode -bootstrapStandby sudo -u hdfs sbin/hadoop-daemon.sh start namenode#上面命這兩個(gè)命令在運(yùn)行第二個(gè)Namenode服務(wù)器上執(zhí)行,必須先執(zhí)行-bootstrapStandby 這行命令再開啟namenode #下面這些命令之前,需要以hdfs用戶用kinit拿到TGT,否則會報(bào)錯(cuò)sudo -u hdfs bin/hdfs haadmin -getServiceState nn1 #查看nn1是active的還是standby的
  • 按照jobtracker的HA官方配置進(jìn)行配置后,使用
  • sudo -u mapred sbin/hadoop-daemon.sh start jobtrackerha

    命令開啟jobtrackerha

  • 通過
  • #運(yùn)行下面這些命令之前,要先以mapred用戶用kinit拿到TGT,否則會報(bào)錯(cuò)sudo -u mapred bin/hadoop mrhaadmin -getServiceState jt1

    查看jt1是active的還是standby的

  • 最后一個(gè),還是關(guān)于HDFS的權(quán)限問題,因?yàn)閙apreduce在執(zhí)行任務(wù)時(shí)會向HDFS上寫一些臨時(shí)文件,如果權(quán)限不對,肯定就會報(bào)錯(cuò)了,不過這種錯(cuò)誤也很好該,根據(jù)錯(cuò)誤信息就能知道那個(gè)目錄權(quán)限不對,然后改過來就行了,我這里進(jìn)行下總結(jié):

  • 根據(jù)官方的教程配置教程,配置了如下選項(xiàng):

  •  mapred.job.tracker.persist.jobstatus.dir /jobtracker/jobsInfo

    所以需要在HDFS上創(chuàng)建相應(yīng)目錄,并修改其owner為mapred

  • 其次是staging目錄,如果沒有配置,其默認(rèn)值從默認(rèn)配置可以看到mapreduce.jobtracker.staging.root.dir的值為${hadoop.tmp.dir}/mapred/staging,而${hadoop.tmp.dir}的值從這里可以看到值默認(rèn)是/tmp/hadoop-${user.name},有因?yàn)槲覀兪褂胢apred用戶來執(zhí)行tasktracker進(jìn)行的,所以需要?jiǎng)?chuàng)建/tmp/hadoop-mapred/mapred/staging文件夾,并且其owner為mapred,權(quán)限為1777,可以用下面的命令來實(shí)現(xiàn):
  • sudo -u hdfs bin/hdfs dfs -mkdir -p /tmp/hadoop-mapred/mapred/stagingsudo -u hdfs bin/hdfs dfs -chown mapred /tmp/hadoop-mapred/mapred/stagingsudo -u hdfs bin/hdfs dfs -chmod 1777 /tmp/hadoop-mapred/mapred/staging

    此外,還需要配置mapreduce.jobtracker.system.dir指定的文件,默認(rèn)為${hadoop.tmp.dir}/mapred/system,所以還需要執(zhí)行下面的命令:

    sudo -u hdfs bin/hdfs dfs -mkdir -p /tmp/hadoop-mapred/mapred/systemsudo -u hdfs bin/hdfs dfs -chown mapred /tmp/hadoop-mapred/mapred/system

    這個(gè)目錄只由mapred用戶來寫入,所以不用再修改其權(quán)限(的755即可)。

    總結(jié):這次配置HA的整個(gè)過程還是比較順利的,除了煩人的各種權(quán)限問題,我覺得這也是我沒有弄明白hadoop各個(gè)進(jìn)程是如何工作導(dǎo)致的,通過支持配置HA,算是對job的運(yùn)行又有了更深的的認(rèn)識。

    繼上次安裝完Kerberos安全認(rèn)證后,現(xiàn)在我在這基礎(chǔ)上,又給CDH加上了HA(high availability),也就是高可靠性,具體來講就是雙NameNode,雙Jobtracker(我還是在MRv1模式下),有了HA后,這下集群的健壯性就能夠得到很好的保證了。

    我還是按照官方文檔來操作的,有了上次的經(jīng)驗(yàn),建議大家在具體操作實(shí)施前,先快速閱讀一遍,做到心中有數(shù),我還閱讀了Apache官方的說明,也不用怎么詳細(xì),大概知道怎么回事就行了。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    hadoop1.0高可靠性(HA)安裝與總結(jié)

    hadoop1.0高可靠性(HA)安裝與總結(jié):繼上次安裝完Kerberos安全認(rèn)證后,現(xiàn)在我在這基礎(chǔ)上,又給CDH加上了HA(high availability),也就是高可靠性,具體來講就是雙NameNode,雙Jobtracker(我還是在MRv1模式下),有了HA后,這下集群的健壯性就能夠得到很好的保證了。 我還是按照官方文檔來操作
    推薦度:
    標(biāo)簽: 安裝 上次 ha
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top