我是hive和hadoop的新手,只是在Hive上创建了一个表(orc fileformat)。我现在正在尝试在我的hive表(位图索引)上创建索引。每次运行索引构建查询时,hive都会启动map reduce作为索引。在某些时候,我的地图减少作业只是挂起,我的一个节点(在多次重试中随机不同,因此它可能不是节点)失败。我尝试将我的mapreduce.child.java.opts
增加到2048mb,但这让我错误地使用了比可用内存更多的内存,因此我将mapreduce.map.memory.mb
和mapreduce.reduce.memory.mb
增加到8GB。所有其他配置都保留为默认值。
任何有关我错过的配置的帮助都会非常感激。
仅仅是为了上下文,我试图索引一个包含24亿行的表,其大小为450GB,并且有3个分区。
答案 0 :(得分:2)
首先,请确认索引是否适用于小规模的数据。假设已完成,Hive运行地图减少作业的方式取决于许多问题。 1.查询类型(使用count(*)或只选择*)。 2.此外,还原器在执行阶段分配的内存量(由 hive.exec.reducers.bytes.per.reducer 属性控制)。
在您的护理中,它可能是第二点。 给出运行程序的比例,请相应地计算内存要求。这个post有更多信息。快乐的学习和编码