NoSql --之Hbase庫
轉載:
HBase是Apache Hadoop中的一個子項目,Hbase依托于Hadoop的HDFS作為最基本存儲基礎單元,通過使用hadoop的DFS工具就可以看到這些這些數據 存儲文件夾的結構,還可以通過Map/Reduce的框架(算法)對HBase進行操作,如右側的圖所示:
HBase在產品中還包含了Jetty,在HBase啟動時采用嵌入式的方式來啟動Jetty,因此可以通過web界面對HBase進行管理和查看當前運行的一些狀態,非常輕巧。
為什么采用HBase?
HBase 不同于一般的關系數據庫,它是一個適合于非結構化數據存儲的數據庫.所謂非結構化數據存儲就是說HBase是基于列的而不是基于行的模式,這樣方面讀寫你的大數據內容。
HBase是介于Map Entry(key & value)和DB Row之間的一種數據存儲方式。就點有點類似于現在流行的Memcache,但不僅僅是簡單的一個key對應一個 value,你很可能需要存儲多個屬性的數據結構,但沒有傳統數據庫表中那么多的關聯關系,這就是所謂的松散數據。
簡單來說,你在HBase中的表創建的可以看做是一張很大的表,而這個表的屬性可以根據需求去動態增加,在HBase中沒有表與表之間關聯查詢。你只需要 告訴你的數據存儲到Hbase的那個column families 就可以了,不需要指定它的具體類型:char,varchar,int,tinyint,text等等。但是你需要注意HBase中不包含事務此類的功 能。
Apache HBase 和Google Bigtable 有非常相似的地方,一個數據行擁有一個可選擇的鍵和任意數量的列。表是疏松的存儲的,因此用戶可以給行定義各種不同的列,對于這樣的功能在大項目中非常實用,可以簡化設計和升級的成本。