HBase簡介及應用

2021-10-07 13:38:58 字數 2089 閱讀 5819

一、關鍵字

分布式儲存系統、開源、基於列模式、適合非結構化

二、特性

海量儲存,資料可達pb級別

列式儲存,一種nosql資料庫

極易擴充套件,分布式資料庫

高併發,多個pc同時處理

稀疏,指hbase列的靈活性,可以指定任意多的列

三、什麼適合用hbase?

hbase不適合解決所有的問題:

資料庫量要足夠多, 如果有十億及百億行資料, 那麼hbase是乙個很好的選項, 如果只有幾百萬行甚至不到的資料量,rdbms是乙個很好的選擇, 因為資料量小的話, 真正能工作的機器少, 剩餘的機器處於空閒的狀態

不需要輔助索引,靜態型別的列,事務等特性

保證硬體資源足夠,集群中節點數少於5個,都不能表現的很好

四、應用場景

五、hbase架構體系

六、應用開發

批量建立表

在建立表時只要指定表名、列簇就可以建立了, 當然在實際生產環境中通常會根據業務場景指定好錶的預分割槽,這樣可以防止資料存入到乙個region上,造成熱點問題。

/* 判斷表是否存在 */

def i***ists(tablename: string): boolean =

result

} def createtable(tablename: string, columnfamilys: array[string]) =

//建立表

admin.createtable(descriptor)

//建立分割槽表,使資料均勻分布到各個伺服器上

val splitkesy = array(2, 4, 6, 8).map(bytes.tobytes(_))

admin.createtable(descriptor, splitkesy)

println("create successful!!")}}

2. 資料寫入

資料寫入可以單條寫入也可以批量寫入, 實際環境中通常是批量寫入,這樣會提高寫入效率

//向hbase表中插入資料, 更新操作一樣

def inserttable(tablename: string, rowkey: string, columnfamily: string, column: string, value: string) =

3. 資料更新

資料的更新和資料插入**是一樣的, 邏輯是不存在的列會建立插入, 存在則會覆蓋掉原有的資料。

//向hbase表中插入資料, 更新操作一樣

def inserttable(tablename: string, rowkey: string, columnfamily: string, column: string, value: string) =

4. 資料刪除

資料刪除就是根據表名、rowkey、還有對應的列簇和列刪除即可。

//刪除某條記錄

def deleterecord(tablename: string, rowkey: string, columnfamily: string, column: string) =

5. 資料查詢

資料查詢通常根據rowkey範圍進行掃瞄查詢,這樣效率最高

//獲取hbase表中的資料

def scandatafromhtable(tablename: string, columnfamily: string, column: string) = ,列簇:$:$,value:$")

result = scanner.next()

}//通過scan取完資料後,記得要關閉resultscanner,否則regionserver可能會出現問題(對應的server資源無法釋放)

scanner.close()

table.close()

}

查詢優化的點有

以上就是本文的全部內容。

HBase簡介及使用

由google發表的關於bigtable的 啟發,使得hbase成為了基於hdfs開發的 面向列的 可伸縮的 開源的分布式資料庫,並且它提供了隨機實時讀寫功能。hbase作為hadoop生態系統中的結構化儲存工具,hdfs為它提供了高可靠性的底層儲存支援,hadoop mapreduce為它提供了高...

HBase簡介及HBase Shell操作

二 hbase shell操作 hbase的安裝可以參照 hbase偽分布式搭建 hbase是乙個高可靠性 高效能 面向列 可伸縮的nosql分布式資料儲存系統,利用hbase可實現對大型資料的實時 隨機的讀寫訪問。hbase 依賴於 hdfs 做底層的資料儲存 依賴於 mapreduce做資料計算...

HBASE簡介及部分操作例項

一 hbase簡介 hbase是乙個分布式的 面向列的開源資料庫,其名字 於hadoop資料庫 hadoop database hbase不同於一般的關聯式資料庫,它是乙個適合於非結構化資料儲存的資料庫,隸屬於apache的hadoop專案。二 hbase相關概念 表 table hbbase同樣是...