一、Hadoop集群安裝前的準(zhǔn)備
基礎(chǔ)環(huán)境
成都創(chuàng)新互聯(lián)專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,資陽(yáng)主機(jī)托管,資陽(yáng)主機(jī)托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。
四臺(tái)Centos6.5
IP地址:
192.168.174.128
192.168.174.129
192.168.174.130
192.168.174.131
四臺(tái)主機(jī)新建hadoop用戶并實(shí)現(xiàn)ssh免密登陸
iptables關(guān)閉和selinux為disabled
1.修改主機(jī)名和ip地址映射
為了后面操作方便,修改主機(jī)名分別為hadoop01、hadoop02、hadoop03、hadoop04。修改主機(jī)名只需修改/etc/sysconfig/network文件hostname行即可,這里博主不再?gòu)?fù)述。然后修改/etc/hosts文件,將ip地址和主機(jī)名的映射寫入進(jìn)去,這樣,后面其它主機(jī)就可根據(jù)主機(jī)名去對(duì)應(yīng)ip地址。
2.安裝JDK
Hadoop的核心組成之一MapReduce是基于java的,因此需要配置基本的java環(huán)境。JDK安裝十分簡(jiǎn)單,前面也多次提到。下載jdk安裝包,解壓jdk到指定目錄。
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/java
修改環(huán)境變量,進(jìn)入/etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin
重新加載環(huán)境變量生效。JDK需在四個(gè)節(jié)點(diǎn)都安裝配置
3.Zookeeper安裝配置
Zookeeper是負(fù)責(zé)協(xié)調(diào)Hadoop一致性,是Hadoop實(shí)現(xiàn)HA的不可或缺的組件。根據(jù)Zookeeper的工作機(jī)制,需要在奇數(shù)個(gè)節(jié)點(diǎn)安裝Zookeeper。本文在hadoop01、hadoop02、hadoop03三個(gè)節(jié)點(diǎn)安裝Zookeeper。
下載zookeeper安裝包,解壓zookeeper安裝包
設(shè)置環(huán)境變量,修改/etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.6
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin
重新加載環(huán)境變量生效
進(jìn)入zookeeper解壓目錄下的conf目錄下,修改配置文件zoo.cfg,一開始并沒有zoo.cfg文件,拷貝zoo_sample.cfg文件重命名為zoo.cfg即可。
創(chuàng)建相應(yīng)的data目錄及datalog目錄
mkdir -p /opt/zookeeper/datalog
在每個(gè)data目錄下新建myid文件,hadoop01的myid文件寫入1,hadoop02的myid文件寫入2,即server.后的數(shù)字。另外注意給/opt/zookeeper目錄及其子目錄給hadoop用戶讀寫操作權(quán)限,因?yàn)楹竺媸褂脄ookeeper時(shí)是以hadoop用戶使用的。
到這里zookeeper基本安裝配置完成,以hadoop用戶啟動(dòng)zookeeper服務(wù)
zkServer.sh start
查看zookeeper狀態(tài)
zkServer.sh status
二、Hadoop安裝配置
下載hadoop安裝包,解壓hadoop安裝包
注意解壓后的目錄user和group應(yīng)該為hadoop,道理與前面zookeeper一樣,在Hadoop使用過程中使用者是hadoop用戶。
設(shè)置環(huán)境變量,修改配置文件/etc/profile
export HADOOP_HOME=/usr/local/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
注意hadoop需要配置bin和sbin,不然后面許多命令無法使用。重新加載環(huán)境變量生效。
然后就是修改hadoop的配置文件,進(jìn)入hadoop安裝目錄下的etc/hadoop目錄下,修改配置文件:hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml,其中配置文件mapred-site.xml在該目錄下有一個(gè)樣本mapred-site.xml.template,復(fù)制該文件重命名為mapred-site.xml即可。
修改配置文件hadoop-env.sh。主要是配置java目錄
修改配置文件core-site.xml
fs.defaultFS
hdfs://jsj/
hadoop.tmp.dir
/usr/local/hdpdata
ha.zookeeper.quorum
hadoop01:2181,hadoop02:2181,hadoop03:2181
修改配置文件hdfs-site.xml,從配置文件名也可知這是關(guān)于HDFS的配置。
dfs.nameservices
jsj
dfs.ha.namenodes.jsj
nn1,nn2
dfs.namenode.rpc-address.jsj.nn1
hadoop01:9000
dfs.namenode.rpc-address.jsj.nn2
hadoop02:9000
dfs.namenode.http-address.jsj.nn1
hadoop01:50070
dfs.namenode.http-address.jsj.nn2
hadoop02:50070
dfs.namenode.shared.edits.dir
qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/jsj
dfs.journalnode.edits.dir
/usr/local/journaldata
dfs.ha.automatic-failover.enabled
true
dfs.client.failover.proxy.provider.jsj
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
shell(/bin/true)
dfs.ha.fencing.ssh.private-key-files
/home/hadoop/.ssh/id_rsa
dfs.ha.fencing.ssh.connect-timeout
30000
修改配置文件mapred-site.xml,即MapReduce相關(guān)配置。
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
hadoop03:10020
mapreduce.jobhistory.webapp.address
hadoop03:19888
修改配置文件yarn-site.xml。yarn平臺(tái)的相關(guān)配置
yarn.log-aggregation-enable
true
yarn.resourcemanager.ha.enabled
true
yarn.resourcemanager.cluster-id
abc
yarn.resourcemanager.ha.rm-ids
rm1,rm2
yarn.resourcemanager.hostname.rm1
hadoop01
yarn.resourcemanager.hostname.rm2
hadoop02
yarn.resourcemanager.zk-address
hadoop01:2181,hadoop02:2181,hadoop03:2181
yarn.nodemanager.aux-services
mapreduce_shuffle
最后修改slaves文件
hadoop02
hadoop03
hadoop04
至此,Hadoop集群相關(guān)配置文件配置完成,在hadoop01、hadoop02、hadoop03、hadoop04四個(gè)節(jié)點(diǎn)都完成相關(guān)配置。
配置文件修改完成并不代表Hadoop安裝結(jié)束,還需要幾個(gè)操作才能正常使用。
在hadoop01、hadoop02、hadoop03啟動(dòng)zookeeper服務(wù)。
zkServer.sh start
在hadoop01、hadoop02、hadoop03啟動(dòng)journalnode
hadoop-daemon.sh start journalnode
格式化hdfs,hadoop01執(zhí)行
hdfs namenode -format
然后查看hadoop安裝目錄確保hdpdata和journaldata在hadoop01和hadoop02都有。沒有從一個(gè)節(jié)點(diǎn)拷貝到另一個(gè)節(jié)點(diǎn)。
在hadoop01啟動(dòng)namenode
hadoop-daemon.sh start namenode
在Hadoop02執(zhí)行
hdfs namenode -bootstrapStandby
格式化zkfc,Hadoop01執(zhí)行
hdfs zkfc -formatZk
在hadoop01啟動(dòng)HDFS
start-dfs.sh
完成以上操作后,Hadoop應(yīng)該可以正常對(duì)外做出服務(wù)。在瀏覽器輸入hadoop01的ip地址,端口號(hào)為50070,查看HDFS的web界面是否正常對(duì)外做出服務(wù)。
在hadoop01和hadoop02啟動(dòng)yarn平臺(tái)
start-yarn.sh
訪問hadoop01的ip地址的8088端口,查看yarn平臺(tái)是否正常對(duì)外做出服務(wù)。
Hadoop安裝配置完成,關(guān)于配置文件的解釋后期有時(shí)間再加上去。本文使用的安裝包是在學(xué)習(xí)過程老師給的,Hadoop是開源的,相信相關(guān)安裝包不難找到。