<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ### 4.1 實驗目的 了解什么是YARN框架,如何搭建YARN分布式集群,并能夠使用YARN集群提交一些簡單的任務,理解YARN作為Hadoop生態中的資源管理器的意義。 ### 4.2 實驗要求 搭建YARN集群,并使用YARN集群提交簡單的任務。觀察任務提交的之后的YARN的執行過程。 ### 4.3 實驗原理 #### 4.3.1 YARN概述 YARN是一個資源管理、任務調度的框架,采用master/slave架構,主要包含三大模塊:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)。其中,ResourceManager負責所有資源的監控、分配和管理,運行在主節點; NodeManager負責每一個節點的維護,運行在從節點;ApplicationMaster負責每一個具體應用程序的調度和協調,只有在有任務正在執行時存在。對于所有的applications,RM擁有絕對的控制權和對資源的分配權。而每個AM則會和RM協商資源,同時和NodeManager通信來執行和監控task。幾個模塊之間的關系如圖4-1所示: ![](https://box.kancloud.cn/6b6702bf12da0b287fd2717b57d0673c_320x258.png) 圖4-1 模塊間的關系 4.3.2 YARN運行流程 YARN運行流程如圖4-2所示: ![](https://box.kancloud.cn/50c0e2750822dd82ac9877dcea45c2fc_348x267.png) 圖4-2 YARN運行流程如圖 client向RM提交應用程序,其中包括啟動該應用的ApplicationMaster的必須信息,例如ApplicationMaster程序、啟動ApplicationMaster的命令、用戶程序等。 ResourceManager啟動一個container用于運行ApplicationMaster。 啟動中的ApplicationMaster向ResourceManager注冊自己,啟動成功后與RM保持心跳。 ApplicationMaster向ResourceManager發送請求,申請相應數目的container。 ResourceManager返回ApplicationMaster的申請的containers信息。申請成功的container,由ApplicationMaster進行初始化。container的啟動信息初始化后,AM與對應的NodeManager通信,要求NM啟動container。AM與NM保持心跳,從而對NM上運行的任務進行監控和管理。 container運行期間,ApplicationMaster對container進行監控。container通過RPC協議向對應的AM匯報自己的進度和狀態等信息。 應用運行期間,client直接與AM通信獲取應用的狀態、進度更新等信息。 應用運行結束后,ApplicationMaster向ResourceManager注銷自己,并允許屬于它的container被收回。 ### 4.4 實驗步驟 該實驗主要分為配置YARN的配置文件,啟動YARN集群,向YARN幾個簡單的任務從而了解YARN工作的流程。 #### 4.4.1 在master機上配置YARN 操作之前請確認HDFS已經啟動,具體操作參考之前的實驗內容。 指定YARN主節點,編輯文件“/usr/cstor/hadoop/etc/hadoop/yarn-site.xml”,將如下內容嵌入此文件里configuration標簽間: ~~~ <property><name>yarn.resourcemanager.hostname</name><value>master</value></property> <property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property> ~~~ yarn-site.xml是YARN守護進程的配置文件。第一句配置了ResourceManager的主機名,第二句配置了節點管理器運行的附加服務為mapreduce_shuffle,只有這樣才可以運行MapReduce程序。 在master機上操作:將配置好的YARN配置文件拷貝至slaveX、client。 ~~~ [root@master ~]# cat ~/data/4/machines slave1 salve2 slave3 client [allen@cmaster ~]# for x in `cat ~/data/4/machines` ; do echo $x ; scp /usr/cstor/hadoop/etc/hadoop/yarn-site.xml $x:/usr/cstor/hadoop/etc/hadoop/ ; done; ~~~ #### 4.4.2 統一啟動YARN 確認已配置slaves文件,在master機器上查看: ~~~ [root@master ~]# cat /usr/cstor/hadoop/etc/hadoop/slaves slave1 slave2 slave3 [root@master ~]# ~~~ YARN配置無誤,統一啟動YARN: ~~~ [root@master ~]# /usr/cstor/hadoop/sbin/start-yarn.sh ~~~ #### 4.4.3 驗證YARN啟動成功 讀者可分別在四臺機器上執行如下命令,查看YARN服務是否已啟動。 ~~~ [root@master ~]# jps #jps查看java進程 ~~~ 你會在master上看到類似的如下信息: ~~~ 2347 ResourceManager ~~~ 這表明在master節點成功啟動ResourceManager,它負責整個集群的資源管理分配,是一個全局的資源管理系統。 而在slave1、slave2、slave3上看到類似的如下信息: ~~~ 4021 NodeManager ~~~ NodeManager是每個節點上的資源和任務管理器,它是管理這臺機器的代理,負責該節點程序的運行,以及該節點資源的管理和監控。YARN集群每個節點都運行一個NodeManager。 查看Web界面 在當前的Windows機器上打開瀏覽器,地址欄輸入master的IP和端口號8088(例:10.1.1.7:8088),即可在Web界面看到YARN相關信息。 #### 4.4.4 在client機上提交DistributedShell任務 distributedshell,他可以看做YARN編程中的“hello world”,它的主要功能是并行執行用戶提供的shell命令或者shell腳本。-jar指定了包含ApplicationMaster的jar文件,-shell_command指定了需要被ApplicationMaster執行的Shell命令。 在xshell上再打開一個client 的連接,執行: ~~~ [root@client ~]# /usr/cstor/hadoop/bin/yarn org.apache.hadoop.yarn.applications.distributedshell.Client -jar /usr/cstor/hadoop/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.7.1.jar -shell_command uptime ~~~ #### 4.4.5 在client機上提交MapReduce型任務 (1)指定在YARN上運行MapReduce任務 首先,在master機上,將文件“/usr/cstor/hadoop/etc/hadoop/mapred-site.xml. template”重命名為“/usr/cstor/hadoop/etc/hadoop/mapred-site.xml”。 接著,編輯此文件并將如下內容嵌入此文件的configuration標簽間: <property><name>mapreduce.framework.name</name><value>yarn</value></property> 最后,將master機的“/usr/local/hadoop/etc/hadoop/mapred-site.xml”文件拷貝到slaveX與client,重新啟動集群。 (2)在client端提交PI Estimator任務 首先進入Hadoop安裝目錄:/usr/cstor/hadoop/,然后提交PI Estimator任務。 命令最后兩個兩個參數的含義:第一個參數是指要運行map的次數,這里是2次;第二個參數是指每個map任務,取樣的個數;而兩數相乘即為總的取樣數。Pi Estimator使用Monte Carlo方法計算Pi值的,Monte Carlo方法自行百度。 ~~~ [root@client hadoop]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar pi 2 10 ~~~ #### 4.5 實驗結果 (1)yarn啟動之后在master上的web界面上能看到的界面。如圖4-3所示: ![](https://box.kancloud.cn/882f8d99e8e80628490f275553b2ac40_281x81.jpg) 圖4-3 web界面總覽 (2)提交DistributedShell任務之后web界面看到的界面應該是。如圖4-4所示: ![](https://box.kancloud.cn/010b3c377ef9faee073601002ecd8833_308x223.jpg) 圖4-4 DistributedShell任務 (3)提交PI任務之后web界面上看到的。如圖4-5所示: ![](https://box.kancloud.cn/45c17bf03da597be88360e29ba276bb9_528x156.jpg) 圖4-5 MR任務計算PI值 在終端能觀察到的界面。如圖4-6所示: ![](https://box.kancloud.cn/1f09375ba62b31ac29168da2dbb19f90_529x630.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看