2016-07-22 57 views
0

當使用如何使用Hbase的RowCounter類獲取表中的行數?

$ hbase org.apache.hadoop.hbase.mapreduce.RowCounter <tablename> 

我怎麼指定的MapReduce集羣使用我指定的表數行(每this link從hbase.apache網站)。

我在我的cmd行上運行了上面的命令,它返回了返回的行數。但是,它需要2個多小時才能返回計數,因爲它在本地主機上運行,​​而不是在hadoop羣集上運行。我花了10分鐘,從使用HBase的shell中運行:

count 'tablename' 

之前有人問,爲什麼我就不能運行在HBase的外殼這個CMD,我有一個用了1個小時,返回行數的表。我認爲使用這個命令會更快,因爲它會使用mapreduce作業返回行計數,而不是在hbase shell中運行,我不認爲它使用mapreduce。

+0

運行'''$ hbase org.apache.hadoop.hbase.mapreduce.RowCounter '''也很慢?您不需要指定MapReduce集羣,我認爲該作業在hbase regionservers上運行。 –

+0

@ sel-fish,thx爲您提供幫助。我可能會關閉這個問題。我發現我的用戶沒有權限寫/使用集羣,這就是爲什麼它可能使用本地主機。一旦我找到有權訪問集羣的用戶,上述命令花費15秒運行,而hbase shell運行10分鐘。 – Classified

回答

0

我不會承認用戶錯誤,但顯然我用來運行該命令的用戶無權訪問Hadoop集羣,因此沒有在集羣上創建map/reduce作業,因此創建了本地MR作業由命令。它完成了,但花了2個小時才完成。

當我發現有權限的用戶時,30秒內完成的作業和DID使用MR羣集來劃分和征服作業。

發佈這個答案,以防有人遇到同樣的問題我做過,但希望能節省他們的時間。

相關問題