1. 程式人生 > >Hadoop叢集配置安裝,詳細步驟及講解

Hadoop叢集配置安裝,詳細步驟及講解

**涉及linux命令一定要注意大小寫和空格,linux系統對此敏感**
**hadoop叢集的安裝一定要靜下心一步一步來**

1、關閉防火牆(防火牆最好關閉,不然以後linux操作會有很多麻煩)

1)輸入命令: vi etc/selinux/config
	其中改為 SELINUX=disable
2)關閉iptables服務分別執行以下命令:
   service iptables status
   chkconfig iptables off
   reboot(重啟伺服器)
   service iptables status

2、安裝jdk

1)先解除安裝Linux系統自帶的低版本的jdk
	a.檢視Linux系統自帶的低版本的jdk rpm -qa|grep jdk
	  查到的jdkjava-1.6.0-openjdk-javadoc-1.6.0.0-1.66.1.13.0.el6.x86_64
	b.解除安裝jdk:rpm -e --nodeps java-1.6.0-openjdk-javadoc-1.6.0.0-1.66.1.13.0.el6.x86_64
	
2).安裝rz檔案傳輸工具(版本號可能不一樣,無礙)
	a.yum list lrzsz
	b.yum install lrzsz.x86_64

3).使用rz命令上傳jdk的tar包
	jdk-8u101-linux-x64.tar.gz

4).解壓jdk
	tar -zxvf jdk-8u101-linux-x64.tar.gz

5).新增環境變數
	a.輸入命令:vi /etc/profile
	b.新增下面三段:
		export JAVA_HOME=/usr/etc/jdk1.8.0_101(路徑一定要注意,是你解壓後的jdk的報的路徑)
		export PATH=$JAVA_HOME/bin:$PATH
		export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
	c.檢視是否安裝成功 
		輸入命令:java -version

3、新增固定IP(既設定DNS,新增固定IP是為了防止ip變更,設定成靜態IP一勞永逸)

1).輸入命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0
2).新增:
	ONBOOT=yes
	BOOTPROTO=none
	IPADDR=192.168.15.128
	GATEWAY=192.168.15.2
	DNS1=8.8.4.4
	DNS2=222.85.85.85
	(ONBOOT和BOOTPROTO原始檔中已存在修改成yes和none就行,IPADDR是
	你要修改的靜態IP一般和現在的IP一樣。GATEWAY是閘道器IP,只需要將IPADDR最後面的幾個字改成2。例如:將192.168.15.128改為192.168.15.2)
3).儲存之後重啟network
	輸入命令:service network restart

4、配置主節點名(192.168.15.128)

1).輸入命令:vi /etc/sysconfig/network
2).新增內容:(已經有的話改一下就行)
	NETWORKING=yes
	HOSTNAME=master
3).配置兩臺子節點名(192.168.15.129)和(192.168.15.130)
	NETWORKING=yes
	HOSTNAME=slave1(或HOSTNAME=slave2)

5、配置hosts

1).開啟主節點的hosts檔案,要將檔案的前兩行註釋掉 (註釋當前主機的資訊)並在檔案中新增所有hadoop叢集的主機資訊。
	輸入命令:vi /etc/hosts
2).新增
	192.168.15.128   master
	192.168.15.129   slave1
	192.168.15.130   slave2
3).儲存之後,將主節點的hosts分別拷貝到其他兩個子節點
	scp /etc/hosts 
[email protected]
:/etc/ scp /etc/hosts [email protected]:/etc/ 4).重啟伺服器使之生效 輸入命令:reboot

5、去VMware 克隆linux虛擬機器,你也可以再配兩個,克隆便捷而且可以減少錯誤。

1).先關閉要克隆的虛擬機器,雙擊後,右鍵-->管理-->克隆
根據提示下一步,注意:**中間一定要選擇完全克隆,再下一步**
最後點選完成就ok,此步驟進行兩遍。

6、配置ssh無密碼訪問(不懂無密碼訪問,自己百度或查資料,再此不過多介紹)

1).在每個節點上分別執行:
	ssh-keygen -t rsa
	一直按回車直到生成結束執行結束之後每個節點上的/root/.ssh/目錄下生成了兩
	檔案 id_rsa 和 id_rsa.pub。其中前者為私鑰,後者為公鑰
2).在主節點上執行:
	cp id_rsa.pub authorized_keys
3).將子節點的公鑰拷貝到主節點並新增進authorized_keys
	將兩個子節點的公鑰拷貝到主節點上,分別在兩個子節點上執行:
	scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_slave1.pub
	scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_slave2.pub
4)然後在主節點上,將拷貝過來的兩個公鑰合併到authorized_keys檔案中去
主節點上執行:
	cat id_rsa_slave1.pub>> authorized_keys
	cat id_rsa_slave2.pub>> authorized_keys

5).最後測試是否配置成功在master上分別執行
	ssh slave1
	ssh slave2

6).將主節點的authorized_keys檔案分別替換子節點的authorized_keys檔案
主節點上用scp命令將authorized_keys檔案拷貝到子節點的相應位置
	scp authorized_keys [email protected]:/root/.ssh/
	scp authorized_keys [email protected]:/root/.ssh/
7).先 cd /root/.ssh 
	然後輸入命令:ssh 主機名    可以自由切換即成功(例如:在主節點上輸入ssh 		
	slave1),第一次需要輸入密碼.

7、安裝hadoop

1).在master主機上安裝hadoop,下載hadoop包,放在/usr目錄下,(也可以放在其他目錄下)
	使用rz命令上傳hadoop的tar包
	cd /user -->rz上傳
2).	解壓hadoop
	tar -zxvf /usr/hadoop-2.6.4.tar.gz(版本號自己自行修改,要和自己的檔名對應)
3).
	配置環境變數:vi /etc/profile
	在末尾新增:
		export HADOOP_HOME=/usr/hadoop-2.6.4
		export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4).儲存後使新編輯的profile生效:
	source /etc/profile

8、配置hadoop

1).配置hadoop配置檔案
	需要配置的檔案的位置為/hadoop-2.6.4/etc/hadoop,需要修改的有以下幾個
		hadoop-env.sh
		yarn-env.sh
		core-site.xml
		hdfs-site.xml
		mapred-site.xml
		yarn-site.xml
		slaves
	其中:hadoop-env.sh和yarn-env.sh裡面都要新增jdk的環境變數:

	hadoop-env.sh中
		# The java implementation to use.
		export JAVA_HOME=/root/jdk1.7.0_72 
		 (只需該路徑即可,其他不用該。這是jdk的安裝路徑,請務必注意對應好自己
		 的角度看路徑,不要寫錯。)
		# The jsvc implementation to use. Jsvc is required to run secure datanodes
		# that bind to privileged ports to provide authentication of data transfer
		# protocol.  Jsvc is not required if SASL is configured for authentication of
		# data transfer protocol using non-privileged ports.
		#export JSVC_HOME=${JSVC_HOME}
		
	yarn-env.sh中
		# User for YARN daemons
		export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}

		# resolve links - $0 may be a softlink
		export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"

		# some Java parameters
		export JAVA_HOME=/opt/java/jdk1.7.0_72  (和上面配置一樣)
		
	core-site.xml中
		<configuration>
		        <property>
		                <name>fs.defaultFS</name>
		                <value>hdfs://master:9000</value>(master為主機名,對應好)
		        </property>
		        <property>
		                <name>io.file.buffer.size</name>
		                <value>131072</value>
		        </property>
		        <property>
		                <name>hadoop.tmp.dir</name>
		                <value>file:/usr/temp</value>
		        </property>
		        <property>
		                <name>hadoop.proxyuser.root.hosts</name>
		                <value>*</value>
		        </property>
		        <property>
		                <name>hadoop.proxyuser.root.groups</name>
		                <value>*</value>
		        </property>
		</configuration>
	
	hdfs-site.xml中
		<configuration>
		        <property>
		                <name>dfs.namenode.secondary.http-address</name>
		                <value>master:9001</value>
		        </property>
		        <property>
		                <name>dfs.namenode.name.dir</name>
		                <value>file:/usr/dfs/name</value>
		        </property>
		        <property>
		                <name>dfs.datanode.data.dir</name>
		                <value>file:/usr/dfs/data</value>
		        </property>
		        <property>
		                <name>dfs.replication</name>
		                <value>2</value>
		        </property>
		        <property>
		                <name>dfs.webhdfs.enabled</name>
		                <value>true</value>
		        </property>
		        <property>
		                <name>dfs.permissions</name>
		                <value>false</value>
		        </property>
		        <property>
		                <name>dfs.web.ugi</name>
		                <value> supergroup</value>
		        </property>
		</configuration>
		
	mapred-site.xml中
		<configuration>
		        <property>
		                <name>mapreduce.framework.name</name>
		                <value>yarn</value>
		        </property>
		        <property>
		                <name>mapreduce.jobhistory.address</name>
		                <value>master:10020</value>
		        </property>
		        <property>
		                <name>mapreduce.jobhistory.webapp.address</name>
		                <value>master:19888</value>
		        </property>
		</configuration>
		
yarn-site.xml中
		<configuration>
		        <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>
		        <property>
		                <name>yarn.resourcemanager.address</name>
		                <value>master:8032</value>
		        </property>
		        <property>
		                <name>yarn.resourcemanager.scheduler.address</name>
		                <value>master:8030</value>
		        </property>
		        <property>
		                <name>yarn.resourcemanager.resource-tracker.address</name>
		                <value>master:8031</value>
		        </property>
		        <property>
		                <name>yarn.resourcemanager.admin.address</name>
		                <value>master:8033</value>
		        </property>
		        <property>
		                <name>yarn.resourcemanager.webapp.address</name>
		                <value>master:8088</value>
		        </property>
		</configuration>
		
	slaves中
			master
			slave1
			slave2

	2).拷貝hadoop安裝檔案到子節點主節點上執行:
		scp -r /usr/hadoop-2.6.4 [email protected]:/usr
		scp -r /usr/hadoop-2.6.4 [email protected]:/usr
		
	3).拷貝profile到子節點主節點上執行:
		scp /etc/profile [email protected]:/etc/
		scp /etc/profile [email protected]:/etc/
		
	4).在兩個子節點上分別使新的profile生效:
		source /etc/profile
		
	5).格式化主節點的namenode
		主節點上進入hadoop-2.6.4(hadoop的安裝目錄,即解壓後的hadoop目錄)目錄
		然後執行:
			hadoop namenode –format
		新版本用下面的語句不用hadoop命令了
			hdfs namenode –format
		提示:successfully formatted表示格式化成功,不太好早,仔細一點,在靠下的位置
		
	6).啟動hadoop
		主節點上在hadoop-2.6.4目錄下執行:
		./sbin/start-all.sh

9、驗證是否成功

	主節點上輸入:jps
	NameNode
	SecondaryNameNode
	ResourceManager
	只要有以上三個程序即成功
	每個子節點上輸入:jps
	DataNode
	NodeManager
	只要有以上兩個程序即成功
	這樣hadoop叢集配置成功
	然後開啟瀏覽器,位址列中輸入   主機名:50070 (例如:192.168.15.128:50070)進入
	http://192.168.79.133:50070/dfshealth.html#tab-overview網站即成功。