<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網(wǎng) 責(zé)編:小OO 時間:2020-11-09 13:22:18
        文檔

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

        MR框架的其他組件可用內(nèi)存也是可配置的。map和reduce任務(wù)的性能可以通過從影響操作并發(fā)和數(shù)據(jù)磁盤IO次數(shù)的角度來調(diào)試。監(jiān)控針對單個任務(wù)而設(shè)置的文件系統(tǒng)計數(shù)器,尤其是具體到map輸出到reduce的數(shù)據(jù)字節(jié)量,對調(diào)試影響任務(wù)運行性能都是非常有用的。
        推薦度:
        導(dǎo)讀MR框架的其他組件可用內(nèi)存也是可配置的。map和reduce任務(wù)的性能可以通過從影響操作并發(fā)和數(shù)據(jù)磁盤IO次數(shù)的角度來調(diào)試。監(jiān)控針對單個任務(wù)而設(shè)置的文件系統(tǒng)計數(shù)器,尤其是具體到map輸出到reduce的數(shù)據(jù)字節(jié)量,對調(diào)試影響任務(wù)運行性能都是非常有用的。

        MR框架的其他組件可用內(nèi)存也是可配置的。map和reduce任務(wù)的性能可以通過從影響操作并發(fā)和數(shù)據(jù)磁盤IO次數(shù)的角度來調(diào)試。監(jiān)控針對單個任務(wù)而設(shè)置的文件系統(tǒng)計數(shù)器,尤其是具體到map輸出到reduce的數(shù)據(jù)字節(jié)量,對調(diào)試影響任務(wù)運行性能都是非常有用的。

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

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

        Map參數(shù)

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

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

        其他注意事項:

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

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

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

        其他注意事項:

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

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

        下面是作業(yè)執(zhí)行時的配置參數(shù):

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

        任務(wù)的標(biāo)準(zhǔn)輸出和錯誤流日志由TaskTracker讀入并寫入${HADOOP LOGDIR}/userlogs路徑。

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

        ?

        相關(guān)文章

      8. Hadoop教程(二)
      9. Hadoop教程(一)
      10. 使用Hadoop和BIRT對海量數(shù)據(jù)進(jìn)行可視化處理
      11. 專為Mac本跟蹤Hadoop任務(wù)的應(yīng)用
      12. Log4j 2.x架構(gòu)
      13. 為什么這段代碼輸出的是”Hello World”
      14. 為Hbase建立高可用性多主節(jié)點
      15. Log4j 2 介紹
      16. 經(jīng)典論文翻譯導(dǎo)讀之《Dremel: Interactive Analysis of WebScale Datasets》
      17. MapReduce啟蒙文獻(xiàn)
      18. 聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

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

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久精品亚洲福利| 亚洲精品无码AV中文字幕电影网站| 亚洲色自偷自拍另类小说| 国产黄色片免费看| 久久久久亚洲AV无码专区桃色| 国产亚洲综合一区二区三区| 国产中文字幕免费| 天堂亚洲免费视频| 亚洲最大激情中文字幕| 国产日韩精品无码区免费专区国产| 久久久久国产亚洲AV麻豆| 少妇性饥渴无码A区免费| 亚洲日本精品一区二区| 国产精品免费观看| 亚洲色大情网站www| 免费A级毛片无码A| 免费看无码特级毛片| 久久亚洲AV无码精品色午夜麻豆| h视频在线免费看| 亚洲精品无码久久久久A片苍井空| 免费涩涩在线视频网| 亚洲免费在线观看| 亚洲欧洲自拍拍偷综合| 天天摸天天操免费播放小视频 | 精品97国产免费人成视频| 亚洲国产精品无码专区| 美女内射毛片在线看免费人动物 | 亚洲成人黄色网址| 成人毛片免费观看视频在线| 日本一区二区三区在线视频观看免费 | 99久久99热精品免费观看国产| 亚洲国产精品成人精品小说| 免费高清小黄站在线观看| 国产免费人成视频尤勿视频| 91亚洲导航深夜福利| 国产成人免费永久播放视频平台| 美女网站在线观看视频免费的| 亚洲网红精品大秀在线观看 | 国产妇乱子伦视频免费| 亚洲国产综合专区在线电影| 在线观看人成视频免费|