国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Hadoop教程(三):MR重要運行參數

來源:懂視網 責編:小OO 時間:2020-11-09 13:22:18
文檔

Hadoop教程(三):MR重要運行參數

MR框架的其他組件可用內存也是可配置的。map和reduce任務的性能可以通過從影響操作并發和數據磁盤IO次數的角度來調試。監控針對單個任務而設置的文件系統計數器,尤其是具體到map輸出到reduce的數據字節量,對調試影響任務運行性能都是非常有用的。
推薦度:
導讀MR框架的其他組件可用內存也是可配置的。map和reduce任務的性能可以通過從影響操作并發和數據磁盤IO次數的角度來調試。監控針對單個任務而設置的文件系統計數器,尤其是具體到map輸出到reduce的數據字節量,對調試影響任務運行性能都是非常有用的。

MR框架的其他組件可用內存也是可配置的。map和reduce任務的性能可以通過從影響操作并發和數據磁盤IO次數的角度來調試。監控針對單個任務而設置的文件系統計數器,尤其是具體到map輸出到reduce的數據字節量,對調試影響任務運行性能都是非常有用的。

如果內存管理特性啟用的話,用戶可以選擇性的覆蓋一些默認配置,比如虛擬內存,RAM。下面是一些對任務有效的參數:

名稱 類型 特點
mapred.task.maxvmem int 以字節為單位指定單個map或reduce任務的最大虛擬內存。如果任務超過該值就被kill
mapred.task.maxpmem int 以字節為單位指定單個map或reduce任務的最大RAM。這個值被調度器(Jobtracer)參考作為分配map\reduce任務的依據,避免讓一個節點超RAM負載使用。

Map參數

map讀出的一條記錄將被序列化到一個buffer,元數據存儲在元數據buffer中。如上面所說,當序列化buffer或者元數據buffer超出了設置的闕值,buffer中內容將被排序并在后臺寫入到磁盤,這個過程同時map持續輸出記錄行。如果buffer被寫滿就會發生一個spill過程,spill中map線程被阻塞。當map完成后,buffer中剩余記錄寫入磁盤并和在磁盤的按段存儲的記錄合并到一個文件中。減少spill次數可以縮短map時間,但是較大的buffer也會降低可用內存。

名稱 類型 特點
io.sort.mb int 默認100。以MB為單位設置序列化和元數據buffer的大小。
io.sort.record.percent float 默認0.05。map記錄序列化后數據元數據buffer所占總buffer百分比值。為了加速排序,除了序列化后本身尺寸外每條序列化后的記錄需要16字節的元數據。io.sort.mb值被占用的百分比值超過設定值機會發生spill。對輸出記錄較少的map,值越高越可降低spill發生的次數。
io.sort.spill.percent float 默認0.80。元數據和序列化數據buffer空間閥值。當兩者任何一個buffer空間達到該閥值,數據將被spill到磁盤。假設io.sort.record.percent=r, io.sort.mb=x,io.sort.spill.percent=q,那么在map線程spill之前最大處理的記錄量為r*x*q*2^16。注意:較大的值可能降低spill的次數甚至避免合并,但是也會增加map被阻塞的幾率。通過精確估計map的輸出尺寸和減少spill次數可有效縮短map處理時間。

其他注意事項:

  • 如果spill闕值達到了,就會發生spill,記錄收集將繼續直到spill完成。例如io.sort.buffer.spill.percent設置為0.33,buffer剩余的部分被填滿,spill發生,下一個spill將會包含所有收集的記錄,或者是這個buffer的0.66部分,并且不會產生額外的spill過程。換句話說闕值像是定義的觸發器,不會阻塞。
  • 大于序列化數據buffer的一條記錄將首先觸發一個spill,然后被spill到一個獨立的文件中。沒有配置參數來定義記錄是否首先通過combiner。
  • Shuffle/Reduce參數

    如前面所說,每個reduce通過HTTP獲取map輸出后讀入內存,并周期性合并這些輸出到磁盤。如果map輸出壓縮打開的話,每個輸出將會解壓后讀入內存。下面的配置參數影響reduce處理中的合并和內存分配過程。

    名稱 類型 特點
    io.sort.factor int 默認值10。指定同時可合并的文件片段數目。參數限制了打開文件的數目,壓縮解碼器。如果文件數超過了該值,合并將分成多次。這個參數一般適用于map任務,大多數作業應該配置該項。
    mapred.inmem.merge.threshold int 在內存中合并到磁盤前讀取已排序map輸出文件的數目。類似前面說的spill闕值,該值不是一個用來分區的單元而是一個觸發器。通常該值較高(1000),或者不啟用(0),畢竟內存內合并比磁盤上合并成本更低。這個闕值只影響shuffle過程的內存合并。
    mapred.job.shuffle.merge.percent float 0.66。內存合并前供map輸出享有的內存百分比值,超過該值就會合并數據到磁盤。過大的值會降低獲取和合并的并行效率。相反如果輸入恰好整個放到內存,則可以設置為1.0。該參數只影響shuffle過程的內存合并頻率。
    mapred.job.shuffle.input.buffer.percent float 默認值0.7。shuffle過程中緩存map輸出數據的內存占整個子jvm進程堆最大尺寸(通過mapred.child.java.opts設置)的百分比。該值可以視情況設置較高的值來存儲大的較多的map輸出。
    mapred.job.reduce.input.buffer.percent float 0.0 內存合并中從內存刷到磁盤,直到剩余的map輸出占用的內存少于jvm最大堆的該百分比值。默認情況下,在reduce開始之前需要保證最大的內存可用,所有的內存中map輸出都會被合并到磁盤。對內存不敏感的reduce任務,該值可以適當提高,來避免磁盤IO(一般不會有)。

    其他注意事項:

  • 如果map輸出占用超過25%的內存去拷貝,這會直接被刷到磁盤而不會經過內存合并階段。
  • 當combiner運行,前面所說的較高的合闕值和大的buffer不適用。因為在所有map輸出都被取到之前合并就開始了,當spill發生時combiner處于運行狀態。在一些實踐中,用戶可以通過合并輸出使得磁盤spill足夠小并可保證并行的spill和數據拉取來縮短reduce處理時間,而不是去不斷的提高buffer尺寸。
  • 內存合并map輸出并刷到磁盤時reduce過程開始,如果有多個輸出片段spill到磁盤,或者至少有io.sort.factor個片段已經在磁盤上,那么中間合并過程是必須的,并且包含內存中處理map輸出。
  • 子JVM重用

    可以通過指定mapred.job.reuse.jvm.num.tasks作業配置參數來啟用jvm重用。默認是1,jvm不會被重用(每個jvm只處理1個任務)。如果設置為-1,那么一個jvm可以運行同一個作業的任意任務數目。用戶可以通過JobConf.setNumTasksToExecutePerJvm(int)指定一個大于1的值。

    下面是作業執行時的配置參數:

    名稱 類型 描述
    mapred.job.id string 表示jobid
    mapred.jar string job.jar在job路徑下的位置
    job.local.dir string 作業共享路徑
    mapred.tip.id string taskid
    mapred.task.id string task嘗試任務id
    mapred.task.is.map boolean 是否是map任務
    mapred.task.partition int task在job中的id
    map.input.file string map輸入文件路徑
    map.input.start long map輸入split開始偏移量
    map.input.length long map輸入分片的字節數
    mapred.work.output.dir string 任務臨時輸出路徑

    任務的標準輸出和錯誤流日志由TaskTracker讀入并寫入${HADOOP LOGDIR}/userlogs路徑。

    DistributedCache可以被用來發布map或者reduce用到的jar包、本地共享庫。子JVM進程通??墒褂胘ava.library.path和LD LIBRARYPATH指定其自身的工作路徑。緩存庫可以通過 System.loadLibrary或者 System.load加載。關于使用distributed cache 加載共享庫詳細信息可以查看 Loading native libraries through DistributedCache。

    ?

    相關文章

  • Hadoop教程(二)
  • Hadoop教程(一)
  • 使用Hadoop和BIRT對海量數據進行可視化處理
  • 專為Mac本跟蹤Hadoop任務的應用
  • Log4j 2.x架構
  • 為什么這段代碼輸出的是”Hello World”
  • 為Hbase建立高可用性多主節點
  • Log4j 2 介紹
  • 經典論文翻譯導讀之《Dremel: Interactive Analysis of WebScale Datasets》
  • MapReduce啟蒙文獻
  • 聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Hadoop教程(三):MR重要運行參數

    MR框架的其他組件可用內存也是可配置的。map和reduce任務的性能可以通過從影響操作并發和數據磁盤IO次數的角度來調試。監控針對單個任務而設置的文件系統計數器,尤其是具體到map輸出到reduce的數據字節量,對調試影響任務運行性能都是非常有用的。
    推薦度:
    標簽: 教程 大家 繼續
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 日日碰日日摸日日澡视频播放 | 国产免费一区二区三区免费视频 | 任你躁欧美一级在线精品免费 | 一道精品视频一区二区三区男同 | 欧美中文娱乐网 | 国产伦精品一区二区三区免 | 伊人久久综合成人网小说 | 四虎精品 | 国产成人精品日本亚洲语音2 | a毛片成人免费全部播放 | 国产区免费 | 日韩成人在线电影 | 精品国产免费一区二区三区五区 | 精品一区二区三 | 亚洲一区二区三区91 | 麻豆国产高清精品国在线 | 最新精品在线视频 | 成人精品视频一区二区在线 | 精品成人一区二区三区免费视频 | 亚洲欧美一区二区三区久本道 | 国产伦精品一区二区三区网站 | 成人毛片一区二区三区 | 国产全黄a一级毛片 | 精品一区二区三区四区五区 | 亚洲一区 中文字幕 | 欧美高清在线精品一区二区不卡 | 免费观看日韩大尺码观看 | 亚洲欧美色视频 | 在线 | 一区二区三区 | 亚洲va欧美ⅴa国产va影院 | 一区二区三区视频在线观看 | 影音先锋女人aa鲁色资源 | 看全色黄大色大片免费久久久 | 亚洲欧美综合网站 | 欧美一区二区三区免费高 | 国产区精品福利在线社区 | 精品国产欧美一区二区三区成人 | 在线看国产 | 亚洲一区二区视频在线观看 | 婷婷爱爱 | 国产一级特黄高清免费下载 |