- 27
- 0
- 约2.83千字
- 约 3页
- 2021-11-29 发布于江苏
- 举报
经常看到一些 Hive优化的建议中说当小表与大表做关联时,把小表写在前面,
这样可以使Hive的关联速度更快,提到的原因都是说因为小表可以先放到内存
中,然后大表的每条记录再去内存中检测,最终完成关联查询。这样的原因看似
合理,但是仔细推敲,又站不住脚跟。
多小的表算小表?如果所谓的小表在内存中放不下怎么办?我用2个只有几条
记录的表做关联查询,这应该算是小表了,在查看reduce的执行日志时依然是
有写磁盘的操作的。实际上reduce在接收全部map的输出后一定会有一个排序
所有键值对并合并写入磁盘文件的操作。写入磁盘(spill)有可能是多次的,
因此有可能会生成多个临时
原创力文档

文档评论(0)