1. 程式人生 > >centos6.5搭建Hadoop叢集

centos6.5搭建Hadoop叢集

centos6.5搭建Hadoop叢集

準備工作

CentOS-6.5-x86_64-bin-DVD1.iso
下載地址:http://vault.centos.org/6.5/isos/x86_64/
linux編譯後的Hadoop安裝包: hadoop-2.7.4.tar.gz
連結:https://pan.baidu.com/s/1SxV9aG6Njknw4IM-ZdmDGw 提取碼:34np
jdk: jdk-8u65-linux-x64.tar.gz
連結:https://pan.baidu.com/s/1Okg_edKw3KuMOhIFRF2zeg 提取碼:cy4k

建立三個虛擬機器
通過ifconfig | more 命令檢視各個虛擬機器的ip地址

ifconfig | more

ip地址

修改主機名和IP的對映關係

在三臺虛擬機器上都修改hosts檔案

vi /etc/hosts
			
192.168.111.128	node-1
192.168.111.129	node-2
192.168.111.130	node-3

關閉各個虛擬機器的防火牆

#檢視防火牆狀態
service iptables status
#關閉防火牆
service iptables stop
#檢視防火牆開機啟動狀態
chkconfig iptables --list
#關閉防火牆開機啟動
chkconfig iptables off

配置ssh免登陸

在node-1虛擬機器上輸入如下命令

#生成ssh免登陸金鑰

ssh-keygen -t rsa (回車)

#將公鑰拷貝到要免密登陸的目標機器上(包括本機)
	ssh-copy-id node-1
	
	ssh-copy-id node-2
	
	ssh-copy-id node-3


同步叢集時間

常用的手動進行時間的同步
		date -s "2017-03-03 03:03:03"
	或者網路同步:
		yum install ntpdate
		ntpdate cn.pool.ntp.org

安裝步驟

只需要在node-1上安裝,然後發到其他的機器上即可

安裝jdk1.8

#先解除安裝open-jdk

java -version
rpm -qa | grep java

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

#上傳、解壓tar包
tar -zxvf jdk-8u65-linux-x64.tar.gz

#配置環境變數
vi /etc/profile
#結尾新增

export JAVA_HOME=/root/apps/jdk1.8.0_65   #jdk的安裝目錄
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#重新整理配置
source /etc/profile

#檢查是否安裝成功
java -version

安裝成功後的截圖

安裝hadoop2.7.4

#上傳編譯的Hadoop安裝包

 tar -zxvf hadoop-2.7.4.tar.gz

修改配置

配置Hadoop檔案

hadoop2.x的配置檔案目錄:$HADOOP_HOME/etc/hadoop

修改hadoop-env.sh

vi hadoop-env.sh
#寫入jdk的安裝位置
export JAVA_HOME=/root/apps/jdk1.8.0_65

修改core-site.xml

vi core-site.xml

#在<configuration>中加入如下配置


<!-- 指定HADOOP所使用的檔案系統schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://node-1:9000</value>
</property>

<!-- 指定hadoop執行時產生檔案的儲存目錄,預設/tmp/hadoop-${user.name}  -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/data/Hdata</value>
</property>

執行產生檔案只需要在namenode,也就是master上配置,不需要創建出Hdata資料夾,在初始化Hadoop時會自動創建出來

修改hdfs-site.xml

vi hdfs-site.xml


#在<configuration>中加入如下配置


<!-- 指定HDFS副本的數量 -->
<property>
	<name>dfs.replication</name>
	<value>2</value>
</property>
<!-- 指定老大namenode的二當家 -->
<property>
 	<name>dfs.namenode.secondary.http-address</name>
  	<value>node-2:50090</value>
</property>

修改mapred-site.xml


#先將mapred-site.xml.template重新命名
mv mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

#在<configuration>中加入如下配置

<!-- 指定mapreduce執行時框架,這裡指定在yarn上,預設是local -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>

修改yarn-site.xml


vi yarn-site.xml

#在<configuration>中加入如下配置
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>node-1</value>
</property>
	
<!-- NodeManager上執行的附屬服務。需配置成mapreduce_shuffle,才可執行MapReduce程式預設值:"" -->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>

修改slaves

vi slaves
#先刪除原來的localhost 再新增三臺機器的主機名

node-1
node-2
node-3

將hadoop新增到環境變數

vim /etc/proflie

export HADOOP_HOME=/root/apps/hadoop-2.7.4   #hadoop的安裝目錄
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

將jdk hadoop 環境配置檔案傳送到其他機器

scp -r /root/apps//root/apps/jdk1.8.0_65/ [email protected]:/root/apps/
scp -r /root/apps//root/apps/jdk1.8.0_65/ [email protected]:/root/apps/

scp -r /root/apps/hadoop-2.7.4/ [email protected]:/root/apps/
scp -r /root/apps/hadoop-2.7.4/ [email protected]:/root/apps/

scp -r /etc/profile/ [email protected]:/etc/
scp -r /etc/profile/ [email protected]:/etc/

#所有機器重新整理環境配置
source /etc/profile/

格式化namenode

只需要在master機器上進行格式化!!!!!!

hdfs namenode -format 或者  hadoop namenode -format

如果出錯需要檢視錯誤並對照如上的配置進行修改,再進行格式化

啟動hadoop並測試

#hadoop2.x的啟動檔案目錄:$HADOOP_HOME/sbin/

#先啟動HDFS
start-dfs.sh
		
#再啟動YARN
start-yarn.sh

或者
start-all.sh        
stop-all.sh

同時還需要啟動歷史服務
mr-jobhistory-daemon.sh start historyserver


驗證是否安裝成功

#輸入jps命令 檢視node-1


jps
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode

管理頁面(使用node-1的地址訪問)

http://192.168.111.128:50070 (HDFS管理介面)

http://192.168.111.128:8088 (MR管理介面)

執行Hadoop 自帶的mapreduce 程式example

cd hadoop-2.7.4/share/hadoop/mapreduce/


#使用如下命令執行計算得出圓周率
hadoop jar hadoop-mapreduce-examples-2.7.4.jar pi 20 50