1. 程式人生 > >Hadoop Map Reduce 限制counter的預設數量120

Hadoop Map Reduce 限制counter的預設數量120

最近用Hadoop統計將近一億行的資料,由於每一行的列再加上Overall的統計 counter數量超過了120,故在Hadoop的執行過程中,丟擲如下異常:

 org.apache.hadoop.mapreduce.counters.LimitExceededException: Too many counters: 121 max=120
由於無法修改Hadoop的配置(因為很多人在用),解決這個異常,我嘗試瞭如下方法進行解決:

1. 在conf配置檔案job-local.xml中增加修改Configuration的內容

<property>
    <name>mapreduce.job.counters.limit</name>
    <value>200</value>
</property>
      執行的時候加上這個引數: *********** -conf job-local.xml ,執行後還是拋上面的LimitExceededException異常,但是在程式中輸出con.get("mapreduce.job.counters.limit")的結果已經由120 變為了 200, 說明引數已經設定到con中,但是並沒有起作用.

結果: 失敗

2. 在程式中直接設定mapreduce.job.counters.limit

con.set("mapreduce.job.counters.limit", "200");
....
....
logger.info(con.get("mapreduce.job.counters.limit"));

結果輸出已經是200了,但是執行後還是丟擲上面的LimitExceededException異常

結果: 失敗, 方法 1 和方法 2 的設定過程和結果都是一樣的,但是並沒有起作用

3. 在Hadoop的配置檔案mapred-default.xml 如下內容, 詳細見部落格: http://blog.csdn.net/xin_jmail/article/details/24086919 , 但是前面說了因為很多專案在用Hadoop機群,不可能因為我的原因就修改整個Hadoop機群的配置

<property>
          <name>mapreduce.job.counters.limit</name>
          <value>120</value>
          <description>Limit on the number of counters allowed per job. </description>
</property>
結果: 偽失敗

4. 修改程式,或者減少counter(臨時方法,最終滿足不了需求), 或者講mapper的結果放到檔案中,然後reduce進行統計並讀取檔案,請檢視我的另一篇博文《Hadoop Map Reduce的Counter數量超過預設值120的解決方案

結果: 可實現

知識點:

1. mapreduce.job.counters.max已經取代了mapreduce.job.counters.limit,但是考慮相容性, 兩者都可以用,代表的是一個數值

2. 在job level是無法修改mapreduce.job.counters.limit(或mapreduce.job.counters.max)的值的,這應該是個BUG, hadoop的mail list有人提過,但Resolution狀態是Won't Fix,原因是 I'm marking this JIRA as won't fix. We can consider re-opening.it if you propose a compelling use case

不知道最新的Hadoop版本(我們現在用的版本是2.4.0-mdh2.0.5)是否Fix了這個BUG,如果有人知道訊息請給我留言,謝謝.

相關推薦

Hadoop Map Reduce 限制counter預設數量120

最近用Hadoop統計將近一億行的資料,由於每一行的列再加上Overall的統計 counter數量超過了120,故在Hadoop的執行過程中,丟擲如下異常: org.apache.hadoop.mapreduce.counters.LimitExceededExcep

Hadoop Map/Reduce記憶體限制

如何設定hadoop  Map/Reduce任務的記憶體限制? Parameter Type Meaning mapred.cluster.map.memory.mb set by admin, cluster-wide Cluster definitio

一步一步跟我學習hadoop(5)----hadoop Map/Reduce教程(2)

submit calc run submitjob des conf sam ner 打開 Map/Reduce用戶界面 本節為用戶採用框架要面對的各個環節提供了具體的描寫敘述,旨在與幫助用戶對實現、配置和調優進行具體的設置。然而,開發時候還是要相應著API進行

超越Hadoop的大資料分析之第一章介紹:為什麼超越Hadoop Map-Reduce

本文翻譯自《BIG DATA ANALYTICS BEYOND HADOOP》譯者:吳京潤 譯者注:本文是本書第一章的開頭,第一章其它部分由其他人翻譯。 你可能是一個視訊服務提供商,而你想基於網路環境動態的選擇合適的內容分發網路來優化終端使用者的體驗。或者你是一個政府監管機構,需要為網際網路頁

Hadoop map reduce 過程獲取環境變數

Hadoop任務執行過程中,在每一個map節點或者reduce節點能獲取一下環境變數,利用這些變數可以為特殊的需求服務,例如:獲取當前map節點處理的資料檔案的路徑。 hadoop是java實現的,利用java可以很方便的獲取相關環境變數,其內部包含在Context和MRJobConfig中(hadoop

Hadoop Map&Reduce個數優化設定以及JVM重用

來源:http://irwenqiang.iteye.com/blog/1448164        Hadoop與JVM重用對應的引數是mapred.job.reuse.jvm.num.tasks,預設是1,表示一個JVM上最多可以順序執行的task數目(屬於同一個J

自定義hadoop map/reduce輸入檔案切割InputFormat 更改輸入value的分隔符

本文轉載自:http://hi.baidu.com/lzpsky/blog/item/99d58738b08a68e7b311c70d.html hadoop會對原始輸入檔案進行檔案切割,然後把每個split傳入mapper程式中進行處理,FileInputForma

如何確定 Hadoop mapreduce的個數--mapreduce數量之間的關係是什麼?

閱讀本文可以帶著下面問題:1.map和reduce的數量過多會導致什麼情況?2.Reduce可以通過什麼設定來增加任務個數?3.一個task的map數量由誰來決定?4.一個task的reduce數量由誰來決定?一般情況下,在輸入源是檔案的時候,一個task的map數量由splitSize來決定的,那麼spli

Hadoop學習:Map/Reduce初探與小Demo實現

pre 排序。 解決 想法 文本文 direction run page lang 一、 概念知識介紹 Hadoop MapReduce是一個用於處理海量數據的分布式計算框架。這個框架攻克了諸如數據分布式存儲、作業調度、容錯、機器間通信等復雜

hadoop第五課:java開發Map/Reduce

pla tool @override val code 項目 ssp ava ram 配置系統環境變量HADOOP_HOME,指向hadoop安裝目錄(如果你不想招惹不必要的麻煩,不要在目錄中包含空格或者中文字符)把HADOOP_HOME/bin加到PATH環境變量(非必要

雜湊函式、Map-ReduceHadoop

雜湊函式 雜湊函式又叫雜湊函式,雜湊函式的輸入域可以是非常大的範圍,比如任意字串,但是輸出域是固定範圍,假設為s。 雜湊函式的性質: 典型的雜湊函式都擁有無限的輸入值域。 輸入值相同時,返回值相同,通常將返回值稱為雜湊值。 輸入值不同時,返回值可能相同,也可能

用python模擬hadoopmap reduce過程

2012-06-25 用python簡單模擬hadoop的map reduce過程,便於對hadoop工作機制進行理解。 簡單來說,map reduce過程是: 給出一個(key,value)的列表list1,分析完後得到另一

徹底明白Hadoop mapreduce的個數決定因素

Hadoop map和reduce的個數設定,困擾了很多學習Hadoop的成員,為什麼設定了配置引數就是不生效那?Hadoop Map和Reduce個數,到底跟什麼有關係。首先他的引數很多,而且可能隨著版本不同一些配置引數,會發生一些變化,但是隻要我們搞懂核心問題,那麼其它

C#、JAVA操作Hadoop(HDFS、Map/Reduce)真實過程概述。元件、原始碼下載。無法解決:Response status code does not indicate success: 500。

一、Hadoop環境配置概述       三臺虛擬機器,作業系統為:Ubuntu 16.04。       Hadoop版本:2.7.2       NameNode:192.168.72.132       DataNode:192.168.72.135,192.168.72.136   

hadoop二次排序 (Map/Reduce中分割槽和分組的問題)

1.二次排序概念:首先按照第一欄位排序,然後再對第一欄位相同的行按照第二欄位排序,注意不能破壞第一次排序的結果 。如: 輸入檔案:20 21 50 51 50 52 50 53 50 54 60 51 60 53 60 52 60 56 60 57 70 58 60 61 70 54 70 55 70 56 

hadoop學習(七)WordCount+Block+Split+Shuffle+Map+Reduce技術詳解

       1、在map task執行時,它的輸入資料來源於HDFS的block,當然在MapReduce概念中,map task只讀取split。Split與block的對應關係在上面我們已經說的很明白了。在WordCount例子裡,假設map的輸入資料都是像 “aaa”這樣的字串。         2、

Hadoopmap-reduce任務時停滯不前的問題

今天跑job 的時候,發現map 任務很正常地結束,但跑reduce 任務時到20% 幾就停滯不前,而且一直卡住沒法正常結束。看userlog ,好 像是FETCH map 任務的結果時超時,無法取到結果。中間還出現了一個詭異的地址web30.bbn.com.cn/202.

hadoop細節---reduce任務數量

1.reduce任務的數量並非由輸入資料的大小決定,而是特別指定的。可以設定mapred.tasktracker.map.task.maximum和mapred.tasktracker.reduce.task.maximum屬性的值來指定map和reduce的數量。 2.

hadoop Map 100% reduce 0% 問題

問題描述: 在偽分散式測試程式時Map 100%完成,reduce 總是在0%無法完成。 原因: 我遇到的問題是hostname主機名引起的,由於之前修改了hostname(/etc/sysco

Map Reduce 數量設定

JobConf.setNumMapTasks(n)是有意義的,結合block size會具體影響到map任務的個數,詳見FileInputFormat.getSplits原始碼。假設沒有設定mapred.min.split.size,預設為1的情況下,針對每個檔案會按照mi