色婷五一,精品亚洲欧美一区二区三区日产 ,精选国产AV剧情,无码丰满少妇2在线观看

18600329666

咨詢技術(shù)專家

掃一掃
與技術(shù)專家在線溝通

Menu
HBASE使用指南RowKey定義,數(shù)據(jù)在客戶端的組裝
HBASE使用指南,RowKey定義,數(shù)據(jù)在客戶端的組裝,數(shù)據(jù)路由處理,HBASE作為hadoop大數(shù)據(jù)平臺(tái)數(shù)據(jù)存儲(chǔ)引擎其數(shù)據(jù)存儲(chǔ)分發(fā),數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜,本文將詳細(xì)介紹HBASE的詳細(xì)使用

一、示例數(shù)據(jù)
  1. HBase可選接口介紹

  2. 表服務(wù)接口介紹

  3. 介紹幾種寫數(shù)據(jù)的模式

  4. 如何構(gòu)建Put對(duì)象(包含RowKey定義以及列定義)

  5. 數(shù)據(jù)路由

  6. Client側(cè)的分組打包

  7. Client發(fā)RPC請(qǐng)求到RegionServer

  8. 安全訪問控制

  9. RegionServer側(cè)處理:Region分發(fā)

  10. Region內(nèi)部處理:寫WAL

  11. Region內(nèi)部處理:寫MemStore

    二、HABSE基礎(chǔ)內(nèi)容
    HBase項(xiàng)目概況(搜索引擎熱度/社區(qū)開發(fā)活躍度)

    HBase數(shù)據(jù)模型(RowKey,稀疏矩陣,Region,Column Family,KeyValue)
    基于HBase的數(shù)據(jù)模型,介紹了HBase的適合場(chǎng)景(以實(shí)體/事件為中心的簡(jiǎn)單結(jié)構(gòu)的數(shù)據(jù))
    介紹了HBase與HDFS的關(guān)系,集群關(guān)鍵角色以及部署建議
    寫數(shù)據(jù)前的準(zhǔn)備工作:建立連接,建表
    三、HBASE實(shí)例數(shù)據(jù)

    (上篇文章已經(jīng)提及,這里再復(fù)制一次的原因,一是為了讓下文內(nèi)容更容易理解,二是個(gè)別字段名稱做了調(diào)整)

    給出一份我們?nèi)粘6伎梢越佑|到的數(shù)據(jù)樣例,先簡(jiǎn)單給出示例數(shù)據(jù)的字段定義:

    一條數(shù)據(jù)的HBase之旅,簡(jiǎn)明HBase入門教程-Write全流程

    示例數(shù)據(jù)字段定義

    本文力求簡(jiǎn)潔,僅給出了最簡(jiǎn)單的幾個(gè)字段定義。如下是”虛構(gòu)”的樣例數(shù)據(jù):

    一條數(shù)據(jù)的HBase之旅,簡(jiǎn)明HBase入門教程-Write全流程

    示例數(shù)據(jù)

    在本文大部分內(nèi)容中所涉及的一條數(shù)據(jù),是上面加粗的最后一行"Mobile1""13400006666"這行記錄。在下面的流程圖中,我們使用下面這樣一個(gè)紅色小圖標(biāo)來表示該數(shù)據(jù)所在的位置:

    一條數(shù)據(jù)的HBase之旅,簡(jiǎn)明HBase入門教程-Write全流程

    數(shù)據(jù)位置標(biāo)記

    可選接口

    HBase中提供了如下幾種主要的接口:

    • Java Client API

      HBase的基礎(chǔ)API,應(yīng)用最為廣泛。

    • HBase Shell

      基于Shell的命令行操作接口,基于Java Client API實(shí)現(xiàn)。

    • Restful API

      Rest Server側(cè)基于Java Client API實(shí)現(xiàn)。

    • Thrift API

      Thrift Server側(cè)基于Java Client API實(shí)現(xiàn)。

    • MapReduce Based Batch Manipulation API

      基于MapReduce的批量數(shù)據(jù)讀寫API。

    除了上述主要的API,HBase還提供了基于Spark的批量操作接口以及C++ Client接口,但這兩個(gè)特性都被規(guī)劃在了3.0版本中,當(dāng)前尚在開發(fā)中。

    無論是HBase Shell/Restful API還是Thrift API,都是基于Java Client API實(shí)現(xiàn)的。因此,接下來關(guān)于流程的介紹,都是基于Java Client API的調(diào)用流程展開的。

    關(guān)于表服務(wù)接口的抽象

    同步連接與異步連接,分別提供了不同的表服務(wù)接口抽象:

    • Table 同步連接中的表服務(wù)接口定義

    • AsyncTable 異步連接中的表服務(wù)接口定義

    異步連接AsyncConnection獲取AsyncTable實(shí)例的接口默認(rèn)實(shí)現(xiàn):

    一條數(shù)據(jù)的HBase之旅,簡(jiǎn)明HBase入門教程-Write全流程

    Create AsyncTable

    同步連接ClusterConnection的實(shí)現(xiàn)類ConnectionImplementation中獲取Table實(shí)例的接口實(shí)現(xiàn):

    一條數(shù)據(jù)的HBase之旅,簡(jiǎn)明HBase入門教程-Write全流程

    Create Table

    寫數(shù)據(jù)的幾種方式

    • Single Put

      單條記錄單條記錄的隨機(jī)put操作。Single Put所對(duì)應(yīng)的接口定義如下:

      在AsyncTable接口中的定義:

      CompletableFuture put(Put put);

      在Table接口中的定義:

      void put(Put put) throws IOException;
    • Batch Put

      匯聚了幾十條甚至是幾百上千條記錄之后的小批次隨機(jī)put操作。

      Batch Put只是本文對(duì)該類型操作的稱法,實(shí)際的接口名稱如下所示:

      在AsyncTable接口中的定義:

      List> put(List puts);

      在Table接口中的定義:

      void put(List puts) throws IOException;
    • Bulkload

      基于MapReduce API提供的數(shù)據(jù)批量導(dǎo)入能力,導(dǎo)入數(shù)據(jù)量通常在GB級(jí)別以上,Bulkload能夠繞過Java Client API直接生成HBase的底層數(shù)據(jù)文件(HFile)。