2012-12-17 41 views
0

在Hadoop中,我可以輕鬆創建Map/Reduce應用程序,以訪問和處理巨大文本文件和csv文件中的數據。我的問題是Hbase可以做同樣的事情並訪問如此龐大的文件,或者HBase有其他用途嗎?就像Hadoop一樣,HBase可以訪問文本文檔和CSV文檔嗎?

Hbase像查詢關係數據庫一樣運行查詢;所以,我很難理解HBase的優點,除非它可以像Hadoop那樣訪問大量的文本和csv文件。

+0

閱讀Google的BigTable白皮書和Amazon的Dynamo白皮書。他們很好地解釋了分佈式數據庫(如HBase)是什麼以及他們做了什麼。 –

回答

1

首先,Hbase只是一家商店。而且商店從不訪問任何東西。而是您訪問商店以獲取或放置數據。像其他數據存儲一樣,Hbase只有一項工作要做,存儲數據並在需要時隨時提供給您。您可以編寫MapReduce作業或順序Java程序等,將數據放入Hbase或從中讀取數據。這完全取決於你喜歡哪條路。

即將到來的問題的第二部分,Hbase從來沒有像傳統的關係數據庫一樣工作。從存儲數據到訪問數據開始,所有事情都完全不同。使用Hbase的優勢在於您可以將非常大量的數據存儲在其中,並具有隨機讀取/寫入權限。數據可以是任何類型的。文本,csv,tsv,二進制等等。但是,在繼續之前,您必須仔細考慮Hbase是否適合您,因爲一個尺寸不適合所有。

HTH

+0

如果我錯了,請糾正我,但從您的回覆中,我得出以下結論:a)將大型文本文件作爲字段放入Hbase表中大多數情況下沒有用。 b)HBase的真正優勢如下:在關係數據庫中,在某些情況下查詢巨大的表格可能需要數小時;但是在HBase中,儘管表格可能很大,但是您不會有需要幾個小時的查詢。 – user1888243

+0

對不起,但我看不到任何東西...... – Tariq

+0

每個Hbase單元都有一個閾值,就數據的大小而言,它的默認值爲100MB。雖然你可以改變它,但它可能會降低性能,因爲每個Hbase單元不僅僅是它所擁有的數據。它包含一些其他參數,如時間戳等。查詢所花費的時間主要取決於三件事:1 - 集羣部署的效率如何2。您的存儲結構的高級程度如何。3 - 您寫的代碼或腳本有多好獲取數據。它是Hbase的分佈式特性,它使得快速獲取。 – Tariq