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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Hadoop集群搭建(五:Hadoop HA集群模式的安装)

發布時間:2023/11/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop集群搭建(五:Hadoop HA集群模式的安装) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗

目的

要求

目的:

1、Hadoop的高可用完全分布模式的安裝和驗證

要求:

  1. 完成Hadoop的高可用完全分布模式的安裝;
  2. Hadoop的相關服務進程能夠正常的啟動;
  3. HDFS能夠正常的使用;
  4. MapReduce示例程序能夠正常運行;

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

  1. 五臺獨立PC式虛擬機。
  2. 主機之間有有效的網絡連接
  3. 每臺主機內存2G以上,磁盤50G。
  4. 所有主機上安裝CentOS7-64位操作系統。
  5. 所有主機已完成網絡屬性配置
  6. 所有主機已安裝JDK
  7. 已完成Zookeeper集群的安裝和部署

?

軟件版本:

??????? 選用Hadoop的2.7.3版本,軟件包名Hadoop-2.7.3.tar.gz

?

集群規劃:

????? ????* Hadoop的高可用完全分布模式中有HDFS的主節點和數據節點、MapReduce的主節點和任務節點、數據同步通信節點、主節點切換控制節點總共6類服務節點,其中HDFS的主節點、MapReduce的主節點、主節點切換控制節點共用相同主機Cluster-01和Cluster-02,HDFS的數據節點、MapReduce的任務節點共用相同主機Cluster-03、Cluster-04,Cluster-05,數據同步通信節點可以使用集群中的任意主機,但因為其存放的是元數據備份,所以一般不與主節點使用相同主機。

*高可用完全分布模式中需要滿足主節點有備用的基本要求, 所以需要兩臺或以上的主機作為主節點,而完全分布模式中需要滿足數據有備份和數據處理能夠分布并行的基本要求,所以需要兩臺或以上的主機作為HDFS的數據節點和MapReduce的任務節點,同時數據同步通信節點工作原理同Zookeeper類似,需要三臺或以上的奇數臺主機,具體規劃如下:

?

主機名

IP地址

服務描述

Cluster-01

192.168.10.111

Hadoop主節點

Hadoop主節點控制切換服務

YARN主節點

Cluster-02

192.168.10.112

Hadoop備用主節點

Hadoop主節點控制切換服務

YARN備用主節點

Cluster-03

192.168.10.113

Hadoop數據服務

Hadoop同同步通信服務

YARN節點管理服務

Cluster-04

192.168.10.114

Hadoop數據服務

Hadoop同同步通信服務

YARN節點管理服務

Cluster-05

192.168.10.115

Hadoop數據服務

Hadoop同同步通信服務

YARN節點管理服務

?

?

實驗內容

步驟一:Hadoop基本安裝配置

注:1、該項的所有操作步驟使用專門用于集群的用戶admin進行;

  1. 此項只在一臺主機操作,然后在下一步驟進行同步安裝與配置;

?

1、創建用于存放Hadoop相關文件的目錄,并進入該目錄,將軟件包解壓;

命令:

???? $mkdir ~/hadoop

???? $cd ~/hadoop

???? $tar -xzf ~/setups/Hadoop-2.7.3.tar.gz

?

2、配置Hadoop相關環境變量;

命令:

???? $vi ~/.bash_prolife

3、使新配置的環境變量立即生效,查看新添加和修改的環境變量是否設置成功,以及環境變量是否正確,驗證Hadoop的安裝配置是否成功;

命令:

???? $source ~/.bash_profile

???? $echo $HADOOP_HOME

???? $echo $PATH

???? $hadoop version

?

步驟二:Zookeeper完全分布模式配置;

注:該項的所有操作步驟使用專門用于集群的用戶admin進行;

?

1、進入Hadoop相關文件的目錄,分別創建Hadoop的臨時文件目錄“tmp”、HDFS的元數據文件目錄“name”、HDFS的數據文件目錄“data”、Journal的邏輯狀態數據目錄“journal”;

2、進入Hadoop的配置文件所在目錄,對配置文件進行修改,找到配置項“JAVA_HOME”所在行,將其改為以下內容:

Export

JAVA_HOME=/home/admin/java/jdk1.8.0_131

命令:

???? $cd ~/Hadoop/Hadoop-2.7.3/etc/Hadoop

???? $vi Hadoop-env.sh

3、對配置文件core-site.xml進行修改,找到標簽“<configuration>”所在位置,在其中添加如下紅色部分的內容:

<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop-ha</value></property><property><name>hadoop.tmp.dir</name><value>/home/admin/hadoop/tmp</value></property><property><name>ha.zookeeper.quorum</name><value>Cluster-01:2181,Cluster-02:2181,Cluster-03:2181,Cluster-04:2181,Cluster-05:2181</value></property></configuration>

4、對配置文件hdfs-site.xml進行修改,找到標簽“<configuration>”所在位置,在其中添加如下紅色部分的內容:

<configuration><property><name>dfs.nameservices</name><value>hadoop-ha</value></property><property><name>dfs.ha.namenodes.hadoop-ha</name><value>name-1,name-2</value></property><property><name>dfs.namenode.rpc-address.hadoop-ha.name-1</name><value>Cluster-01:9000</value></property><property><name>dfs.namenode.http-address.hadoop-ha.name-1</name><value>Cluster-01:50070</value></property><property><name>dfs.namenode.rpc-address.hadoop-ha.name-2</name><value>Cluster-02:9000</value></property><property><name>dfs.namenode.http-address.hadoop-ha.name-2</name><value>Cluster-02:50070</value></property><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://Cluster-03:8485;Cluster-04:8485;Cluster-05:8485/hadoop-ha</value></property><property><name>dfs.journalnode.edits.dir</name><value>/home/admin/hadoop/journal</value></property><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property><property><name>dfs.client.failover.proxy.provider.hadoop-ha</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><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/home/admin/.ssh/id_rsa</value></property><property><name>dfs.ha.fencing.ssh.connect-timeout</name><value>30000</value></property><property><name>dfs.namenode.name.dir</name><value>/home/admin/hadoop/name</value></property><property><name>dfs.datanode.data.dir</name><value>/home/admin/hadoop/data</value></property><property><name>dfs.replication</name><value>3</value></property></configuration>

????

5、由模板文件拷貝生成配置文件“mapred-site.xml”

命令:

???? $cp mapred-site.xml.template mapred-site.xml

???? $vi mapred-site.xml

找到標簽“<configuration>”所在位置,在其中添加如下紅色部分的內容:

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>

6、對配置文件yarn-site.xml進行修改,找到標簽“<configuration>”所在位置,在其中添加如下紅色部分的內容:

<configuration><!-- Site specific YARN congfiguration proerties --><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><property><name>yarn.resourcemanager.cluster-id</name><value>yarn-ha</value></property><property><name>yarn.resourcemanager.ha.rm-ids</name><value>resource-1,resource-2</value></property><property><name>yarn.resourcemanager.hostname.resource-1</name><value>Cluster-01</value></property><property><name>yarn.resourcemanager.hostname.resource-2</name><value>Cluster-02</value></property><property><name>yarn.resourcemanager.zk-address</name><value>Cluster-01:2181,Cluster-02:2181,Cluster-03:2181,Cluster-04:2181,Cluster-05:2181</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>

?

???

???

7、對配置文件yarn-env.sh進行修改,找到配置項“JAVA_HOME”所在行,將其改為以下內容:

Export

JAVA_HOME=/home/admin/java/jdk1.8.0_131

8、對配置文件slaves進行修改,刪除文件中原有的所有內容,然后添加集群中所有數據節點的主機名,每行一個主機的主機名,配置格式如下:

Cluster-03

Cluster-04

Cluster-05

???

步驟三:同步安裝和配置;

注:該項的所有操作不受使用準們用于集群的用戶admin進行。

1、將“Hadoop”目錄和“.bash_profile”文件發給集群中所有主機,發送目標用戶為集群專用用戶admin,發送目標路徑為“/home/admin”,即集群專用用戶admin的家目錄。

2、使新配置的環境變量立即生效,查看新添加和修改的環境變量是否設置成功,以及環境變量是否正確,驗證Hadoop的安裝配置是否成功;

命令:

???? $source ~/.bash_profile

???? $echo $HADOOP_HOME

???? $echo $PATH

???? $hadoop version

步驟四:Hadoop高可用完全分布模式格式化和啟動;

注:注意本節格式化內容不可多次執行

注意格式化步驟

該項的所有操作步驟使用專門用于集群的用戶admin進行;

?

1、在所有同步通信節點的主機執行,啟動同步通信服務,然后使用命令“jps”查看java進程信息,若有名為“journalNode”的進程,則表示同步通信節點啟動成功。

命令:

???? $hadoop-deamon.sh start journalnode

?

2、在主節點使用此命令,對HDFS進行格式化,若格式化過程中沒有報錯則表示格式化成功;

命令:

???? $hadoop namenode -format

3、格式化完成后將“Hadoop”目錄下的“name”目錄發給集群中所有備用主節點的主機,發送目標用戶為集群專用用戶admin,即當前與登錄用戶同名用戶,發送目標路徑為“/home/admin/hadoop”,即集群專用用戶admin家目錄下的Hadoop相關文件的目錄;

命令:

???? $scp -r ~/Hadoop/name admin@Cluster-02:/home/admin/Hadoop

4、在集群中所有主機使用“zkServer.sh status”命令,查看該節點Zookeeper服務當前的狀態,若集群中只有一個“leader”節點,其余的均為“follower”節點,則集群的工作狀態正常;

如果Zookeeper未啟動,則在集群中所有主機使用“zkServer.sh start”命令,啟動Zookeeper服務的腳本;

5、在主節點使用“hdfs zkfc -formatZK”命令,對Hadoop集群在Zookeeper中的主節點切換控制信息進行格式化。

6、在所有同步通信節點的主機,使用“Hadoop-daemon.sh stop journalnode”命令,關閉同步通信服務。

7、在主節點使用“start-all.sh”命令,啟動Hadoop集群;

8、在所有備用主節點的主機,使用“yarn-deamon.sh start resourcemanager”命令,啟動yarn主節點服務;

9、在主節點使用命令“jps”查看Java進程信息,若有名為“NameNode”,"ResourceManager”“DFSZKFailoverController”的三個進程,則表示Hadoop集群的主節點啟動成功。

10、使用命令“ssh 目標主機名或IP地址”遠程登錄到所有備用主節點主機,使用命令“jps”查看Java進程信息,若有名為“NameNode”,"ResourceManager”“DFSZKFailoverController”的三個進程,則表示Hadoop集群的備用主節點啟動成功。

?

步驟五:Hadoop高可用完全分布模式啟動和驗證;

注:該項所有的操作使用專門用于集群的用戶admin進行;

?

1、在Hadoop中創建當前登錄用戶自己的目錄,查看HDFS中的所有文件和目錄的結構;

2、進入Hadoop的示例程序包hadoop-mapreduce-examples-2.7.3.jar所在目錄;

運行使用蒙地卡羅法計算PI的示例程序;

?

出現的問題與解決方案

問題:

  1. Namenode沒有啟動;

解決方案:

  1. 格式化namenode,命令“hdfs namenode -format”;

此時向HDFS拷貝文件發現出現如下錯誤

$hdfs dfs -mkdir -p /home/admin.hadoop

再次運行jps發現,datanode沒有啟動。

?

經過查詢資料發現:

當我們使用hdfs namenode -format格式化namenode時,會在namenode數據文件夾(這個文件夾為自己配置文件hdfs-site.xml中dfs.namenode.name.dir的路徑)中保存一個current/VERSION文件,記錄clusterID,datanode數據文件夾(這個文件夾為自己配置文件中dfs.dataNode.name.dir的路徑)中保存的current/VERSION文件中的clustreID的值是第一次格式化保存的clusterID,這樣,datanode和namenode之間的ID不一致

所以,在格式化之前先刪除 dfs.name.dir指定目錄下的所有文件(注意刪目錄下所有的文件及文件夾而不是刪除該目錄)

?????? 命令:

$hdfs namenode -format

$start-all.sh

$jps

?

知識拓展

1、使用瀏覽器訪問192.168.10.111:8088,查看并管理Hadoop

2、使用瀏覽器訪問192.168.10.111:50070,查看HDFS情況

3、Hadoop是一種分布式系統的基礎構架。

核心是HDFS和MapReduce,hadoop2.0還包括YARN

4、HDFS:Hadoop Distributed FileSystem 分布式文件系統。

//很多時候的數據量超過了單臺機器允許存儲的范圍……故而需要分布式

前身是GFS,谷歌開源的分布式存儲系統。

是一個高容錯(允許錯誤發生)的系統,能檢測應對硬件故障。

適用于低成本的通用硬件(比如樹莓派么)

通過流式數據訪問,提供高吞吐量應用程序的訪問功能。

?

5、異常處理:

因為數量多,所以出故障是常態。

?

【可靠性】存在故障的時候也能較為有效地存儲數據。(名字節點故障,數據節點故障,網絡斷開)

【重新復制】定時會發送“心跳包”檢測節點是否健康,失去聯系標記為死亡狀態,需要重新復制到其他節點。

【數據正確性】校驗數據是否有壞塊(類似于葡萄的校驗?,驗證的校驗碼存儲在HDFS命名空間的隱藏文件中)

【元數據失效】FsImage和Editlog是HDFS的核心數據結構。(損壞就崩盤了)名字節點(NameNode)如果崩了就需要人工的干預了。//第二名字節點不支持直接恢復

?

?

6、目標

?

  1. 數據訪問:適合批量處理而非交互式,重點是數據吞吐量而非反應時間
  2. 大數據:支持大文件,單個文件GB-TB級別
  3. 簡單一致模式:一次寫入,多次讀,一般寫入之后就不再修改了
  4. 主從結構:一個名字節點和很多數據節點,通常一臺機器一個數據節點。
  5. 硬件故障處理:是設計的核心目標之一

總結

以上是生活随笔為你收集整理的Hadoop集群搭建(五:Hadoop HA集群模式的安装)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

歡迎分享!

轉載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:Hadoop集群搭建(五:Hadoop HA集群模式的安装)