bounty将在4天后过期。回答此问题可获得+50的声望奖励。ariels希望吸引更多人关注此问题:这要求一种可行的方法来报告InputFormat中的计数器,以便与其他作业指标一起显示。这应该是可能的!这是一个由文档支持的响应,并且在编写InputFormat时将在一般情况下工作,该InputFormat将与我们无法控制的第三方客户端代码一起工作。
我的Hadoop MapReduce自定义InputFormat
用于拆分输入,它执行了一些额外的工作,我想知道这些工作何时完成。本质上,我需要知道我的InputFormat
实现执行的某些操作的数量的一些指标。
将InputFormat
中的附加信息传递回MapReduce作业的最佳方式是什么?如果InputFormat
被传递了一个Job
示例,我可以只更新计数器;不幸的是,JobContext
Hadoop通道(我使用的是v2.10.x)不提供对计数器的访问。
我是否应该将这些信息存储在配置中(可以通过JobContext
访问),并允许作业稍后访问它?这似乎有点像组装。
2条答案
按热度按时间eimct9ow1#
我认为正确的方法是使用timeline service。
它是为存储application specific data而设计的。
要提取信息,可以使用rest API。
时间线实体时间线实体包含概念实体及其相关事件的 meta信息。
实体可以是应用程序、应用程序尝试、容器或任何用户定义的对象。
它包含将用于索引时间线存储中的实体的主筛选器。因此,用户/应用程序应仔细选择要存储为主筛选器的信息。
其余数据可以存储为未索引信息。每个实体都由EntityId和EntityType唯一标识。
lg40wkob2#
我最终修改了通过
JobContext
访问的配置,它工作了,但不太理想,因为它扭曲了配置的目的。