2016-08-02 68 views
0

我開始學習hbase,我不明白它是如何線性縮放的。hbase是否真的線性縮放?

問題是,在安裝hbase之前,你必須有一個hdfs集羣。 HDFS集羣有一個主節點,它在整個集羣中只能有一個,所以它是一個瓶頸。當然,我們可以運行另外1個主節點(可以只運行1個主節點),但它將處於待機狀態。 據我所知,hbase使用HDFS集羣來存儲數據。因此,對我而言,從邏輯上講,運行多個Hmaster是沒有意義的,因爲所有請求都會發送到hdfs活動主服務器,如果請求太多,性能會受到影響。

此外,我不明白我們是否需要將hbase安裝在與hdfs相同的節點上或單獨安裝。如果我們與HDFS分開運行hbase,有什麼好處。 至於我在邏輯上是在同一節點上安裝HBase的簇與HDFS如下面的例子:

HDFS active master - HMaster 
HDFS standby master - HMaster backup 
HDFS Data node - HRegion server 

對我來說是最邏輯結構,因爲如果我們從HMASTER分離HDFS主然後概率鬆動hbase集羣將是兩倍大。

如果有人能分享有關所有這些東西的信息,我將非常高興。因爲我真的不明白hbase可以線性縮放以及它如何與hdfs協同工作。

+0

您可以聯合HDFS,它消除了單個NN問題。請記住,NN僅用於元操作(例如,創建分區/ WAL),如果您正確配置它(只在足夠大的WAL,分割和壓縮大分區上旋轉),hbase沒有做太多的工作。 –

+0

我在斷開hdfs主服務器的同時,試圖從數據節點讀取數據,並向我顯示錯誤。據我瞭解,當我們從數據節點讀取/寫入某些內容時,他們首先向主節點詢問一些信息。如果主節點死了,那麼我們就無法使用集羣。我可能是錯的,但它是我的假設 – Alexandr

+0

是的你是對的,但這並不影響可擴展性,只有容錯性。當你使用HA HDFS時,你不會有這個問題。見https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html –

回答

1

首先,如果您希望可以在任何支持的文件系統上安裝HBase。不強制使用它在HDFS,但使用它與HDFS給的優勢,它像 故障taulrence,數據複製,校驗等 這就是爲什麼我們建議使用HBase的在HDFS

而且雖然有瓶頸在hdfs中的namenode,但它並不影響HBase的效率,因爲它並不是每個操作的內部工作都依賴於hdfs的namenode,例如Region服務器爲讀取和寫入服務數據。在訪問數據時,客戶端直接與HBase RegionServers進行通信,而區域分配,DDL(創建,刪除表)操作由HBase主進程處理。這意味着數據的讀寫與表的創建和刪除無關。

你可以參考https://www.mapr.com/blog/in-depth-look-hbase-architecture瞭解更多關於hdfs的信息。

另請參見lars george的HBase網絡研討會。 https://m.youtube.com/watch?v=_HLoH_PgrLk

希望這會消除你的疑惑。

+0

感謝您的解釋 – Alexandr

+0

歡迎:-) @Alexandr –