猪拉丁JOIN性能提升

时间:2014-07-02 10:52:02

标签: apache-pig

我需要一些提示,指导和/或您在大型数据集上执行Pig Script执行性能改进的经验。

我使用Pig(版本0.12)和Hive(版本0.11)来分析客户交易。在我的情况下,猪脚本将每天安排;主要数据包含大约500K到800K的记录(甚至高达100万),并且将有4个额外的数据集来帮助分析主要交易数据集,每个数据集将有大约50K的记录。

我听说在大数据处理中,我们应该避免使用JOIN,但在我的情况下我不能;我必须加入我的主要数据集和这4个额外的数据集,并做大量的IF-ELSE,FILTERS,JOINS等,以便每天生成一些交易分析报告。

当我尝试使用95K记录的主数据集时,花了大约2个小时。所以我很害怕尝试100万条记录的实际数据集。

如何提高猪脚本的性能?加入数据集的最佳方式?

1 个答案:

答案 0 :(得分:2)

听起来您的数据中发生的事情比您提到的要多。例如,您可能在两个关系中有多个JOIN键的实例(这可能是我的猜测),或者您的数据可能高度偏向于一个特定的键。首先,请查看this helpful chart,了解如何优化JOIN

由于您的附加数据集每个只有50K记录,因此它们应该能够适合内存,除非每个记录都很大。在这种情况下,您可以使用USING 'replicated'子句来避免减少阶段。