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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # mapreduce和yarn交互流程 ResourceManager資源管理(有任務調度方式) MrAppMaster是mapreduce程序的老大,向ResourceManager資源管理請求運算節點,監控啟動 mapTask和reduceTask 這些mapTask和reduceTask用jps查看是yarnchild ![](https://box.kancloud.cn/441989e871d4f1f9f4fad87d17a19d83_1801x757.png) # job提交流程 1. 客戶端調用job.submit()后會在客戶端啟動一個叫做yarnRunner的跟ResourceManager進行通信的RPC客戶端 2. yarnRunner會向resourceManager請求程序 3. resourceManager返回給yarnRunner一個提交路徑和一個jobID 4. YarnRunner提交程序所需要的資源到HDFS 5. YarnRunner向resourceManager發送提交成功的報告 6. resourceManager會在內部創建任務,然后把任務放入任務隊列 7. NodeManager向resourceManager領取任務 8. NodeManager會在內部創建運行的容器container 9. YarnRunner發送mrAppmaster的啟動腳本,然后在container中啟動mrappmaster 10. mrAppmaster啟動之后會向resourceManager申請資源,需要多少個task 11. 這些task所在的nodeManager會向resourceManager領取任務 12. mrAppmaster會發送啟動腳本,啟動其他nodemanager中的container中的maptask任務 13. 當maptask任務執行完畢之后,mrAppMaster會再次向resourceManager申請資源,啟動相應數量的reducetask # 運算的時候哪些可以自定義 ![](https://box.kancloud.cn/ed765f688626ff9936c14df6c0343d08_1920x1080.png) ![](https://box.kancloud.cn/f27fc56ae7b930d2abd96fd6eae46466_1916x284.png) # MapReduce運算主體工作流程 **map** ![](https://box.kancloud.cn/2ede033717fe6926f48a200c26fa44b0_1452x699.png) 環形緩沖區大小可以通過io.sort.mb改變 環形緩沖區有一個閾值,默認0.8,可以通過io.sort.spill.percent設置,通常設置為0.6 **reduce** ![](https://box.kancloud.cn/df37a9e67f11c7dc4e25b783fd57f4b6_1449x685.png) reduceTask分區數據中,有一個mapTask處理完成之后,就開始從mapTask本地磁盤拉取輸出數據.拉取任務是多線程,默認是5.可根據mpred.reduce.parallel.copys設置 reduceTask復制的數據,首先保存在內存(輸入緩沖區)中.由mpred.job.shuffe.input.buffer.percent屬性控制,指定可用做輸入緩沖區的堆內存的百分比 # shuffle機制 mapreduce確保每個reduce的輸入都是按鍵排序的,系統執行排序的過程(即將map輸出作為輸入傳給reducer)稱為shuffle ![](https://box.kancloud.cn/6264f1052d65b510bbcfb8467a6dd5e8_1334x673.png) # yarn調度器的方式 ## 先進先出調度 如果第一個時間很長會阻塞后面小的,如果storm和mapreduce在一起,那么其他程序就可能被阻塞了 ![](https://box.kancloud.cn/027c6d59bbaf3cccdb1d416899b0e44c_408x333.png) ## 容量調度 默認是這種 會預留個空間給小任務執行 ![](https://box.kancloud.cn/36e5052cba43080bcb6f25f911aebde6_1413x413.png) 就是分成不同的空間隊列,看任務大小,然后這些不同的隊列不斷的去拉取合適的任務來執行 單個隊列內部是FIFO 1. 支持多個隊列,每個隊列可配置一定的資源量,每個隊列采用FIFO調度策略 2. 為了防止同一個用戶的作業獨占隊列中的資源,該調度器會對同一用戶提交的作業所占資源量進行限定 3. 首先,計算每個隊列中正在運行的任務數與其應該分得的計算資源之間的比值,選擇一個該比值最小的隊列 4. 其次,按照作業優先級和提交時間順序,同時考慮用戶資源量限制和內存限制對隊列內任務排序 ## 公平調度 大家公平的使用機器,但是會使得大任務的時候變得不確定可能會變長 動態調整 ![](https://box.kancloud.cn/7761026f3d84c0e0e155df32735f95d4_411x336.png) ## 配置 hadoop作業調度器主要有三種: FIFO, Capacity Scheduler和Fair Scheduler hadoop2.7.2默認的資源調度器是Capacity Scheduler 具體設置可見: yarn-default.xml ~~~ <property> <description>The class to use as the resource scheduler</description> <name>yarn.resourcemanager.scheduler.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value> </property> ~~~
                  <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>

                              哎呀哎呀视频在线观看