發布時間: 2021-10-26 11:46:26
什么是HBase技術?HBase 是一個開源的、分布式、版本化、高可靠、高性能、面向列、可伸縮的NoSQL數據庫,它利用Hadoop分布式文件系統提供分布式數據存儲。
HBase訪問接口
Native Java API,最常規和高效的訪問方式,適合Hadoop MapReduce Job并行批處理HBase表數據
HBase Shell,HBase的命令行工具,最簡單的接口,適合HBase管理使用
Thrift Gateway,利用Thrift序列化技術,支持C++,PHP,Python等多種語言,適合其他異構系統在線訪問HBase表數據
REST Gateway,支持REST 風格的Http API訪問HBase, 解除了語言限制
Pig,可以使用Pig Latin流式編程語言來操作HBase中的數據,和Hive類似,本質最終也是編譯成MapReduce Job來處理HBase表數據,適合做數據統計
Hive,當前Hive的Release版本尚沒有加入對HBase的支持,但在下一個版本Hive 0.7.0中將會支持HBase,可以使用類似SQL語言來訪問HBase。
HBase運行模式
HBase的運行有三種模式:單機模式、偽分布式模式、分布式模式。
單機模式:在一臺計算機上安裝和使用HBase,不涉及數據的分布式存儲;
偽分布式模式:在一臺計算機上模擬一個小的集群;
分布式模式:使用多臺計算機實現物理意義上的分布式存儲。這里出于學習目的,我們只重點討論單機模式和偽分布式模式。
Hbase的應用場景
對象存儲:我們知道不少的頭條類、新聞類的的新聞、網頁、圖片存儲在HBase之中,一些病毒公司的病毒庫也是存儲在HBase之中
時序數據:HBase之上有OpenTSDB模塊,可以滿足時序類場景的需求
推薦畫像:特別是用戶的畫像,是一個比較大的稀疏矩陣,螞蟻的風控就是構建在HBase之上
時空數據:主要是軌跡、氣象網格之類,滴滴打車的軌跡數據主要存在HBase之中,另外在技術所有大一點的數據量的車聯網企業,數據都是存在HBase之中
OLAP:Kylin一個cube分析工具,底層的數據就是存儲在HBase之中,不少客戶自己基于離線計算構建cube存儲在hbase之中,滿足在線報表查詢的需求
消息/訂單:在電信領域、銀行領域,不少的訂單查詢底層的存儲,另外不少通信、消息同步的應用構建在HBase之上
Feeds流:典型的應用就是xx朋友圈類似的應用
NewSQL:之上有Phoenix的插件,可以滿足二級索引、SQL的需求,對接傳統數據需要SQL非事務的需求
為什么采用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 有非常相似的地方,一個數據行擁有一個可選擇的鍵和任意數量的列。表是疏松的存儲的,因此用戶可以給行定義各種不同的列,對于這樣的功能在大項目中非常實用,可以簡化設計和升級的成本。
上一篇: hbase屬于什么技術
下一篇: 組播和廣播有什么關系