1. 程式人生 > >hadoop備戰:yarn框架的搭建(mapreduce2)

hadoop備戰:yarn框架的搭建(mapreduce2)

author welcome start profile handler prope indent 好用 機器名

昨天沒有寫好了沒有更新。今天一起更新,yarn框架也是剛搭建好的。

我這裏把hadoop放在了我的個人用戶hadoop下了。你也能夠嘗試把它放在/usr/local,考慮的問題就相對多點。

主要的軟硬件配置:

x86臺式機,window7 64位系統

wmware虛擬機(x86的臺式機至少是4G內存,才幹開2臺虛機)

centos6.4操作系統

hadoop-2.2.0.tar.gz

jdk-6u24-linux-i586.bin

WinScp 遠程文件傳輸工具,非常好用。能夠用於windows和虛擬機

Linux之間文件相互拷貝。

一、root下的配置

a) 改動主機名:vi /etc/sysconfig/network
Master, slave1,

b) 解析Ip: vi /etc/hosts

由於採用的是Host-only連接網絡,主機上Vmnet1ip:192.168.137.1

192.168.137.50 master

192.168.137.55 slave1


c) 調試網絡:
採用自定的vmnet1,默認是host-only這樣的方式。連接網絡,配置網絡。

改動後記得調用 service network restart

確保三臺虛擬機能夠相互ping

通。(非常好弄的,我如今的問題怎樣讓虛擬機連接外網,我會在近期的博客中。弄清楚,繼續關註我的博客)


d) 關閉防火墻
查看:service iptables status
關閉:service iptables stop
查看防火墻有無自啟動:
Chkconfig –-list | grep iptables
關閉自啟動:

Chkconfig iptables off

二、hadoop用戶下的配置

a) 創建用戶hadoop,設置password,進入用戶

useradd hadoop

passwd hadoop

b) master創建公私秘鑰

分別在兩臺虛擬機上生成:ssh-keygen –t rsa.

.ssh是一個隱藏的文件 #cd .ssh可進入

1)將id_rsa.pub復制給authorized_keys

Cp id_rsa.pub authorized_keys

2)將master中的authorized_keys復制給slave1的/home/hadoop/.ssh下

scp authorized_keys [email protected]:/home/hadoop/.ssh/

3)將master拷貝過來的authorized_keys拷貝到slave1本身所創的authorized_keys下

4)驗證ssh的免password生效:

a)能夠嘗試發個小文件給對方機器。假設沒有提示要求password。那麽你的免password就生效了

b)也能夠直接ssh+對方機器名(hostname改過之後),能夠進入對方用戶環境則說明生效

c) 將hadoop拷貝拷貝到相應的master機子中/home/hadoop/

配置hadoop用戶的環境變量 vi /etc/profile,加入例如以下內容:

#set java enviroment

export JAVA_HOME=/usr/local/jdk

export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

# Hadoop

export HADOOP_PREFIX="/home/hadoop/hadoop"

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

export HADOOP_COMMON_HOME=${HADOOP_PREFIX}

export HADOOP_HDFS_HOME=${HADOOP_PREFIX}

export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}

export HADOOP_YARN_HOME=${HADOOP_PREFIX}

註:su + username實現切換用戶

d) 編輯/home/hadoop/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/local/jdk

e) 編輯/home/hadoop/etc/hadoop/yarn-env.sh

export JAVA_HOME=/usr/local/jdk

f) 編輯/home/hadoop/etc/hadoop/core-site.xml

<!-- 新變量f:s.defaultFS 取代舊的:fs.default.name -->

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<!-- 註意創建相關的文件夾結構。這裏的tmp是自己創建的 -->

<value>/home/hadoop/hadoop/tmp</value>

</property>

g) 編輯/home/hadoop/etc/hadoop/hdfs-site.xml

<property>

<name>dfs.replication</name>

<!-- 值須要與實際的DataNode節點數要一致,本文為3 -->

<value>1</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<!-- 註意創建相關的文件夾結構 -->

<value>file:/home/hadoop/hadoop/dfs/namenode</value>

<final>true</final>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<!-- 註意創建相關的文件夾結構 -->

<value>file:/home/hadoop/hadoop/dfs/datanode</value>

</property>

h) 編輯/home/hadoop/hadoop/etc/hadoop/yarn-site.xml

<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>

<!-- resourcemanager hostnameip地址-->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>master</value>

</property>

h) 編輯/home/hadoop/hadoop/etc/hadoop/mapred-site.xml

註:默認沒有mapred-site.xml文件,copy mapred-site.xml.template 一份為 mapred-site.xml就可以

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

<final>true</final>

</property>

、啟動和測試

1、啟動Hadoop

1.1、第一次啟動須要在Master.Hadoop 運行format hdfs namenode -format

格式化成功,你能找到一句話:

技術分享圖片

1.2、在Master.Hadoop運行 start-dfs.sh

技術分享圖片

Slave1驗證啟動進程例如以下:

技術分享圖片

1.3、在Master運行 start-yarn.sh

技術分享圖片

Slave1 驗證啟動進程例如以下:

技術分享圖片

四、演示案例:(單詞計數)

1)先實現以下的生成文件夾命令:

技術分享圖片

2本地創建三個文件 micmiu-01.txtmicmiu-03.txtmicmiu-03.txt, 分別寫入例如以下內容:

micmiu-01.txt

Hi Michael welcome to Hadoop

more see micmiu.com

micmiu-02.txt

Hi Michael welcome to BigData

more see micmiu.com

micmiu-03.txt

Hi Michael welcome to Spark

more see micmiu.com

3然後cd 切換到Hadoopshare/hadoop/mapreduce下運行

[hadoop@master mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcount /user/micmiu/wordcount/in /user/micmiu/wordcount/out

ps: hdfs /user/micmiu/wordcount/out 文件夾不能存在 否則運行報錯。

技術分享圖片

5)到此 wordcountjob已經運行完畢。運行例如以下命令能夠查看剛才job的運行結果:

技術分享圖片


hadoop的童鞋們,有問題加關註,評價中說明問題。


hadoop備戰:yarn框架的搭建(mapreduce2)