我在部分数据集上测试最新的Hive。我只通过自定义SerDe阅读了几GB的日志文件。
当我运行简单的Group By查询(4个MR作业)时,我会收到诸如
之类的日志一直只在8核服务器上使用一个核心。有点浪费......
我已激活并行选项但仍无法并行化。我已将减少作业的数量设置为8。
我的期望是,由于我的数据集已经过分区(=>不同的文件),因此至少有一些map-reduce阶段可以在这些文件上并行运行。
我的理解错了吗?是否有一种特定的方式来编写查询?
由于
答案 0 :(得分:2)
如果你只做一个简单的GROUP BY,唯一真正的处理是比较,这并不难。那就是说,你跑了多少个地图制作者?任务分析器不会并行运行。相反,hadoop银行在多个任务工作者运行并行化。因此,如果您每个节点只运行一个地图任务,则不会看到任何内容。
另一种可能性是,因为你在做一个GROUP BY,你在IO中而不是在处理器上,所以不需要将多个核心带入其中。