您好我是Hadoop的新手我发现使用SkipBadRecord类可以在Java map reduce中跳过任何输入格式的badrecords,所以我只想知道Pig和Hive中的可能性如何?
答案 0 :(得分:6)
Hive中的错误记录处理
要过滤配置单元中的错误记录,可以在查询中启用跳过模式。跳过模式的Hive配置为:
SET mapred.skip.mode.enabled = true;
您需要在hive查询之前设置上述命令。 您还可以通过提供以下参数来限制配置:
SET mapred.map.max.attempts = 100;
SET mapred.reduce.max.attempts = 100;
SET mapred.skip.map.max.skip.records = 30000;
SET mapred.skip.attempts.to.start.skipping = 1
有关此内容的详细信息,请参阅此link
猪的坏记录处理
Pig本身就是为处理不良记录而设计的。 处理千兆字节或太字节数据时,几乎至少有一行损坏或会导致意外结果的可能性非常大。一个例子是除零,即使没有记录在分母中有零。导致整个工作失败的一个坏记录并不好。为了避免这些失败,Pig插入一个null,发出警告并继续处理。这样,工作仍然完成。警告汇总并在最后报告为计数。您应该检查警告,以确保您的工作中可以接受几条记录的失败。如果您需要了解有关警告的更多详细信息,可以通过在命令行上传递-w来关闭聚合。
请参阅与{
>相关的this有用链接
答案 1 :(得分:1)
在蜂巢中,您可以通过利用此属性的最佳值来实现
设置mapreduce.map.skip.maxrecords = ??
答案 2 :(得分:0)
mapreduce.reduce.maxattempts
已替换为mapred.reduce.max.attempts
,默认为4,因此不应将其设置为100,这似乎很高。
mapred.map.max.attempts
已替换为mapreduce.map.maxattempts
,默认为4,因此不应将其设置为100,这似乎很高。
mapred.skip.attempts.to.start.skipping
已被mapreduce.task.skip.start.attempts
取代,默认为2,这似乎已经足够了。
mapred.skip.map.max.skip.records
已替换为mapreduce.map.skip.maxrecords
。
mapred.skip.mode.enabled
似乎不再可用,因此可能不需要设置。
因此,唯一可以提供帮助的设置如下:
SET mapreduce.map.skip.maxrecords = 30000;