將Mapreduce框架升級到Apache YARN,YARN將Map reduce工做區分爲兩個:JobTracker組件:實現資源管理和任務JOB;計劃/監視組件:劃分到單獨應用中。 使用MapReduce的2.0,開發人員如今能夠直接Hadoop內部基於構建應用程序。Hadoop2.2也已經在微軟widnows上支持。html
1.HDFS的高可靠性
2.HDFS snapshots快照
3.支持HDFS中的 NFSv3 文件系統。node
簡單介紹一下這個圖:右邊的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的服務都配置在這裏(文章最後將會看到),而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