天天看點

Hadoop完全分布式叢集配置全流程

寫在前面

本文采用的方法是先配置好單台機器,然後克隆,隻需要修改克隆機器的mac、ip、hostname就可以完成完全分布式叢集的搭建。
slave檔案控制datanode節點的位置。本文将resourcemanager節點放在Aslave102,secondnamenode放在Aslave103節點。原因是resourcemanager消耗大量記憶體,secondnamenode可以做到namenode的備份。
           

1.虛拟機準備

為虛拟機準備了,20GB記憶體。400G硬碟。Centos6.10作業系統
           
Hadoop完全分布式叢集配置全流程

2.修改mac位址、ip位址、主機名稱

(1)檢視ip
		[[email protected] /]# ifconfig
(2)修改mac
		[[email protected] /]#vim /etc/udev/rules.d/70-persistent-net.rules
           
Hadoop完全分布式叢集配置全流程
(3)修改ip位址為靜态ip
		[[email protected] /]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
           

修改前:

Hadoop完全分布式叢集配置全流程

修改後:

Hadoop完全分布式叢集配置全流程
(4)重新開機網絡
		[[email protected] /]#service network restart

           
Hadoop完全分布式叢集配置全流程

注意ifconfig檢視是否修改成功

(5)配置主機名稱
		[[email protected] /]# vi /etc/sysconfig/network
		修改HOSTNAME= Aslave101
(6)打開/etc/hosts
		[[email protected] /]# vim /etc/hosts
		添加如下内容
		192.168.11.102 hadoop102        (指定ip對應的名稱,建議多添加一些,友善擴充節點)
           

并重新開機裝置,重新開機後,檢視主機名,已經修改成功

(7)關閉防火牆
		[[email protected] /]chkconfig iptables off
	檢視狀态
		[[email protected] /]service iptables status
           

3.配置jdk和hadoop 環境變量(注意,jdk和hadoop的檔案所有者是Hadoop

(1)使用hadoop使用者,在根目錄的/opt目錄下建立module(安裝位置)、和software(壓縮包位置)目錄。目錄的所有者是hadoop。
(2)查詢是否安裝java軟體:
		rpm –qa|grep java

(3)如果安裝的版本低于1.7,解除安裝該jdk:
		rpm –e 軟體包
(4)上傳jdk和hadoop編譯後的安裝包到software檔案夾下。并解壓到module檔案夾。
(5)安裝jdk
		擷取jdk的安裝路徑
			[[email protected]_67]# pwd
			/opt/module/jdk1.7.0_79     
		配置環境變量:
			[[email protected]_79]# vi /etc/profile
		在profie檔案末尾添加jdk路徑:
			##JAVA_HOME
			export JAVA_HOME=/opt/module/jdk1.7.0_79
			export PATH=$PATH:$JAVA_HOME/bin
		使檔案生效
			[[email protected] jdk1.7.0_79]# source  /etc/profile
		測試jdk是否安裝成功
			[[email protected] jdk1.7.0_79]# java -version
				 java version "1.7.0_79"
(6)安裝hadoop
	修改hadoop-env.sh檔案中JAVA_HOME 路徑:
		export JAVA_HOME=/opt/module/jdk1.7.0_79
	擷取hadoop安裝路徑:
		[[email protected] Aslave101 hadoop-2.7.2]# pwd /opt/module/hadoop-2.7.2
	打開/etc/profile檔案:
		添加:
			##HADOOP_HOME
			export HADOOP_HOME=/opt/module/hadoop-2.7.2
			export PATH=$PATH:$HADOOP_HOME/bin
			export PATH=$PATH:$HADOOP_HOME/sbin  
		讓檔案生效:
			[[email protected] hadoop101 hadoop-2.7.2]# source /etc/profile
           

4.配置完全分布式叢集

(1)叢集部署規劃

項目 Aslave101 Aslave102 Aslave103
HDFS NameNode SecondaryNameNode
datanode datanode
ResourceManager&NodeManager NodeManager

(2)配置檔案

Hadoop完全分布式叢集配置全流程

core-site.xml

<!-- 指定HDFS中NameNode的位址 -->
<property>
  <name>fs.defaultFS</name>
       	<value>hdfs://Aslave101:8020</value>
 </property>
 <!-- 指定hadoop運作時産生檔案的存儲目錄 -->
 <property>
 	 <name>hadoop.tmp.dir</name>
	 <value>/opt/module/hadoop-2.7.2/data/tmp</value>
 </property>
 
           

hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79
           

hdfs-site.xml定義副本數和secondaryNamenode的位置

<configuration> 
 <property>
  <name>dfs.replication</name>
  <value>3</value>
 </property>
 <property> <name>dfs.namenode.secondary.http-address</name>    
 <value>Aslave103:50090</value>
    </property>
</configuration>
           

slaves

Aslave102
Aslave103
Aslave104
           

yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79
           

yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
<!-- reducer擷取資料的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
 
<!-- 指定YARN的ResourceManager的位址 --> 
    <property>
	  <name>yarn.resourcemanager.hostname</name>
	  <value>Aslave102</value>
    </property>
</configuration>
           

mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79
           

mapred-site.xml

<configuration>
<!-- 指定mr運作在yarn上 -->
	 <property>
		  <name>mapreduce.framework.name</name>
		  <value>yarn</value>
	 </property>
 </configuration>
           

(3)克隆虛拟機

修改mac 位址,ip,hostname。即可。(見第2節)

5.配置ssh免密登入

(1)進入到我的home目錄

cd  ~/.ssh
           

(2)生成公鑰和私鑰:

ssh-keygen -t rsa 
然後敲(三個回車),就會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)
           

(3)将公鑰拷貝到要免密登入的目标機器上

ssh-copy-id 192.168.1.102
           

注意:主機和自己也要拷貝。Aslave101和Aslave102都需要向其他叢集拷貝。

6.啟動Hadoop叢集

在Aslave101 節點

$HADOOP_HOME/sbin/start-dfs.sh
           

在Aslave102

$HADOOP_HOME/sbin/start-yarn.sh
           

jps檢視啟動狀況

hdfs狀态
 http://Aslave101:50090
 資源管理
 http://Aslave102:8088
 
           

繼續閱讀