溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop HA高可用集群搭建(詳細)

發(fā)布時間:2020-08-02 01:16:24 來源:網絡 閱讀:1469 作者:wx5da03a3bd2999 欄目:大數(shù)據(jù)

一、準備物理集群。
1、物理集群搭建方式。
采用搭建3臺虛擬機的方式來部署3個節(jié)點的物理集群。
2、虛擬機準備。
準備一個已近建好的虛擬機進行克隆。(建議為沒進行過任何操作的)
在要選擇克隆的虛擬機上右擊鼠標,管理,克隆。
在彈出對話框中進行以下操作。
(1)、下一步。
Hadoop HA高可用集群搭建(詳細)
(2)、選擇虛擬機中的當前狀態(tài),下一步。
Hadoop HA高可用集群搭建(詳細)
(3)、選擇創(chuàng)建完整克隆,下一步。
Hadoop HA高可用集群搭建(詳細)
(4)、輸入虛擬機名稱,下一步。
Hadoop HA高可用集群搭建(詳細)
(5)、克隆完成。
Hadoop HA高可用集群搭建(詳細)
(6)、按照上述步驟再創(chuàng)建一個虛擬機名稱為slave02的。
3、虛擬機網絡配置。
由于slave01和slave02虛擬機是克隆的,所以要修改這2臺虛擬機的網卡信息。
slave01修改如下:
(1)、輸入命令:vi /etc/udev/rules.d/70-persistent-net.rules
Hadoop HA高可用集群搭建(詳細)
(2)、輸入命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0
Hadoop HA高可用集群搭建(詳細)
(3)、修改主機名,輸入命令:vi /etc/sysconfig/network
Hadoop HA高可用集群搭建(詳細)
(4)重啟系統(tǒng),命令:reboot
slave02修改同slave01的,注意:IPADDR不一樣,主機名不一樣?。?!
最后重啟所有節(jié)點網卡(service network restart),使之生效,保證每臺虛擬機能實現(xiàn)和外網連同?。?!
還需禁用SELINUX:vi /etc/selinux/config
Hadoop HA高可用集群搭建(詳細)
> 二、集群規(guī)劃。
1、主機規(guī)劃:
master00/192.168.169.159:
Namenode,Datanode,ResourceManager,Journalnode,Zookeeper
slave01/192.168.169.160:
Namenode,Datanode,ResourceManager,Journalnode,Zookeeper
slave02/192.168.169.161:
Datanode,Journalnode,Zookeeper
2、軟件規(guī)劃:
JDK1.8
CentOS6.5
Zookeeper3.4.6
Hadoop2.7.3
3、用戶規(guī)劃:
每個節(jié)點的hadoop用戶組和用戶需要自己創(chuàng)建:
master00為hadoop:hadoop
slave01為hadoop:hadoop
slave02為hadoop:hadoop
4、目錄規(guī)劃:
軟件存放目錄:/home/hadoop/app/
數(shù)據(jù)日志目錄:/home/hadoop/data/
> 三、安裝前準備。
1、同步當前系統(tǒng)時間和日期與NTP 一致:
(1)、在線安裝ntp:yum install ntp
Hadoop HA高可用集群搭建(詳細)
(2)、執(zhí)行同步日期時間:ntpdate pool.ntp.org
Hadoop HA高可用集群搭建(詳細)
(3)、查看當前系統(tǒng)時間:date
Hadoop HA高可用集群搭建(詳細)
注意:以上命令需要在每一個節(jié)點執(zhí)行?。。?br/>2、hosts文件檢查:
所有節(jié)點都需配置以下信息:vi /etc/hosts
Hadoop HA高可用集群搭建(詳細)
3、禁用防火墻:chkconfig iptables off(此為永久關閉,執(zhí)行后需重啟)
檢查:service iptables status
Hadoop HA高可用集群搭建(詳細)
4、配置SSH免密碼通信
(1)、配置SSH:以下為master00為例配置(slave01和slave02也要執(zhí)行以下操作)
Hadoop HA高可用集群搭建(詳細)
(2)、將所有節(jié)點中的id_rsa.pub復制到master00中的authorized_keys文件中
Hadoop HA高可用集群搭建(詳細)
(3)、將master00中的authorized_keys文件發(fā)到所有節(jié)點上面。
slave01:
Hadoop HA高可用集群搭建(詳細)
slave02:
Hadoop HA高可用集群搭建(詳細)
通過SSH互相訪問,若能通過無密碼訪問,即SSH配置成功?。?!
5、腳本的使用:方便Hadoop分布式集群搭建
(1)、在master00節(jié)點上創(chuàng)建/home/hadoop/tools目錄
Hadoop HA高可用集群搭建(詳細)
(2)、將腳本上傳到此目錄下(可以用Xftp工具上傳)
Hadoop HA高可用集群搭建(詳細)

deploy.conf腳本:https://blog.51cto.com/14572091/2442729
deploy.sh腳本:https://blog.51cto.com/14572091/2442731
runRemoteCmd.sh腳本:https://blog.51cto.com/14572091/2442728
(3)、為腳本添加權限
[hadoop@master00 tools]$ chmod u+x deploy.sh
[hadoop@master00 tools]$ chmod u+x runRemoteCmd.sh
(4)、配置PATH
Hadoop HA高可用集群搭建(詳細)
(5)、在master00節(jié)點上,通過腳本,一鍵創(chuàng)建所有節(jié)點的軟件安裝目錄
runRemoteCmd.sh "mkdir /home/hadoop/app" all
Hadoop HA高可用集群搭建(詳細)
注意:如果主機名和我的不一樣,需要修改deploy.conf配置文件
6、hadoop相關軟件安裝
(1)、JDK安裝,上傳JDK到app目錄下,進行解壓
Hadoop HA高可用集群搭建(詳細)
(2),修改文件名稱為jdk
Hadoop HA高可用集群搭建(詳細)
(3)、添加JDK環(huán)境變量:vi /etc/profile
Hadoop HA高可用集群搭建(詳細)
使配置文件生效:source /etc/profile
(4)、查看JDK是否安裝成功 : java -version
Hadoop HA高可用集群搭建(詳細)
出現(xiàn)以上結果說明master00節(jié)點的JDK安裝成功。
(5)、將master00節(jié)點上的JDK安裝包復制到其他節(jié)點上:deploy.sh jdk /home/hadoop/app/ slave
然后在slave01和slave02節(jié)點上重復master00節(jié)點上的JDK配置,并且檢查是否成功!
7、Zookeeper安裝。
(1)、上傳zookeeper到app目錄并且解壓。
Hadoop HA高可用集群搭建(詳細)
(2)、重命名為zookeeper
Hadoop HA高可用集群搭建(詳細)
(3)、修改zookeeper中的配置文件
Hadoop HA高可用集群搭建(詳細)
(4)、通過腳本deploy.sh將zookeeper安裝目錄復制到其他節(jié)點:deploy.sh zookeeper /home/hadoop/app/ slave
(5)、通過腳本runRemoteCmd.sh在所有節(jié)點上創(chuàng)建相關目錄:
runRemoteCmd.sh "mkdir -p /home/hadoop/data/zookeeper/zkdata" all
runRemoteCmd.sh "mkdir -p /home/hadoop/data/zookeeper/zkdatalog" all
Hadoop HA高可用集群搭建(詳細)

(6)、在3個節(jié)點上分別進入zkdata目錄下,創(chuàng)建文件myid,內容分別填寫為:1, 2, 3,如下圖:
master00:
Hadoop HA高可用集群搭建(詳細)
slave01:
Hadoop HA高可用集群搭建(詳細)
slave02:
Hadoop HA高可用集群搭建(詳細)
(7)、配置zookeeper環(huán)境變量
Hadoop HA高可用集群搭建(詳細)
使配置生效:source /etc/profile
注意:每個節(jié)點都要進行配置?。?!
(8)、在master00節(jié)點上啟動zookeeper
Hadoop HA高可用集群搭建(詳細)
(9)、使用runRemoteCmd.sh腳本,啟動所有節(jié)點上的zookeeper:
runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh start" zookeeper
Hadoop HA高可用集群搭建(詳細)
(10)、查看所有節(jié)點上的QuorumPeerMain進程是否成功:
unRemoteCmd.sh "jps" zookeeper
Hadoop HA高可用集群搭建(詳細)
(11)、查看所有節(jié)點上的zookeeper狀態(tài)
runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh status" zookeeper
Hadoop HA高可用集群搭建(詳細)
如果一個節(jié)點為leader,其他節(jié)點為follower,說明zookeeper安裝成功。
四、Hadoop集群搭建。
1、hadoop軟件安裝
(1)上傳并解壓。
Hadoop HA高可用集群搭建(詳細)
(2)、重命名為hadoop
Hadoop HA高可用集群搭建(詳細)
2、hadoop配置及使用HDFS
(1)修改JAVA_HOME的安裝目錄
Hadoop HA高可用集群搭建(詳細)
Hadoop HA高可用集群搭建(詳細)
(2)、配置core-site.xml文件,以下是我的配置,具體配置請參考hadoop官方文檔
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://cluster1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>master00:2181,slave01:2181,slave02:2181</value>
</property>
</configuration>
(3)、配置 hdfs-site.xml文件,以下是我的配置,具體配置請參考hadoop官方文檔
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>cluster1</value>
</property>
<property>
<name>dfs.ha.namenodes.cluster1</name>
<value>master00,slave01</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.master00</name>
<value>master00:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.master00</name>
<value>master00:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.slave01</name>
<value>slave01:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.slave01</name>
<value>slave01:50070</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master00:8485;slave01:8485;slave02:8485/cluster1</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.cluster1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/data/journaldata/jn</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>shell(/bin/true)</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>10000</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property>
</configuration>
(4)、配置slaves文件:主要配置DataNode節(jié)點所在的主機名。
Hadoop HA高可用集群搭建(詳細)
(5)、向所有節(jié)點分發(fā)hadoop安裝包
deploy.sh hadoop /home/hadoop/app/ slave
(6)配置hadoop環(huán)境變量
Hadoop HA高可用集群搭建(詳細)
使配置生效:source /etc/profile
注意:每個節(jié)點都要進行配置!?。?/p>

(7)、啟動HDFS
1)、啟動所有節(jié)點上的zookeeper進程
Hadoop HA高可用集群搭建(詳細)
2)、啟動所有節(jié)點上的Journalnode進程
runRemoteCmd.sh "/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh start journalnode" all
Hadoop HA高可用集群搭建(詳細)
3)、首先在主節(jié)點(如master00)上格式化
bin/hdfs namenode –format
Hadoop HA高可用集群搭建(詳細)
bin/hdfs zkfc –formatZK
Hadoop HA高可用集群搭建(詳細)
bin/hdfs namenode
4)、與此同時,需要在備節(jié)點(如slave01)上執(zhí)行同步數(shù)據(jù)
bin/hdfs namenode –bootstrapStandby
Hadoop HA高可用集群搭建(詳細)
5)、slave01同步數(shù)據(jù)完成后,在master00節(jié)點上按下Ctrl+C鍵來結束namenode進程,然后關閉所有節(jié)點上的journalnode進程
runRemoteCmd.sh "/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh stop journalnode" all
6)、一鍵啟動HDFS 相關所有進程
sbin/start-dfs.sh
7)、驗證HDFS是否安裝成功
在瀏覽器輸入網址:http://master00:50070,查看Web界面
Hadoop HA高可用集群搭建(詳細)
在瀏覽器輸入網址:http://slave01:50070,查看Web界面
Hadoop HA高可用集群搭建(詳細)
8)、檢測HDFS是否可用
hadoop fs -mkdir /test
hadoop fs -put test.txt /test
hadoop fs -ls /test
Hadoop HA高可用集群搭建(詳細)
3、Hadoop配置使用YARN
(1)、配置mapred-site.xml文件,以下是我的配置,具體配置請參考hadoop官方文檔
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(2)、配置yarn-site.xml 文件,以下是我的配置,具體配置請參考hadoop官方文檔
<configuration>
<property>
<name>yarn.resourcemanager.connect.retry-interval.ms</name>
<value>2000</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn-rm-cluster</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>master00</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>slave01</value>
</property>
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.zk.state-store.address</name>
<value>master00:2181,slave01:2181,slave02:2181</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>master00:2181,slave01:2181,slave02:2181</value>
</property>
<property>
<name>yarn.resourcemanager.address.rm1</name>
<value>master00:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm1</name>
<value>master00:8034</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>master00:8088</value>
</property>
<property>
<name>yarn.resourcemanager.address.rm2</name>
<value>slave01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm2</name>
<value>slave01:8034</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>slave01:8088</value>
</property>
<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>
(3)、啟動YARN
1)、在master00上執(zhí)行啟動YARN命令
sbin/start-yarn.sh
2)、在slave01上執(zhí)行啟動YARN命令
sbin/yarn-daemon.sh start resourcemanager
3)、在瀏覽器打開Web界面查看
http://master00:8088
Hadoop HA高可用集群搭建(詳細)
http://slave01:8088
Hadoop HA高可用集群搭建(詳細)
4)、檢查ResourceManager狀態(tài)
bin/yarn rmadmin -getServiceState rm1
bin/yarn rmadmin -getServiceState rm2
5)、運行WordCount測試
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test/test.txt /test/out/
查看作業(yè)執(zhí)行狀態(tài)
Hadoop HA高可用集群搭建(詳細)
如果無異常,說明YARN安裝成功
至此Hadoop分布式集群搭建成功?。?!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI