搭建yarn(hadoop-2.2.0)環境詳細過程

dwzone發表於2014-08-02

磨刀不誤砍柴工,在這裡我們先了解一個問題:

MapReduce和YARN是什麼關係?

答:YARN並不是下一代MapReduce(MRv2),下一代MapReduce與第一代MapReduce(MRv1)在程式設計介面、資料處理 引擎(MapTask和ReduceTask)是完全一樣的, 可認為MRv2重用了MRv1的這些模組,不同的是資源管理和作業管理系統,MRv1中資源管理和作業管理均是由JobTracker實現的,集兩個功能 於一身,而在MRv2中,將這兩部分分開了, 其中,作業管理由ApplicationMaster實現,而資源管理由新增系統YARN完成,由於YARN具有通用性,因此YARN也可以作為其他計算 框架的資源管理系統,不僅限於MapReduce,也是其他計算框架,比如Spark、Storm等, 通常而言,我們一般將執行在YARN上的計算框架稱為“X on YARN”,比如“MapReduce On YARN”, "Spark On YARN",“Storm On YARN”等。

Hadoop 2.0由三個子系統組成,分別是HDFS、YARN和MapReduce,其中,YARN是一個嶄新的資源管理系統,而MapReduce則只是執行在 YARN上的一個應用,如果把YARN看成一個雲作業系統,那麼MapReduce可認為是執行在這個作業系統上的App。

上次寫到MapReduce和YARN是什麼關係?今天就要正式搭建環境。

搭建環境準備:具體參照《搭建Hadoop-0.20.2環境》一文中的第一步到第六步

系統:Ubuntu-12.04(其他版本也可以)

模式:偽分散式

搭建使用者:hadoop

Hadoop-2.2.0下載地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.2.0/
選擇你需要的安裝包,在這裡我們選擇hadoop-2.2.0.tar.gz
附Hadoop映象連結地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/

宣告1:我配置hadoop-2.2.0的目錄是/home/hadoop
宣告2:在/home/hadoop下建立了yarn目錄hadoop-2.2.0目錄和hadoop資料目錄都是在yarn目錄下。
宣告3:在下面的搭建過程中可將/home/hadoop換成你自己的目錄。

步驟一:上傳hadoop-2.2.0.tar.gz 並解壓到/home/hadoop/yarn目錄,此時在yarn目錄中解壓出hadoop-2.2.0目錄

sudo chown -R hadoop:hadoop hadoop-2.2.0

建立Hadoop資料目錄:

mkdir -p /home/hadoop/yarn/yarn_data/hdfs/namenode
mkdir -p /home/hadoop/yarn/yarn_data/hdfs/datanode

配置檔案之前先大體介紹一下hadoop-2.2.0目錄中的各個資料夾,注意區分與Hadoop1中的改變。

外層的啟動指令碼在sbin目錄

內層的被呼叫指令碼在bin目錄

Native的so檔案都在lib/native目錄

配置程式檔案都放置在libexec

配置檔案都在etc目錄,對應以前版本的conf目錄

所有的jar包都在share/hadoop目錄下面

步驟二:配置環境變數

在這裡我自己沒有將環境全域性化所以在hadoop-2.2.0中沒有配置系統環境/etc/profile
如果配置,執行執行source /etc/profile,使之生效。

步驟三:core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml配置

接下來我們的具體配置就是/home/hadoop/yarn/hadoop-2.2.0/etc/hadoop目錄中進行。

core-site.xml配置

<configuration >
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
        <description>指定NameNode的IP地址和埠號</description>
    </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
        <description>備份數</description>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/yarn/yarn_data/hdfs/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/yarn/yarn_data/hdfs/datanode</value>
    </property>
</configuration>

mapred-site.xml

<configuration>
    <property> 
        <name>mapreduce.framework.name</name> 
        <value>yarn</value> 
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>localhost:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>localhost:19888</value>
    </property>
</configuration>        

yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
  <name>yarn.resourcemanager.address</name>
  <value>localhost:8032</value>
</property>
<property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>localhost:8030</value>
</property>
<property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value>localhost:8031</value>
</property>   
<property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>localhost:8033</value>
</property>   
<property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>localhost:8088</value>
</property>  
<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> 
</configuration>

步驟四:slaves配置

因為是偽分散式,所以我們只有localhost

步驟五:將配置好的hadoop-2.2.0分發同步到各個資料節點

因為是偽分散式,這步跳過。

步驟六:格式化NameNode

執行命令:

bin/hdfs namenode –format

或者

bin/hadoop namenode –format

步驟七:啟動hdfs和yarn

啟動hdfs:

sbin/start-dfs.sh

啟動yarn:

sbin/start-yarn.sh

或者可以執行

sbin/start-all.sh

一起啟動hdfs和yarn。

另外還要啟動history服務,不然在皮膚中不能開啟history連結。

sbin/mr-jobhistory-daemon.sh start historyserver

下面使用jps命令檢視啟動程式:

4504 ResourceManager
4066 DataNode
4761 NodeManager
5068 JobHistoryServer
4357 SecondaryNameNode
3833 NameNode
5127 Jps

步驟八:測試

hdfs測試:

在hdfs中建立檔案:bin/hadoop fs -mkdir /wordcount
向hdfs中上傳檔案:bin/hadoop fs /home/hadoop/file2.txt /wordcount
檢視hdfs檔案目錄:hdfs dfs –ls /

Yarn測試: 執行WordCount測試程式,

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /wordcount /output2

具體檢視結果:

bin/hadoop fs -cat /output2/*

結果顯示:

hadoop  1
hello   2
java    4
jsp 1

到這裡,hadoop-2.2.0環境搭建結束,配置檔案根據具體需求,具體配置。可能有配置不當的地方,若有看到還望指正。

相關文章