天天看點

Hadoop 2.4.0和YARN的安裝過程

    将mapreduce架構更新到apache yarn,yarn将map reduce工作區分為兩個:jobtracker元件:實作資源管理和任務job;計劃/監視元件:劃分到單獨應用中。 使用mapreduce的2.0,開發人員現在可以直接hadoop内部基于建構應用程式。hadoop2.2也已經在微軟widnows上支援。

    1.hdfs的高可靠性

    2.hdfs snapshots快照

    3.支援hdfs中的 nfsv3 檔案系統。

Hadoop 2.4.0和YARN的安裝過程

    簡單介紹一下這個圖:右邊的3個節點中的nodemanager會定期的向resourcemanager(簡寫為rm)報告該節點的狀态(塊資訊,存儲資訊,該節點中的map或reduce任務執行情況等資訊),紅色的client向rm送出任務(包括輸入檔案位置、mapper和reducer),rm根據各個節點彙報的情況,為這個job建立一個application master(即圖中紅色的app mstr)用于管理這個job的執行情況。

    app master建立好并接到任務後,會向rm申請資源(包括輸入檔案位置,記憶體使用,計算過程等),申請到一些container(可能在不同節點上)後,會開始在這些節點上執行(根據提供的輸入檔案位置讀取輸入檔案,執行map或reduce任務)這個job(的部分),app mstr同時會管理這些節點中的container,并監控這些container的運作情況。

    藍色部分client----app mstr----container過程和紅色部分的過程完全相同。

    系統環境如下:

Hadoop 2.4.0和YARN的安裝過程

    安裝好jdk并配置好變量$java_home。由于我的機器是ubuntu的,是以使用apt-get可以安裝open-jdk,這裡我安裝的jdk版本為jdk7u55。

    說明:由于我隻有一台電腦,是以這裡将所有關于hadoop的服務都配置在這裡(文章最後将會看到),而hdfs的備份因子預設為3,又由于隻有一台機器,是以隻能設定為1(下面也有說明)。此種模式除了并非真正意義的分布式之外,其程式執行邏輯完全類似于分布式,是以常用于開發人員測試程式執行。

    1.解壓到/home/hduser/yarn目錄,假設user是使用者名(我這裡的使用者名為wxl)。

<a href="http://my.oschina.net/itblog/blog/282694#">?</a>

1

2

3

4

5

<code>$ </code><code>tar</code> <code>-xvzf hadoop-2.4.0.</code><code>tar</code><code>.gz</code>

<code>$ </code><code>mv</code> <code>hadoop-2.4.0 </code><code>/home/user/software/hadoop-2</code><code>.4.0</code>

<code>$ </code><code>cd</code> <code>/home/user/software</code>

<code>$ </code><code>sudo</code> <code>chown</code> <code>-r user:user hadoop-2.4.0</code>

<code>$ </code><code>sudo</code> <code>chmod</code> <code>-r 755 hadoop-2.4.0</code>

    2.在~/.bashrc設定環境,将下面加入:

6

<code>export</code> <code>hadoop_home=</code><code>/home/hadoop/hadoop-2</code><code>.4.0</code>

<code>export</code> <code>hadoop_mapred_home=$hadoop_home</code>

<code>export</code> <code>hadoop_common_home=$hadoop_home</code>

<code>export</code> <code>hadoop_hdfs_home=$hadoop_home</code>

<code>export</code> <code>yarn_home=$hadoop_home</code>

<code>export</code> <code>hadoop_conf_dir=$hadoop_home</code><code>/etc/hadoop</code>

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

<code>$ </code><code>source</code> <code>~/.bashrc</code>

    4.建立hadoop資料目錄:

<code>$ </code><code>mkdir</code> <code>-p $hadoop_home</code><code>/yarn/yarn_data/hdfs/namenode</code>

<code>$ </code><code>mkdir</code> <code>-p $hadoop_home</code><code>/yarn/yarn_data/hdfs/datanode</code>

    5.配置過程:

<code>$ </code><code>cd</code> <code>$hadoop_home</code>

<code>$ </code><code>vi</code> <code>etc</code><code>/hadoop/yarn-site</code><code>.xml</code>

    6.編輯 $hadoop_home/etc/hadoop/yarn-site.xml,在&lt;configuration&gt;标簽中加入以下内容:

7

8

<code>&lt;</code><code>property</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>name</code><code>&gt;yarn.nodemanager.aux-services&lt;/</code><code>name</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>value</code><code>&gt;mapreduce_shuffle&lt;/</code><code>value</code><code>&gt;</code>

<code>&lt;/</code><code>property</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>name</code><code>&gt;yarn.nodemanager.aux-services.mapreduce.shuffle.class&lt;/</code><code>name</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>value</code><code>&gt;org.apache.hadoop.mapred.shufflehandler&lt;/</code><code>value</code><code>&gt;</code>

    7.單個叢集節點設定,在$hadoop_home/etc/hadoop/core-site.xml檔案的&lt;configuration&gt;标簽中加入下面内容在配置:

<code>    </code><code>&lt;</code><code>name</code><code>&gt;fs.default.name&lt;/</code><code>name</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 這個位址用于程式中通路hdfs使用 --&gt;</code>

<code>    </code><code>&lt;</code><code>value</code><code>&gt;hdfs://localhost:9000&lt;/</code><code>value</code><code>&gt;</code>

    8.在$hadoop_home/etc/hadoop/hdfs-site.xml檔案的&lt;configuration&gt;标簽中加入下面内容

9

10

11

12

13

14

15

<code>    </code><code>&lt;</code><code>name</code><code>&gt;dfs.replication&lt;/</code><code>name</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 單機版的一般設為1,若是叢集,一般設為3 --&gt;</code>

<code>    </code><code>&lt;</code><code>value</code><code>&gt;1&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>name</code><code>&gt;dfs.namenode.name.dir&lt;/</code><code>name</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 即第4步中建立的namenode檔案夾位置 --&gt;</code>

<code>    </code><code>&lt;</code><code>value</code><code>&gt;file:/home/hadoop/hadoop-2.4.0/yarn/yarn_data/hdfs/namenode&lt;/</code><code>value</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>name</code><code>&gt;dfs.datanode.data.dir&lt;/</code><code>name</code><code>&gt;</code>

<code>    </code><code>&lt;!-- 即第4步中建立的datanode檔案夾位置 --&gt;</code>

<code>    </code><code>&lt;</code><code>value</code><code>&gt;file:/home/hadoop/hadoop-2.4.0/yarn/yarn_data/hdfs/datanode&lt;/</code><code>value</code><code>&gt;</code>

    9.在$hadoop_home/etc/hadoop/mapred-site.xml檔案(如果這個檔案不存在,裡面有個mapred-site.xml.template檔案,拷貝為mapred-site.xml即可)中的&lt;configuration&gt;标簽内加入下面的配置:

Hadoop 2.4.0和YARN的安裝過程

<code>    </code><code>&lt;</code><code>name</code><code>&gt;mapreduce.framework.name&lt;/</code><code>name</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>value</code><code>&gt;yarn&lt;/</code><code>value</code><code>&gt;</code>

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

<code>$ bin</code><code>/hadoop</code> <code>namenode -</code><code>format</code>

    11.啟動hdfs處理和map-reduce 處理(當然,懶人(我就是一個,呵呵)可以把這幾句話寫在一個諸如"start.sh"的腳本裡面,每次就隻需要執行./start.sh就可以啟動hadoop的所有服務了,同理,停止hadoop的腳本過程也可以這樣做。)

<code># hdfs(namenode &amp; datanode)部分:</code>

<code>$ sbin</code><code>/hadoop-daemon</code><code>.sh start namenode</code>

<code>$ sbin</code><code>/hadoop-daemon</code><code>.sh start datanode</code>

<code># mr(resource manager, node manager &amp; job history server).部分:</code>

<code>$ sbin</code><code>/yarn-daemon</code><code>.sh start resourcemanager</code>

<code>$ sbin</code><code>/yarn-daemon</code><code>.sh start nodemanager</code>

<code>$ sbin</code><code>/mr-jobhistory-daemon</code><code>.sh start historyserver</code>

    此時終端會提示啟動的相關日志被記錄在$hadoop_home/logs檔案夾中,如圖:

Hadoop 2.4.0和YARN的安裝過程

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

<code>$ jps</code>

    # 如果成功,應該有類似下面的輸出:

<code>22844 jps</code>

<code>28711 datanode</code>

<code>29281 jobhistoryserver</code>

<code>28887 resourcemanager</code>

<code>29022 nodemanager</code>

<code>28180 namenode</code>

    如果不成功,在啟動這些服務的時候會看到有相關的日志輸出,可以去$hadoop_home/logs下面檢視相關日志來檢查哪些服務失敗了,然後再對症處理。

    13.hdfs還提供了一個webui用于檢視該檔案系統的狀态,浏覽器打開端口:http://localhost:50070,其中utilities标簽下有個file browser,可以浏覽hdfs中的檔案。

Hadoop 2.4.0和YARN的安裝過程

    14.可以在http://localhost:8088檢查應用程式的狀态:

Hadoop 2.4.0和YARN的安裝過程

    15. 在http://localhost:8088/conf檢視hadoop叢集的所有配置資訊:

Hadoop 2.4.0和YARN的安裝過程

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