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中完成
- 它是一個基於模式的數據庫
- 它是一個面向行的數據存儲
- 它用於存儲規範化數據
- 它包含精簡表
- 沒有這樣的規定或內置支持分區
閱讀更多 飛禹德蒙 的文章