HBase的讀寫和javaAPI的使用

2020-12-09 分享電腦學習

一、hbase系統管理表

hbase:namespace,記錄了hbase中所有namespace的信息 ,當前系統下有哪些namespace信息

scan 'hbase:namespace'

hbase:meta,記錄了region信息

scan 'hbase:meta'

二、讀寫思想

client(get、scan)

rowkey條件

(1)由於rowkey是存儲在region上的

(2)判斷rowkey在哪個region上

(3)找到region在哪臺regionserver上

(4)首先會去meta表中讀取信息,找到regionserver

meta也是一張表,也有region和regionserver

desc hbase:meta

在zookeeper中存儲了meta表的region信息,可以到zookeeper客戶端上去看

讀的流程

(1)根據表名和rowkey(start-end範圍)找到對應的region

(2)在zookeeper中存儲了meta表的region信息

(3)從meta表中獲取相應的region信息

(4)找到對應的regionserver

(5)找到對應的region

寫的流程

(1)根據表名和rowkey(start-end範圍)找到對應的region

(2)在zookeeper中存儲了meta表的region信息

(3)從meta表中獲取相應的region信息

(4)找到對應的regionserver(不是直接往region上寫的,先寫到wal再寫到memstore)

WAL(預寫日誌)

memstore(內存中)滿了後會flush成storefile

(5)當多個storefile達到一定大小以後,會進行compaction,合併一個大的storefile

(6)當大的storefile達到一定大小以後,會進行split,等分新的region

三、hbase Java API

啟動Eclipse,創建Maven項目

在pom.xml中添加hbase依賴

創建運行類

最終需要導入的包

創建以下方法

完成表創建

在hbase-site.xml中的配置信息

編寫方法

運行代碼

在hbase中查看,命名空間已經創建了

創建表

運行下代碼

查看下

為了後續方便,我們更改下代碼

將之前的代碼做一下變化(代碼)

運行測試

刪除表(代碼)

運行查看下,表已刪除

添加(代碼)

運行查看下(新創建了一個空間和表格),數據已添加

刪除數據(代碼)

下面這種是篩選刪除

運行查看,數據已空

數據查詢(代碼)注釋部分為篩選

結果查看(控制臺)

Scan查看(代碼)注釋部分為篩選

結果查看

相關焦點

  • SHC:使用 Spark SQL 高效地讀寫 HBase
    Apache Spark 和 Apache HBase 是兩個使用比較廣泛的大數據組件。很多場景需要使用 Spark 分析/查詢 HBase 中的數據,而目前 Spark 內置是支持很多數據源的,其中就包括了 HBase,但是內置的讀取數據源還是使用了 TableInputFormat 來讀取 HBase 中的數據。
  • HBase與mapreduce集成
    在公司中,大多數都是hbase和mapreduce共同進行業務操作,hbase多數都是讀寫操作,hbase和hadoop在內部已經封裝好了,我們要做的就是調用。常見的模式1、從hbase讀取數據將hbase的數據作為map的輸入2、將數據寫入hbase將hbase作為reduce輸出3、從hbase讀,再寫入hbase
  • Hbase命令大全
    行的一次讀寫是原子操作 (不論一次讀寫多少列)區域Region    Table在行的方向上分割為多個Region。    Region是按大小分割的,每個表開始只有一個region,隨著數據的增多,region不斷增大,當增大到一個閥值的時候,region就會等分為兩個新的region,之後會有越來越多的region。
  • HBase二級索引方案
    為了HBase的數據查詢更高效、適應更多的場景, 諸如使用非rowkey欄位檢索也能做到秒級響應,或者支持各個欄位進行模糊查詢和多欄位組合查詢等, 因此需要在HBase上面構建二級索引, 以滿足現實中更複雜多樣的業務需求。
  • 深入 HBase 架構解析
    管理namespace和table的元數據(實際存儲在HDFS上)。權限控制(ACL)。HRegionServer節點用於:存放和管理本地HRegion。讀寫HDFS,管理Table中的數據。,也有使用五臺機器的,此時則可以支持同時兩臺宕機,既少於半數的宕機,然而隨著機器的增加,它的性能也會下降;RegionServer和DataNode一般會放在相同的Server上實現數據的本地化。
  • 深入淺出HBase keyValue動態讀寫流程
    帶著這個問題,我們來一起學習下客戶端是如何讀寫HBase數據的,進而幫助大家理解HBase讀寫相關原理。由於WAL也是寫入到HDFS上,所以也可以說現在單元格就已經被持久化了,但是WAL只是一個暫存的日誌文件,它沒有Store的概念區分,這些數據是不能直接被讀取和使用的。MemStore:數據隨後會立即被加載進入MemStore中,MemStore會負責按照LSM樹的結構來整理存放數據。
  • 「HBase筆記」從洗襪子到hbase(hbase是什麼鬼東西)
    基於 hdfs的資料庫系統,提供高可靠性,高性能,列存儲,可擴展性,實時讀寫 nosql。2、介於 nosql和 RDBMS之間,數據只能通過主鍵(row key)和主鍵的range進行檢索。3、只支持單行事務(可以通過hive支持實現複雜的操作,比如多表join)。4、通常用於存儲結構化和半結構化鬆散數據。
  • HBase調優 | HBase Compaction參數調優
    影響查詢效率進階: 這個值的設置還和業務數據的特點有關係,比如類似詳單雲系統,業務邏輯是 按月建表,每個月建一個表,rowkey是reverse(手機號碼)+時間戳 數據每3-5分鐘導入一次。查詢邏輯是根據手機號碼+時間段查詢 通常手機流量使用情況會某個號碼會不斷的產生,所以一個手機號碼產生的數據基本上會按照分布在很多HFile中。 如果hbase.hstore.compaction.min 設置過大的話,則一個查詢時候會訪問較多的 HFile 影響查詢效率。 這種業務就不適合設置的特別大。
  • HBase實踐篇 | 為HBase的Thrift 客戶端API設計連接池
    摘要 客戶端連接 HBase,常用的方式主要有兩種,直連 Zookeeper 和連接 HBase Thrift Server。第一種是 Java 中常用的方式,官方在hbase-client包裡提供了豐富的 API,另一種是 HBase 的 thrift api,主要在跨語言環境中使用。
  • HBase2.0中引入Accordion算法的使用技巧
    HBase2.0中引入Accordion算法的使用技巧 工程師3 發表於 2018-05-07 10:35:00 現如今,人們對基於HBase的產品的讀寫速度要求越來越高
  • 大數據查詢——HBase讀寫設計與實踐
    AI 前線導語:本文介紹的項目主要解決 check 和 opinion2 張歷史數據表(歷史數據是指當業務發生過程中的完整中間流程和結果數據)的在線查詢。原實現基於 Oracle 提供存儲查詢服務,隨著數據量的不斷增加,在寫入和讀取過程中面臨性能問題,且歷史數據僅供業務查詢參考,並不影響實際流程,從系統結構上來說,放在業務鏈條上遊比較重。
  • Hive整合HBase完整筆記(親測)
    (5)查看hive表數據select * from course.testcourse;從查詢語句的執行結果可以看出,Hive表中的數據和hdfsHBaseStorageHandler' 指定使用Hive Storage HandlersWITHSERDEPROPERTIES("hbase.columns.mapping" = ":key,cf:score")  指定HBase表與Hive表欄位映射關係。
  • HBase原理 | HBase Compaction介紹與參數調優
    (舊版本中該參數是hbase.hstore.compactionthreshold)2).hbase.hstore.compaction.max默認值 10,一次Minor Compaction最多合併的HFile文件數量,這個參數基本控制著一次壓縮即Compaction的耗時。
  • Flink SQL 實戰:HBase 的結合應用
    Flink SQL 的結合使用。當然,本文假設用戶有一定的 HBase 知識基礎,不會詳細去介紹 HBase 的架構和原理,本文著重介紹 HBase 和 Flink 在實際場景中的結合使用。主要分為兩種場景,第一種場景:HBase 作為維表與 Flink Kafka table 做 temporal table join 的場景;第二種場景:Flink SQL 做計算之後的結果寫到 HBase 表,供其他用戶查詢的場景。
  • 10大HBase常見運維工具整理
    本文將列舉一些常用HBase工具,開發人員和運維人員可以參考本文內容,利用這些工具對HBase進行日常管理和運維。HBase組件介紹HBase作為當前比較熱門和廣泛使用的NoSQL資料庫,由於本身設計架構和流程上比較複雜,對大數據經驗較少的運維人員門檻較高,本文對當前HBase上已有的工具做一些介紹以及總結。
  • HBase基礎環境搭建
    遠程工具連接關閉Selinux關閉防火牆chkconfig iptables off修改主機名第一個network,修改後,將主機命名為masterhbaseNETWORKING=yes#HOSTNAME=localhost.localdomainHOSTNAME=masterhbase
  • HBase基礎學習之bulkload了解
    之前在學習importTSV我們準備兩份數據這兩份數據在導入hbase後,數據還是存在的,我們如果想要實現和hive中類似「剪切」的功能該怎麼辦?這種可以跨過先寫入memstore,直接將數據轉換為storefile文件。
  • 從零開始學習大數據系列(六十二)HBase Client API使用入門
    Java來動手開發,下面介紹HBase Client API的入門使用。使用IDEA創建一個Maven Project,如下圖所示:工程創建成功後,需要在POM.xml文件中添加下面的HBase依賴。<!
  • HBase學習之路 (四)HBase的API操作
    HBase學習之路 (四)HBase的API操作Eclipse環境搭建具體的jar的引入方式可以參考http://www.cnblogs.com/qingyunzong/p/8623309.htmlHBase API操作表和數據  1 import java.io.IOException;  2 import java.util.Date;  3  4 import
  • 如何將Hive與HBase整合聯用
    總結: 不管 HBase 表是否存在,在 Hive 中都要使用 external 表來與 HBase 表進行關聯,如果關聯的 HBase 表不存在,Hive 會自動創建 HBase 表。五、示例1.)TBLPROPERTIES ("hbase.table.name" = "default:hbase_table");這裡簡單說一下建表時的參數:此時,hive_table 與 hbase_table 都是空的。