標籤:
在CentOS 6.7 x64上搭建Hadoop 2.6.3完全分布式環境,並在DigitalOcean上測試成功。
本文假設:
主節點(NameNode)網域名稱(主機名稱):m.fredlab.org子節點(DataNode)網域名稱(主機名稱):s1.fredlab.org s2.fredlab.org s3.fredlab.org
一、配置SSH互信
1、master機上產生公私密金鑰:id_rsa和id_rsa.pub
ssh-keygen
2、上傳到每個節點機器的.ssh/目錄下
.ssh/---- |-- |--id_rsa |--id_rsa.pub |--authorized_keys |--
3、更改私密金鑰許可權為0600
chmod 0600 id_rsa
4、複製公開金鑰至authorized_keys
cat id_rsa.pub >> authorized_keys
5、配置SSH免詢問(yes)登入(可選)
修改/etc/ssh/ssh_config的以下兩行
StrictHostKeyChecking noGSSAPIAuthentication no
重啟ssh服務
service sshd restart
二、為各個主機佈建網域名(主機名稱)
1、修改主機名稱
vim /etc/sysconfig/network
修改HOSTNAME=s1.fredlab.org(主機名稱),其他節點同理。
2、將主機名稱和對應ip地址加入/etc/hosts,格式類似:
104.236.142.235 m.fredlab.org104.236.143.22 s1.fredlab.org104.236.143.54 s2.fredlab.org107.170.224.199 s3.fredlab.org
三、安裝Java JDK環境
1、下載java jdk rpm包
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2、安裝
rpm -ih jdk-8u72-linux-x64.rpm
3、檢驗java路徑,以及版本
which javawhich javacjava -version
4、預設JAVA_HOME=/usr
四、安裝hadoop 2.6.3
【以下操作均在master上進行】
1、下載hadoop 2.6.3
wget http://www.eu.apache.org/dist/hadoop/common/hadoop-2.6.3/hadoop-2.6.3.tar.gz
2、解壓安裝(安裝位置/usr/local/hadoop2)
tar zxf hadoop-2.6.3.tar.gzmv hadoop-2.6.3 /usr/local/hadoop2
3、增加資料目錄和臨時目錄(網站可選取,與設定檔對應即可)
mkdir /usr/local/hadoop2/tmpmkdir /usr/local/hadoop2/hdfs
4、修改設定檔(位於/usr/local/hadoop2/etc/hadoop/目錄下)
主設定檔:core-site,其中m.fredlab.org為NameNode的網域名稱(主機名稱)
<configuration> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop2/tmp</value> <description>temp dir</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://m.fredlab.org:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property></configuration>
hdfs設定檔:hdfs-site.xml
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop2/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop2/hdfs/data</value> </property> <property> <name>dfs.blocksize</name> <value>134217728</value> </property> <property> <name>dfs.namenode.handler.count</name> <value>10</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property></configuration>
yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property></configuration>
將java路徑加入hadoop-env.sh和yarn-env.sh
echo "export JAVA_HOME=/usr" >> hadoop-env.shecho "export JAVA_HOME=/usr" >> yarn-env.sh
在slaves檔案中加入各個節點的網域名稱(主機名稱),每行一個,類似:
s1.fredlab.orgs2.fredlab.orgs3.fredlab.org
五、複製配置好的hadoop到各個Slaves
將/usr/local/hadoop2目錄一起拷貝到各個DataNode機器上
scp -r /usr/local/hadoop2 [email protected]:/usr/local/
六、啟動hadoop叢集
1、格式檔案系統
/usr/local/hadoop2/bin/dfs namenode -format
2、啟動叢集
啟動hdfs
/usr/local/hadoop2/sbin/start-dfs.sh
啟動yarn
/usr/local/hadoop2/sbin/start-yarn.sh
3、檢查檔案系統
/usr/local/hadoop2/bin/hdfs dfsadmin -report
4、web頁面觀測叢集運行情況
叢集運行狀態:http://m.fredlab.org:50070
http://master_ip:50070
叢集應用狀態:http://m.fredlab.org:8088
http://master_ip:8088
5、查看各個節點java進程
NameNode,m.fredlab.org上執行:jps
12058 ResourceManager22298 NameNode11914 SecondaryNameNode11180 Jps
DataNode,s1.fredlab.org上執行:jps
13909 Jps13494 DataNode
CentOS 6.7安裝Hadoop 2.6.3叢集環境