1. 程式人生 > >hadoop初識 - 搭建偽分散式叢集(CentOS6.5)

hadoop初識 - 搭建偽分散式叢集(CentOS6.5)

關於hadoop模式三種的瞭解,請自行百度瞭解,此文只說明偽分散式的搭建

前提:jdk(hadoop是有java語言完成的,必須有jdk支援)

可以參考我的經驗  --- > Linux-CentOS-6.5下配置JDK

一、準備工作

1、下載hadoop

地址:http://hadoop.apache.org/releases.html

2、關閉防火牆 - 為了方便之後操作

以下操作重啟後會失效,說明,CentOS 7命令不一樣

# 檢視防火牆當前狀態
service iptables status
# 開啟防火牆
service iptables start
# 關閉防火牆
service iptables stop

以下操作重啟後生效(即不需要每次開機都必須去關閉防火牆)

# 檢視防火牆當前狀態
chkconfig | grep iptables
# 開啟防火牆
chkconfig iptables on
# 關閉防火牆
chkconfig iptables off

3、配置主機名

注意主機名不要有下劃線

vim /etc/sysconfig/network

使上面命令生效

source /etc/sysconfig/network

說明:此處可以重啟(reboot重啟後,進入該檔案檢視是否修改成功)

4、配置hosts

vim /etc/hosts

填寫ip地址與主機名,例如 192.168.91.134 hadoop01 

5、配置之間免密互通

生成公鑰、私鑰

ssh-keygen

將公鑰copy到本主機

# ssh-copy-id [登入名]@[host/ip地址]
ssh-copy-id [email protected]

測試,若沒有提示輸入密碼。則說明免密互通設定成功

# ssh [host/ip地址]
ssh 192.168.91.134

二、hadoop解壓

# tar -zxvf [hadoop安裝包位置] -C [指定目錄]
 tar -zxvf /home/software/hadoop-2.7.1_64bit.tar.gz -C /home/software/

二、hadoop相關配置 - 以下檔案都位於hadoop/etc/hadoop/*

1、修改hadoop-env.sh

# vim [hadoop]/etc/hadoop/hadoop-env.sh
vim hadoop-env.sh

在hadoop-env.sh中,第27行,修改到安裝目錄

# 安裝目錄  
export JAVA_HOME=/usr/java/jdk1.8.0_131

2、修改core-site.xml - 注意目錄為自己本機安裝目錄

#  vim [hadoop]/etc/hadoop/core-site.xml
vim core-site.xml
<configuration>
	<property>
		<!--用來指定hdfs的老大,namenode的地址-->
		<name>fs.defaultFS</name>
		<value>hdfs://hadoop01:9000</value>
	</property>
	<property>
		<!--用來指定hadoop執行時產生檔案的存放目錄-->	
		 <name>hadoop.tmp.dir</name> 
		<value>/home/software/hadoop-2.7.1/tmp</value>
	</property>
</configuration>

3、修改 hdfs-site.xml

#  vim [hadoop]/etc/hadoop/hdfs-site.xml
vim hdfs-site.xml
<configuration>
	<property>
		<!--指定hdfs儲存資料副本的數量,包括自己,預設為3-->
		<!--偽分散式模式,此值必須為1-->
		<name>dfs.replication</name> 
		<value>1</value>
	</property>
</configuration>

4、修改 mapred-site.xml

說明:在/etc/hadoop的目錄下,只有一個mapred-site.xml.template檔案,複製一個 cp mapred-site.xml.template mapred-site.xml

# vim [hadoop]/etc/hadoop/mapred-site.xml
vim mapred-site.xml
<configuration>
	<property>  
        <!--指定mapreduce執行在yarn上-->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
	</property>
</configuration>

5、修改 yarn-site.xml

# vim [hadoop]/etc/hadoop/yarn-site.xml
vim yarn-site.xml
<configuration>
    <property>
        <!--指定yarn的老大resourcemanager的地址-->
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop01</value>
    </property>
    <property>
        <!--NodeManager獲取資料的方式-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

6、修改 slaves

# vim [hadoop]/etc/hadoop/slaves
vim slaves

這裡只需將主機名填寫進去即可

7、配置hadoop的環境變數

vim /etc/profile
# hadoop安裝位置
export HADOOP_HOME=/home/software/hadoop-2.7.1/

export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

重新載入profile使配置生效 source /etc/profile

環境變數配置完成,測試環境變數是否生效 echo $HADOOP_HOME

8、重啟linux - reboot

不是必須的,但建議執行

9、格式化namenode

進入 hadoop/bin 輸入命令格式化

# 以前命令 hdfs namenode -format
hadoop namenode -format

若是成功的話,可以再輸出的日誌倒數第七行看到 

Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted

10、啟動hadoop

在/home/app/hadoop-2.6.0/sbin目錄下​ 

start-all.sh

 

啟動成功後,輸入 jps 命令(jdk自帶的,這裡由於配置了環境變數所以任何地方可以使用)會看到如下五個輸出

1825 SecondaryNameNode

1988 ResourceManager

2087 NodeManager

2408 Jps(忽略)

1532 NameNode

1630 DataNode

到此偽分散式叢集搭建成功

 

小擴充套件:

1. 在外部輸入http://[ip地址]:50070 可以看到如下

2. 在外部輸入http://[ip地址]:8088 可以看到如下