一、HBase的特點是什麼 1.HBase一個分散式的基於列式存儲的資料庫,基於hadoop的hdfs存儲,zookeeper進行管理。 2.HBase適合存儲半結構化或非結構化數據,對於數據結構欄位不夠確定或者雜亂無章很難按一個概念去抽取的數據。 3.HBase為null的記錄不會被存儲. 4.基 ...
一、HBase的特點是什麼 1.HBase一個分散式的基於列式存儲的資料庫,基於hadoop的hdfs存儲,zookeeper進行管理。 2.HBase適合存儲半結構化或非結構化數據,對於數據結構欄位不夠確定或者雜亂無章很難按一個概念去抽取的數據。 3.HBase為null的記錄不會被存儲. 4.基於的表包含rowkey,時間戳,和列族。新寫入數據時,時間戳更新,同時可以查詢到以前的版本. 5.HBase是主從架構。Hmaster作為主節點,Hregionserver作為從節點。 二、HBase和hive的區別 註:(參考HIVE和hbase區別) 三、描述HBase的rowkey的設計原則 註:(描述HBase的rowkey的設計原則 ) 四、描述HBase中scan和get的功能以及實現的異同 HBase的查詢實現只提供兩種方式:
1、按指定RowKey 獲取唯一一條記錄,get方法(org.apache.hadoop.hbase.client.Get)
Get 的方法處理分兩種 : 設置了ClosestRowBefore 和沒有設置的rowlock .主要是用來保證行的事務性,即每個get 是以一個row 來標記的.一個row中可以有很多family 和column.2、按指定的條件獲取一批記錄,scan方法(org.apache.Hadoop.hbase.client.Scan)實現條件查詢功能使用的就是scan 方式.
1)scan 可以通過setCaching 與setBatch 方法提高速度(以空間換時間);
2)scan 可以通過setStartRow 與setEndRow 來限定範圍([start,end)start 是閉區間,
end 是開區間)。範圍越小,性能越高。
3)、scan 可以通過setFilter 方法添加過濾器,這也是分頁、多條件查詢的基礎。 五、描述如何解決HBase中region太小和region太大帶來的衝突 Region過大會發生多次compaction,將數據讀一遍並重寫一遍到hdfs 上,占用io,region過小會造成多次split,region 會下線,影響訪問服務,調整hbase.hregion.max.filesize 為256m. 六、簡述HBase中compact用途是什麼,什麼時候觸發,分為哪兩種,有什麼區別,有哪些相關配置參數? 在hbase中每當有memstore數據flush到磁碟之後,就形成一個storefile,當storeFile的數量達到一定程度後,就需要將 storefile 文件來進行 compaction 操作。Compact 的作用:
1>.合併文件
2>.清除過期,多餘版本的數據
3>.提高讀寫數據的效率
HBase 中實現了兩種 compaction 的方式:minor and major. 這兩種 compaction 方式的區別是:
1、Minor 操作只用來做部分文件的合併操作以及包括 minVersion=0 並且設置 ttl 的過
期版本清理,不做任何刪除數據、多版本數據的清理工作。
2、Major 操作是對 Region 下的HStore下的所有StoreFile執行合併操作,最終的結果是整理合併出一個文件。