如何避免Hadoop PIG和Hive中的不良记录?

rin*_*ain 1 hadoop hive apache-pig

嗨,我是Hadoop的新手,我发现可以使用SkipBadRecord类在Java映射中减少任何输入格式的不良记录,所以我只想知道Pig和Hive都可行吗?

San*_*ngh 6

Hive中的不良记录处理

要过滤配置单元中的不良记录,可以在查询中启用跳过模式。跳过模式的配置单元配置为:

SET mapred.skip.mode.enabled = true;
Run Code Online (Sandbox Code Playgroud)

在配置单元查询之前,需要设置以上命令。您还可以通过提供以下参数来限制配置:

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
Run Code Online (Sandbox Code Playgroud)

有关此的更多详细信息,请参见此链接。

猪中的不良记录处理

Pig本身旨在处理不良记录。当处理千兆字节或TB级的数据时,至少有一行损坏或会导致意外结果的可能性不计其数。一个例子是除以零,即使没有记录被认为分母为零。导致整个工作失败一次失败的记录是不好的。为避免这些失败,Pig插入一个空值,发出警告,然后继续进行处理。这样,工作仍然完成。警告汇总并在最后报告为计数。您应该检查警告,以确保一些记录的失败在您的工作中是可以接受的。如果需要了解有关警告的更多详细信息,可以通过在命令行上传递-w来关闭聚合。

请参阅有关猪有用的链接