【发布时间】:2017-04-30 05:16:38
【问题描述】:
我有一个包含 140 亿条记录(大约 1TB 大小)的 Hive 表和另一个包含 8 亿条记录(2GB 大)的 Hive 表。我想加入他们,我的策略应该是什么? 我有一个 36 节点的集群。我正在使用 50 个执行程序,每个执行程序 30 GB。
据我所知,我的选择是:
- 广播 2 GB 表
- 只是盲目加入2张桌子(我已经这样做了,大约需要4个小时才能完成)
如果我重新分区两个表并加入它们,它会提高性能吗? 我观察到,在第二种方法中,最后 20 个任务非常慢,我希望它们正在处理具有更多数据(倾斜数据)的分区。
【问题讨论】:
-
你看过提供的答案了吗?
标签: apache-spark apache-spark-sql