首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >hadoop映射缩减中的错误处理

hadoop映射缩减中的错误处理
EN

Stack Overflow用户
提问于 2015-08-27 16:48:30
回答 1查看 3K关注 0票数 3

在文档的基础上,有几种方法,如何在map减少中执行错误处理。以下是少数几个:

a.对每个失败记录使用枚举增量的自定义计数器。

记录错误并进行分析。

计数器提供失败记录的数量。但是,要获取失败记录的标识符(可能是其唯一的键),以及发生异常的详细信息,错误发生的节点--我们需要执行集中日志分析,并且有许多节点正在运行。Logstash是可用的。

除此之外,是否还有其他方法来处理错误场景,而不需要人工干预。欢迎使用任何工具、参考资料、最佳实践。

我认为同样的技术适用于任何分布式应用程序,只要做一些小改动。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-03 21:15:00

在处理错误处理时,只需问几个问题:

  1. 如果数据验证中发生错误,作业是否停止。大多数大数据用例都可以留下很少的坏记录。但是,如果您的usecase希望所有的记录都足够好,您应该做出这个决定,并采取以下步骤。 有时,让作业通过跳过坏记录来运行更好,或者并行地,使用下面的技术获得问题(错误),在您继续前进的过程中进行纠正和修改。
  2. 您希望错误发生,但只需要有限的时间。那么在停止整个作业之前,抛出异常的次数如下所示 对于Map任务:mapreduce.map.maxattempts属性 用于还原器任务:mapreduce.reduce.maxattempts 缺省值为4
  3. 处理格式错误的数据。 所以我们决定处理格式错误的数据。然后定义条件或记录是坏的。您可以使用计数器,以快速提供不良记录的数量。 在Mapper课上, 枚举温度{ OVER_10 } 内部地图法, //解析记录 如果(值> 10) {System.err.println(“输入温度超过100度:”+值);context.setStatus(“检测到可能损坏的记录:参见日志”);context.setStatus} 使用上述方法,将处理所有记录,并根据不良记录添加计数器。您可以在作业结束后、作业统计之后、通过web或from shell命令看到计数器值。 $mapred -counter '${fully_qualified_class_name}‘${enum_name} $mapred $mapred -counter job_1444655904448_17959 'com.YourMapper$Temperature’OVER_10 一旦你知道了问题的影响,即不良记录的数量,我们就需要知道“为什么是坏的”。为此,我们需要转到日志并搜索错误消息。 纱线提供日志聚合,并将作业id的所有日志和hdfs中的存储进行组合。它可以被使用 纱线原木-applicationId
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32255196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档