Hadoop 2.4.0和YARN的安裝過程

Hadoop 2.x新特性

    將Mapreduce框架升級到Apache YARN,YARN將Map reduce工做區分爲兩個:JobTracker組件:實現資源管理和任務JOB;計劃/監視組件:劃分到單獨應用中。 使用MapReduce的2.0,開發人員如今能夠直接Hadoop內部基於構建應用程序。Hadoop2.2也已經在微軟widnows上支持。html

YARN帶來了什麼

    1.HDFS的高可靠性
    2.HDFS snapshots快照
    3.支持HDFS中的 NFSv3 文件系統。node

Yarn/map reduce2.0架構圖

    簡單介紹一下這個圖:右邊的3個節點中的NodeManager會按期的向ResourceManager(簡寫爲RM)報告該節點的狀態(塊信息,存儲信息,該節點中的Map或Reduce任務執行狀況等信息),紅色的Client向RM提交任務(包括輸入文件位置、Mapper和Reducer),RM根據各個節點彙報的狀況,爲這個Job建立一個Application Master(即圖中紅色的App Mstr)用於管理這個Job的執行狀況。shell

    App Master建立好並接到任務後,會向RM申請資源(包括輸入文件位置,內存使用,計算過程等),申請到一些Container(可能在不一樣節點上)後,會開始在這些節點上執行(根據提供的輸入文件位置讀取輸入文件,執行Map或Reduce任務)這個Job(的部分),App Mstr同時會管理這些節點中的container,並監控這些container的運行狀況。apache

    藍色部分Client----App Mstr----Container過程和紅色部分的過程徹底相同。瀏覽器

    官方的解釋在這裏:http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html,細節可能有誤差,但大致是這麼回事。bash

準備工做

    系統環境以下:架構

    安裝好JDK並配置好變量$JAVA_HOME。因爲個人機器是Ubuntu的,所以使用apt-get能夠安裝open-jdk,這裏我安裝的jdk版本爲jdk7u55。
app

安裝Hadoop 2.4

    說明:因爲我只有一臺電腦,因此這裏將全部關於hadoop的服務都配置在這裏(文章最後將會看到),而HDFS的備份因子默認爲3,又因爲只有一臺機器,所以只能設置爲1(下面也有說明)。此種模式除了並不是真正意義的分佈式以外,其程序執行邏輯徹底相似於分佈式,所以經常使用於開發人員測試程序執行。框架

    從http://mirror.metrocast.net/apache/hadoop/common/hadoop-2.4.0/下載。分佈式

    1.解壓到/home/hduser/yarn目錄,假設user是用戶名(我這裏的用戶名爲wxl)。

$ tar -xvzf hadoop-2.4.0.tar.gz
$ mv hadoop-2.4.0 /home/user/Software/hadoop-2.4.0
$ cd /home/user/Software
$ sudo chown -R user:user hadoop-2.4.0
$ sudo chmod -R 755 hadoop-2.4.0

    2.在~/.bashrc設置環境,將下面加入:

export HADOOP_HOME=/home/hadoop/hadoop-2.4.0
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

    3.而後再執行下面的命令使配置生效:

$ source ~/.bashrc

    4.建立Hadoop數據目錄:

$ mkdir -p $HADOOP_HOME/yarn/yarn_data/hdfs/namenode
$ mkdir -p $HADOOP_HOME/yarn/yarn_data/hdfs/datanode

    5.配置過程:

$ cd $HADOOP_HOME
$ vi etc/hadoop/yarn-site.xml

    6.編輯 $HADOOP_HOME/etc/hadoop/yarn-site.xml,在<configuration>標籤中加入如下內容:

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

    7.單個集羣節點設置,在$HADOOP_HOME/etc/hadoop/core-site.xml文件的<configuration>標籤加入下面內容在配置

<property>
    <name>fs.default.name</name>
    <!-- 這個地址用於程序中訪問HDFS使用 -->
    <value>hdfs://localhost:9000</value>
</property>

    8.在$HADOOP_HOME/etc/hadoop/hdfs-site.xml文件的<configuration>標籤中加入下面內容

<property>
    <name>dfs.replication</name>
    <!-- 單機版的通常設爲1,如果集羣,通常設爲3 -->
    <value>1</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <!-- 即第4步中建立的namenode文件夾位置 -->
    <value>file:/home/hadoop/hadoop-2.4.0/yarn/yarn_data/hdfs/namenode</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <!-- 即第4步中建立的datanode文件夾位置 -->
    <value>file:/home/hadoop/hadoop-2.4.0/yarn/yarn_data/hdfs/datanode</value>
</property>

    9.在$HADOOP_HOME/etc/hadoop/mapred-site.xml文件(若是這個文件不存在,裏面有個mapred-site.xml.template文件,拷貝爲mapred-site.xml便可)中的<configuration>標籤內加入下面的配置:

    

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

    10.格式化namenode,這個過程僅僅在第一次使用以前執行一次。

$ bin/hadoop namenode -format

    11.啓動HDFS處理和Map-Reduce 處理(固然,懶人(我就是一個,呵呵)能夠把這幾句話寫在一個諸如"start.sh"的腳本里面,每次就只須要執行./start.sh就能夠啓動hadoop的全部服務了,同理,中止hadoop的腳本過程也能夠這樣作。

# HDFS(NameNode & DataNode)部分:

$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode


# MR(Resource Manager, Node Manager & Job History Server).部分:

$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
$ sbin/mr-jobhistory-daemon.sh start historyserver

    此時終端會提示啓動的相關日誌被記錄在$HADOOP_HOME/logs文件夾中,如圖:

    12.下面來確認是否成功啓動了相關服務:

$ jps

    # 若是成功,應該有相似下面的輸出:

22844 Jps
28711 DataNode
29281 JobHistoryServer
28887 ResourceManager
29022 NodeManager
28180 NameNode

    若是不成功,在啓動這些服務的時候會看到有相關的日誌輸出,能夠去$HADOOP_HOME/logs下面查看相關日誌來檢查哪些服務失敗了,而後再對症處理。

    13.HDFS還提供了一個WebUI用於查看該文件系統的狀態,瀏覽器打開端口:http://localhost:50070,其中Utilities標籤下有個File Browser,能夠瀏覽HDFS中的文件。

    14.能夠在http://localhost:8088檢查應用程序的狀態:

    15. 在http://localhost:8088/conf查看hadoop集羣的全部配置信息:

    到此,Hadoop安裝算是完成了。


    參考資料:

    http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html

    http://www.jdon.com/bigdata/yarn.html

相關文章
相關標籤/搜索