hadoop備戰:yarn框架的搭建(mapreduce2)
昨天沒有寫好了沒有更新。今天一起更新,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連接網絡,主機上Vmnet1的ip:192.168.137.1
192.168.137.50 master192.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 hostname或ip地址-->
<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.txt、micmiu-03.txt、micmiu-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 切換到Hadoop的share/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)到此 wordcount的job已經運行完畢。運行例如以下命令能夠查看剛才job的運行結果:
hadoop的童鞋們,有問題加關註,評價中說明問題。
hadoop備戰:yarn框架的搭建(mapreduce2)