HBase MR容错率设置


故事背景:

hadoop任务分为map task和reduce task,当map task执行失败后会重试,超过重试次数(mapred.map.max.attempts指定,默认为4),整个job会失败,这是我们不想看到的。

解决办法:

hadoop提供配置参数“mapred.max.map.failures.percent”解决这个问题。如果一个Job有200 个map task,该参数设置为5 的话,则单个 job最多允许10 个map task(200 x 5% =10)失败,这是我想要的。
把下面配置放到mapred-site.xml文件中,重启jobtracker(hadoop-daemon.sh stop/start jobtracker ):

map端设置:

  1. <property>  
  2.   <name>mapred.max.map.failures.percent</name>  
  3.   <value>5</value>  
  4. </property>  
  5. <property>

reduce端设置:

  1. <property>  
  2.   <name>mapred.max.reduce.failures.percent</name>  
  3.   <value>5</value>  
  4. </property>  
  5. <property> 

代码中设置:

Configuration conf = new Configuration();//Configuration conf =HBaseConfiguration.create();

conf.set("mapred.max.map.failures.percent",10);

conf.set("mapred.max.reduce.failures.percent",10)

验证:上传5个文件,有一个是坏文件,设置10%运行失败,20%有报错但是程序继续运行通过,确认参数生效



猜你喜欢

转载自blog.csdn.net/qq_35440040/article/details/80282297