「HBase筆記」從洗襪子到hbase(hbase是什麼鬼東西)

2021-01-22 跟著巨嬰去逆襲

HBase簡介:

1、HBase是 bigtable的開源 java版本。基於 hdfs的資料庫系統,提供高可靠性,高性能,列存儲,可擴展性,實時讀寫 nosql。

2、介於 nosql和 RDBMS之間,數據只能通過主鍵(row key)和主鍵的range進行檢索。

3、只支持單行事務(可以通過hive支持實現複雜的操作,比如多表join)。

4、通常用於存儲結構化和半結構化鬆散數據。

5、Hbase查詢數據功能非常簡單,不支持像join這樣的複雜操作和複雜事務(在行級別)。

6、支持在 Hbase中的數據類型: byte []

7、像 hadoop一樣, Hbase的目標主要是通過不斷增加廉價的商業伺服器來提高計算和存儲能力。

HBase中的表通常具有以下特徵:

1、大型:一張表可以有十億行,數百萬列

2、稀疏:對於空(null)列,不會佔用存儲空間,因此可以將表設計得非常稀疏。

3、面向列:面向列(族)的存儲和權限控制,列(族)獨立檢索。

為何使用 HBase

1、Hadoop是 hbase存儲的基礎。這幾年興起的 Hadoop擁有高性能、高穩定性、易管理的大數據應用平臺。基於 Hadoop衍生出大量優秀的開放源碼項目, Hadoop即將成為大數據的代名詞。

2、Hadoop實現了一種分布式文件系統(HDFS)。HDFS具有高度容錯的特性,可以部署在廉價的硬體上,並且為訪問應用程式數據提供高吞吐量,適合那些擁有超大數據集的應用程式。一個 Hadoop基礎意味著 HBase天生就具有超強的可擴展性。

3、HBase採用 Key/Value存儲方式,也就是說,即使隨著數據量的增加,查詢的性能也很少會下降。HBase又是一個列資料庫(與傳統的行式資料庫相比),當表中的欄位很多時,甚至可以將其中一些欄位放置在集群的一部分計算機上,將另一些欄位放置在另一部分計算機上,這樣就完全分散了負載壓力。但是,如此複雜的存儲結構和分布式存儲方式的代價就是:即使只存儲少量數據,也不會太快。因此,hbase並不快,只是在數據量大時慢得不明顯。

4、任何事情都不可能只有優點,沒有缺點。對於 HBase,數據分析是一個弱點,因為它基本上不支持表關聯,這對 HBase甚至整個 NoSQL生態圈都是如此。如果您想要實現 group by或 orderby,您將發現要實現 MapReduce需要編寫大量代碼。

5、所以請不要盲目使用 HBase。

1、如果情況大致符合下列任一條件:一,主要的要求是數據分析,例如做報告。二:單表的數據量不超過千萬。請勿使用 HBase,使用像 MySQL或 Oracle這樣的產品可以使你的腦細胞免於痛苦。

2、如果情況大致符合下列任一條件:一:單表數據量超千萬,並發相當高。二、數據分析要求較弱,或不需要如此靈活和實時。用 HBase吧,它不會讓你失望!!!

如需轉載請註明出處(創作不易請見諒)和巨嬰程序猿一起成長。讓自己變得更優秀想了解更多精彩內容,快來關注跟著巨嬰去逆襲我最近一直在思考(大數據通俗講解)的問題,你的看法是什麼呢?關注我快說出來一起交流一下吧~

相關焦點

  • HBase調優 | HBase Compaction參數調優
    hbase.hstore.compaction.min當某個列族下的HFile 文件數量超過這個值,則會觸發 minor compaction操作 默認是3,比較小,建議設置10-15 這個值影響是: 設置過小會導致合併文件太頻繁,特別是頻繁bulkload 或者數據量比較大的情況下 設置過大又會導致一個列族下面的HFile 數量比較多,
  • Hive整合HBase完整筆記(親測)
    (1)測試數據文件創建測試文件course.csv第一列為課程名稱,第二列為課程分數(2)數據加載到HDFS在hdfs文件系統中創建hive-hbase目錄,並加載測試數據。查看hdfs文件目錄TBLPROPERTIES("hbase.table.name"= "hbase_testcourse"); 指定HBase表名內部表創建語句如下:create tablecourse.hbase_testcourse(cname string,score int) STORED BY 'org.apache.
  • HBase原理 | HBase Compaction介紹與參數調優
    (舊版本中該參數是hbase.hstore.compactionthreshold)2).hbase.hstore.compaction.max默認值 10,一次Minor Compaction最多合併的HFile文件數量,這個參數基本控制著一次壓縮即Compaction的耗時。
  • HBase與mapreduce集成
    在公司中,大多數都是hbase和mapreduce共同進行業務操作,hbase多數都是讀寫操作,hbase和hadoop在內部已經封裝好了,我們要做的就是調用。常見的模式1、從hbase讀取數據將hbase的數據作為map的輸入2、將數據寫入hbase將hbase作為reduce輸出3、從hbase讀,再寫入hbase
  • Hbase命令大全
    Region是按大小分割的,每個表開始只有一個region,隨著數據的增多,region不斷增大,當增大到一個閥值的時候,region就會等分為兩個新的region,之後會有越來越多的region。    Region是HBase中分布式存儲和負載均衡的最小單元。不同的Region分布到不同的RegionServer上。
  • Flink SQL 實戰:HBase 的結合應用
    因此,自己 build一個 Hbase docker image(大家可以 docker pull guxinglei/myhbase 拉到本地),是基於官方乾淨的 ubuntu imgae 之上安裝了 Hbase 2.2.0 版本以及 JDK1.8 版本。
  • HBase學習之路 (四)HBase的API操作
    ;  6 import org.apache.hadoop.hbase.HColumnDescriptor;  7 import org.apache.hadoop.hbase.HTableDescriptor;  8 import org.apache.hadoop.hbase.TableName;  9 import org.apache.hadoop.hbase.client.Admin; 10
  • HBase的讀寫和javaAPI的使用
    一、hbase系統管理表hbase:namespace,記錄了hbase中所有namespace的信息 ,當前系統下有哪些namespace信息scan 'hbase:namespace'hbase:meta,記錄了region信息scan 'hbase:meta'二、讀寫思想client(get、scan)rowkey條件(1)由於rowkey是存儲在region
  • HBase基礎環境搭建
    遠程工具連接關閉Selinux關閉防火牆chkconfig iptables off修改主機名第一個network,修改後,將主機命名為masterhbaseNETWORKING=yes#HOSTNAME=localhost.localdomainHOSTNAME=masterhbase
  • HBase基礎學習之bulkload了解
    之前在學習importTSV我們準備兩份數據這兩份數據在導入hbase後,數據還是存在的,我們如果想要實現和hive中類似「剪切」的功能該怎麼辦?這種可以跨過先寫入memstore,直接將數據轉換為storefile文件。
  • 深入 HBase 架構解析
    在第一個HMaster連接到ZooKeeper時會創建Ephemeral節點(默認:/hbasae/master)來表示Active的HMaster,其後加進來的HMaster則監聽該Ephemeral節點,如果當前Active的HMaster宕機,則該節點消失,因而其他HMaster得到通知,而將自身轉換成Active的HMaster,在變為Active的HMaster之前,它會創建在/hbase
  • 10大HBase常見運維工具整理
    兩個工具都可以指定row的起止位置和timestamp來進行範圍查詢# RowCounter掃描t1hbase org.apache.hadoop.hbase.mapreduce.RowCounter t1#用CellCounter掃描t1表並將結果寫入HDFS的/tmp/t1.cell目錄hbase org.apache.hadoop.hbase.mapreduce.CellCounter
  • 如何將Hive與HBase整合聯用
    不僅如此,還能通過 Hive 將數據批量地導入到 HBase 中。Hive 與 HBase 整合的實現是利用兩者本身對外的 API 接口互相通信來完成的,其具體工作交由 Hive 的 lib 目錄中的 hive-hbase-handler-xxx.jar 工具類來實現對 HBase 數據的讀取。
  • HBase二級索引方案
    03 HBse二級索引方案A.基於Coprocessor方案1、官方特性其實從0.94版本開始,HBase官方文檔已經提出了hbase上面實現二級索引的一種路徑:基於Coprocessor(0.92版本開始引入,達到支持類似傳統RDBMS的觸發器的行為)開發自定義數據處理邏輯,採用數據「雙寫」(dual-write)策略,在有數據寫入同時同步到二級索引表2、開源方案:雖然官方一直也沒提供內置的支持二級索引的工具, 不過業界也有些比較知名的基於
  • 關於Hbase的一些常見問題
    使用TotalOrderPartitioner類將map輸出結果分區到各個不同的key區間中,每一個key區間都相應著HBase表的region。2、導入HBase表第二步使用completebulkload工具將第一步的結果文件依次交給負責文件相應region的RegionServer,並將文件move到region在HDFS上的存儲文件夾中。一旦完畢。將數據開放給clients。
  • Apache HBase 出現信息洩漏漏洞 - OSCHINA - 中文開源技術交流社區
    HBase 1.1.0HBase 0.96(受波及了)邏輯錯誤導致 HBase 最安全的配置部署到任何連接到 HBase 集群的授權用戶都可以修改參數和看到他們本沒有權限看到的 HBase 數據信息。一旦用戶升級到合適的版本,那麼用戶必須在
  • HBase調優|HBase + G1GC 性能調優
    由於每個參數的取值範圍非常廣, 例如G1NewSizePercent一般可以從0到10不等(甚至可以取更大), 而且參數眾多. 於是, 我們寫一個腳本用來修改每一個參數,然後自動重啟, 並記錄每個參數的測試開始時間點和結束時間點. 後面只需要通過工具自動分析gc日誌即可.
  • 深入淺出HBase keyValue動態讀寫流程
    在正文開始前,大家不妨先思考下這個問題:一個Keyvalue在從客戶端被發送出來到被持久化到HBase或者從HBase持久層被讀取出來到客戶端都經歷了什麼?帶著這個問題,我們來一起學習下客戶端是如何讀寫HBase數據的,進而幫助大家理解HBase讀寫相關原理。
  • 北京尚學堂|百戰卓越班學員學習經驗分享:HBASE報錯信息
    Please check the config value of 'hbase.procedure.store.wal.use.hsync' to set the desired level of robustness and ensure the config value of 'hbase.wal.dir' points to a FileSystem mount that can provide
  • 通過Java API 像 MySQL一樣查詢HBASE
    將上述數據轉換到HBASE中存儲,查詢數據如下。 hbase> scan 'hbase:meta', {COLUMNS => 'info:regioninfo'}hbase> scan 'ns1:t1', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}hbase> scan 't1', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}