Hbase面試問題與解答

1)解釋什麼是Hbase?

Hbase是一個面向列的數據庫管理系統,它運行在HDFS(Hadoop Distribute File System)之上。Hbase不是關係數據存儲,它不支持像SQL這樣的結構化查詢語言。

在Hbase中,主節點調節集群和區域服務器以存儲表的部分並操作數據上的工作。

2)解釋為什麼要使用Hbase?

  • 高容量存儲系統
  • 分佈式設計,以滿足大型桌子
  • 柱式商店
  • 水平可擴展
  • 高性能和可用性
  • Hbase的基本目標是數百萬列,數千個版本和數十億行
  • 與HDFS(Hadoop分發文件系統)不同,它支持隨機實時CRUD操作

3)提到Hbase的關鍵組件是什麼?

  • Zookeeper:它負責客戶端和Hbase Maser之間的協調工作
  • Hbase Master: Hbase Master監控Region Server
  • RegionServer: RegionServer監視Region
  • Region:它包含在內存數據存儲(MemStore)和Hfile中。
  • 目錄表:目錄表由ROOT和META組成

4)解釋Hbase是由什麼組成的?

  • Hbase由一組表組成
  • 每個表都包含與傳統數據庫類似的行和列
  • 每個表必須包含定義為主鍵的元素
  • Hbase列表示對象的屬性

5)提到Hbase中有多少操作命令?

Hbases中的操作命令大約有五種類型

  • 得到
  • 刪除
  • 掃描
  • 增量

6)解釋Hbase中的WAL和Hlog是什麼?

WAL(Write Ahead Log)類似於MySQL BIN日誌; 它記錄了數據中發生的所有變化。它是Hadoop的標準序列文件,它存儲HLogkey。這些密鑰由序列號和實際數據組成,用於在服務器崩潰後重放尚未保留的數據。因此,在服務器故障的現金中,WAL作為生命線工作並檢索丟失的數據。

7)什麼時候應該使用Hbase?

  • 數據量巨大:當你有數噸和數百萬條記錄可供使用時
  • 完全重新設計:當您將RDBMS移至Hbase時,您將其視為完整的重新設計,然後僅僅更改端口
  • SQL-Less命令:
    您有幾個功能,如事務; 內連接,類型列等
  • 基礎設施投資:您需要有足夠的Hbase集群才能真正發揮作用

8)在Hbase中什麼是列族?

列族包括Hbase中的基本物理存儲單元,其中應用了壓縮等功能。

9)解釋什麼是行鍵?

行鍵由應用程序定義。由於組合鍵由rowkey預先固定,因此它使應用程序能夠定義所需的排序順序。它還允許對單元進行邏輯分組,並確保具有相同rowkey的所有單元共同位於同一服務器上。

10)解釋Hbase中的刪除?提到Hbase中三種類型的墓碑標記是什麼?

當您刪除Hbase中的單元格時,實際上不會刪除數據,但會設置邏輯刪除標記,使刪除的單元格不可見。刪除Hbase實際上是在壓縮過程中刪除的。

有三種類型的墓碑標記:

  • 版本刪除標記:對於刪除,它標記列的單個版本
  • 列刪除標記:對於刪除,它標記列的所有版本
  • 族刪除標記:對於刪除,它標記列族的所有列

11)解釋Hbase如何實際刪除一行?

在Hbase中,無論你寫什麼都將從RAM存儲到磁盤,這些磁盤寫入是不可改變的禁止壓縮。在Hbase中的刪除過程中,主要的壓縮過程刪除標記,而次要壓縮則不會。在正常刪除中,它會導致刪除邏輯刪除標記 - 它們表示的這些刪除數據在壓縮過程中被刪除。

此外,如果刪除數據並添加更多數據,但時間戳早於邏輯刪除時間戳,則刪除/邏輯刪除標記可能會掩蓋進一步的獲取,因此在主要壓縮之前您將不會收到插入的值。

12)解釋如果在已佔用的數據庫上更改列族的塊大小會發生什麼?

更改列族的塊大小時,新數據佔用新塊大小,而舊數據保留在舊塊大小內。在數據壓縮期間,舊數據將採用新的塊大小。刷新的新文件具有新的塊大小,而現有數據將繼續正確讀取。在下一次主要壓縮之後,所有數據都應轉換為新的塊大小。

13)提到Hbase和關係數據庫之間的區別?

  • HBase的關係型數據庫它是無架構的
  • 它是一個面向列的數據存儲
  • 它用於存儲非規範化數據
  • 它包含稀疏填充的表
  • 自動分區在Hbase中完成
  • 它是一個基於模式的數據庫
  • 它是一個面向行的數據存儲
  • 它用於存儲規範化數據
  • 它包含精簡表
  • 沒有這樣的規定或內置支持分區


分享到:


相關文章: