重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
HBase 是典型的 NoSQL 數據庫,通常被描述成稀疏的、分布式的、持久化的,由行鍵、列鍵和時間戳進行索引的多維有序映射數據庫,主要用來存儲非結構化和半結構化的數據。因為 HBase 基于 Hadoop 的 HDFS 完成分布式存儲,以及 MapReduce 完成分布式并行計算,所以它的一些特點與 Hadoop 相同,依靠橫向擴展,通過不斷增加性價比高的商業服務器來增加計算和存儲能力。
阿圖什網站建設公司創新互聯,阿圖什網站設計制作,有大型網站制作公司豐富經驗。已為阿圖什數千家提供企業網站建設服務。企業網站搭建\外貿網站建設要多少錢,請找那個售后服務好的阿圖什做網站的公司定做!
HBase 雖然基于 Bigtable 的開源實現,但它們之間還是有很多差別的,Bigtable 經常被描述成鍵值數據庫,而 HBase 則是面向列存儲的分布式數據庫。
下面介紹 HBase 具備的顯著特性,這些特性讓 HBase 成為當前和未來最實用的數據庫之一。
容量巨大
HBase 的單表可以有百億行、百萬列,可以在橫向和縱向兩個維度插入數據,具有很大的彈性。
當關系型數據庫的單個表的記錄在億級時,查詢和寫入的性能都會呈現指數級下降,這種龐大的數據量對傳統數據庫來說是一種災難,而 HBase 在限定某個列的情況下對于單表存儲百億甚至更多的數據都沒有性能問題。
HBase 采用 LSM 樹作為內部數據存儲結構,這種結構會周期性地將較小文件合并成大文件,以減少對磁盤的訪問。
擴展性強
HBase 工作在 HDFS 之上,理所當然地支持分布式表,也繼承了 HDFS 的可擴展性。HBase 的擴展是橫向的,橫向擴展是指在擴展時不需要提升服務器本身的性能,只需添加服務器到現有集群即可。
HBase 表根據 Region 大小進行分區,分別存在集群中不同的節點上,當添加新的節點時,集群就重新調整,在新的節點啟動 HBase 服務器,動態地實現擴展。這里需要指出,HBase 的擴展是熱擴展,即在不停止現有服務的前提下,可以隨時添加或者減少節點。
高可靠性
HBase 運行在 HDFS 上,HDFS 的多副本存儲可以讓它在岀現故障時自動恢復,同時 HBase 內部也提供 WAL 和 Replication 機制。
WAL(Write-Ahead-Log)預寫日志是在 HBase 服務器處理數據插入和刪除的過程中用來記錄操作內容的日志,保證了數據寫入時不會因集群異常而導致寫入數據的丟失;而 Replication 機制是基于日志操作來做數據同步的。
nosql是not only sql的意思。是近今年新發展起來的存儲系統。當前使用最多的是key-value模型,用于處理超大規模的數據。
以下是摘自百度百科中的一部分
NoSQL 是非關系型數據存儲的廣義定義。它打破了長久以來關系型數據庫與ACID理論大一統的局面。NoSQL 數據存儲不需要固定的表結構,通常也不存在連接操作。在大數據存取上具備關系型數據庫無法比擬的性能優勢。該術語在 2009 年初得到了廣泛認同。
當今的應用體系結構需要數據存儲在橫向伸縮性上能夠滿足需求。而 NoSQL 存儲就是為了實現這個需求。Google 的BigTable與Amazon的Dynamo是非常成功的商業 NoSQL 實現。一些開源的 NoSQL 體系,如Facebook 的Cassandra, Apache 的HBase,也得到了廣泛認同。從這些NoSQL項目的名字上看不出什么相同之處:Hadoop、Voldemort、Dynomite,還有其它很多。
NoSQL與關系型數據庫設計理念比較
關系型數據庫中的表都是存儲一些格式化的數據結構,每個元組字段的組成都一樣,即使不是每個元組都需要所有的字段,但數據庫會為每個元組分配所有的字段,這樣的結構可以便于表與表之間進行連接等操作,但從另一個角度來說它也是關系型數據庫性能瓶頸的一個因素。而非關系型數據庫以鍵值對存儲,它的結構不固定,每一個元組可以有不一樣的字段,每個元組可以根據需要增加一些自己的鍵值對,這樣就不會局限于固定的結構,可以減少一些時間和空間的開銷。
Web1.0的時代,數據訪問量很有限,用一夫當關的高性能的單點服務器可以解決大部分問題。
隨著Web2.0的時代的到來,用戶訪問量大幅度提升,同時產生了大量的用戶數據。加上后來的智能移動設備的普及,所有的互聯網平臺都面臨了巨大的性能挑戰。
NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是SQL”,泛指非關系型的數據庫。
NoSQL 不依賴業務邏輯方式存儲,而以簡單的key-value模式存儲。因此大大的增加了數據庫的擴展能力。
Memcache Memcache Redis Redis MongoDB MongoDB 列式數據庫 列式數據庫 Hbase Hbase
HBase是Hadoop項目中的數據庫。它用于需要對大量的數據進行隨機、實時的讀寫操作的場景中。
HBase的目標就是處理數據量非常龐大的表,可以用普通的計算機處理超過10億行數據,還可處理有數百萬列元素的數據表。
Cassandra Cassandra
Apache Cassandra是一款免費的開源NoSQL數據庫,其設計目的在于管理由大量商用服務器構建起來的龐大集群上的海量數據集(數據量通常達到PB級別)。在眾多顯著特性當中,Cassandra最為卓越的長處是對寫入及讀取操作進行規模調整,而且其不強調主集群的設計思路能夠以相對直觀的方式簡化各集群的創建與擴展流程。
主要應用:社會關系,公共交通網絡,地圖及網絡拓譜(n*(n-1)/2)
hbase概念:??非結構化的分布式的面向列存儲非關系型的開源的數據庫,根據谷歌的三大論文之一的bigtable??高寬厚表??作用:??為了解決大規模數據集合多重數據種類帶來的挑戰,尤其是大數據應用難題。
能干什么:??存儲大量結果集數據,低延遲的隨機查詢。
sql:??結構化查詢語言??nosql:??非關系型數據庫,列存儲和文檔存儲(查詢低延遲),hbase是nosql的一個種類,其特點是列式存儲。
非關系型數據庫--列存儲(hbase)??非關系型數據庫--文檔存儲(MongoDB)??非關系型數據庫--內存式存儲(redis)??非關系型數據庫--圖形模型(graph)??hive和hbase區別???Hive的定位是數據倉庫,雖然也有增刪改查,但其刪改查對應的是整張表而不是單行數據,查詢的延遲較高。
其本質是更加方便的使用mr的威力來進行離線分析的一個數據分析工具。
HBase的定位是hadoop的數據庫,電腦培訓發現是一個典型的Nosql,所以HBase是用來在大量數據中進行低延遲的隨機查詢的。
hbase運行方式:??standalonedistrubited??單節點和偽分布式???單節點:單獨的進程運行在同一臺機器上??hbase應用場景:??存儲海量數據低延遲查詢數據??hbase表由多行組成??hbase行一行在hbase中由行健和一個或多個列的值組成,按行健字母順序排序的存儲。
NoSQL太火,冒出太多產品了,保守估計也成百上千了。
互聯網公司常用的基本集中在以下幾種,每種只舉一個比較常見或者應用比較成功的例子吧。
1. In-Memory KV Store : Redis
in memory key-value store,同時提供了更加豐富的數據結構和運算的能力,成功用法是替代memcached,通過checkpoint和commit log提供了快速的宕機恢復,同時支持replication提供讀可擴展和高可用。
2. Disk-Based KV Store: Leveldb
真正基于磁盤的key-value storage, 模型單一簡單,數據量不受限于內存大小,數據落盤高可靠,Google的幾位大神出品的精品,LSM模型天然寫優化,順序寫盤的方式對于新硬件ssd再適合不過了,不足是僅提供了一個庫,需要自己封裝server端。
3. Document Store: Mongodb
分布式nosql,具備了區別mysql的最大亮點:可擴展性。mongodb 最新引人的莫過于提供了sql接口,是目前nosql里最像mysql的,只是沒有ACID的特性,發展很快,支持了索引等特性,上手容易,對于數據量遠超內存限制的場景來說,還需要慎重。
4. Column Table Store: HBase
這個富二代似乎不用贅述了,最大的優勢是開源,對于普通的scan和基于行的get等基本查詢,性能完全不是問題,只是只提供裸的api,易用性上是短板,可擴展性方面是最強的,其次坐上了Hadoop的快車,社區發展很快,各種基于其上的開源產品不少,來解決諸如join、聚集運算等復雜查詢。