2017-05-25 55 views
0

我正在hbase集成外部配置单元表和另一个配置单元表之间执行一个非常简单的连接。我能够单独查询它们,但不能一起使用连接。hbase配置单元加入失败

SELECT c.rowkey 
FROM 
lookup_customerstatuslookup c --hbase integrated external hive table 
JOIN customerstatus b   -- hive table 
on c.rowkey = b.customerstatuskey 

以下是以色调显示的错误信息。它甚至没有进展来绘制阶段。 enter image description here Not ending with any error message

我没有任何线索如何进一步调试它。

+0

配置单元错误可能令人难以置信地无用。日志图像中没有错误消息,完整日志中是否有错误? – Andrew

+0

我测试了hbase集成配置单元与hbase集成配置单元表之间的连接,并且其失败的日志与上面相同。 –

+0

@Andrew有时如果更改查询有点像select count(*),那么它会在jobconf.xml行后显示一个错误。执行失败,退出状态为2.获取错误信息。任务失败。任务ID:阶段-4。现在这个阶段4是我在解释计划中看到的第一步。这个错误信息 –

回答

0

由于Hive类似SQL的特性,使用存储的结构化数据构造我们的作业更简单也更容易,因此证明了它在Hadoop中的广泛使用。虽然这是事实,但另一个事实值得关注:当Hive连接中有大量数据集时,面临的频繁困境是由于内存不足或Java堆空间导致的错误。

增加堆大小

已经包括了地图加入和/或EQUI加入,你可能想看看事情之一是增加的MapReduce的子任务堆大小后。 您可以将属性'mapred.child.java.opts'设置为更高的值。例如,要将堆大小增加到1GB,请将其设置为

mapred.child.java.opts= -Xmx1024m 
+0

感谢您的答案,但问题与我的情况下的记忆无关。两个表都有不到1k行,所以优化器选择了地图连接。当hbase集成配置表配置引入连接时,某种方式映射连接失败。我接受了Cloudera的问题,他们建议禁用地图边连接。 –

+0

不客气,你很高兴你解决了这个问题 –