2017-05-25 73 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

不客氣,你很高興你解決了這個問題 –