亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

Hbase入門詳解

2024-09-01 13:56:28
字體:
來源:轉載
供稿:網友

1、hbase概述

1.1 hbase是什么

hbase是基于hdfs進行數據的分布式存儲,具有高可靠、高性能、列存儲、可伸縮、實時讀寫的nosql數據庫。

hbase可以存儲海量的數據,并且后期查詢性能很高,可以實現上億條數據的查詢秒級返回結果。

1.2 hbase表的特性

1、大

  • hbase表可以存儲海量的數據。

2、無模式

  • mysql表中每一行列的字段是相同,而hbase表中每一行數據可以有截然不同的列。

3、面向列

  • hbase表中的數據可以有很多個列,后期它就是按照不同的列去存儲數據,寫入到不同的文件中。
  • 面向列族進行存儲數據。

4、稀疏

  • 在hbase表中為null的列并不占用實際的存儲空間。

5、數據的多版本

  • 對于hbase表中的數據在進行數據更新的時候,它并沒有把之前的結果數據直接刪除掉,而是保留數據的多個版本,每一個數據都給一個版本號,這個版本號就是按照我們插入數據的時間戳去確定。

6、數據類型單一

  • 無論是什么類型的數據,最后都被轉換成了字節數組存儲在hbase表中

1.3 hbase表的邏輯視圖

Hbase,Hbase入門

2、hbase的集群結構

Hbase,Hbase入門

1、client

  • 提供了對hbase表操作的一些java接口。
  • client 維護著一些 cache 來加快對 hbase 的訪問
  • client 會將查詢過的位置信息保存緩存起來,緩存不會主動失效

2、zookeeper

客戶端操作hbase表數據需要一個zk集群

作用

1、zk保存了hbase集群的元數據信息

存儲 Hbase 的 schema,包括有哪些 table,每個 table 有哪些 column family

2、zk保存所有hbase表的尋址入口

后期通過客戶端接口去操作hbase數據的時候,需要連接上zk集群
存貯所有 Region 的尋址入口----root 表在哪臺服務器上

3、通過引入了zk之后,實現了整個hbase集群高可用

4、zk保存了HMaster和HRegionServer它們的注冊和心跳信息

后期哪一個HRegionServer掛掉之后,zk也會感知到,然后把這個信息通知給老大HMaster

3、HMaster

它是整個hbase集群老大

作用

1、它接受客戶端創建表、刪除表的請求。處理 schema 更新請求

2、它會給HRegionServer分配對應的region,進行數據的管理

3、它會把掛掉的HRegionServer所管理的region重新分配給其他的活著的HRegionServer

4、它會實現HRegionServer負載均衡,避免某一個HRegionServer管理的region過多。

4、HRegionServer

它是整合hbase集群的小弟

作用

1、負責管理HMaster老大給它分配的region

2、它會接受到客戶端的讀寫請求

3、它會把在運行過程中,變得過大的region數據進行切分

5、Region

它是整個hbase表中分布式存儲的最小單元

它的數據是基于hdfs進行存儲

3、hbase集群安裝部署

前提條件

  • 先搭建好zk、hadoop集群

1、下載對應的安裝包

  • http://archive.apache.org/dist/hbase/1.2.1/hbase-1.2.1-bin.tar.gz
  • hbase-1.2.1-bin.tar.gz

2、規劃安裝目錄

  • /export/servers

3、上傳安裝包到服務器中

4、解壓安裝包到指定的規劃目錄

  • tar -zxvf hbase-1.2.1-bin.tar.gz -C /export/servers

5、重命名解壓目錄

  • mv hbase-1.2.1 hbase

6、修改配置文件

需要把hadoop安裝目錄下/etc/hadoop文件夾中

  • core-site.xml
  • hdfs-site.xml

需要把以上2個hadoop的配置文件拷貝到hbase安裝目錄下的conf文件夾中

1、vim hbase-env.sh

#配置java環境變量export JAVA_HOME=/export/servers/jdk#指定hbase集群由外部的zk集群去管理,不在使用自帶的zk集群export HBASE_MANAGES_ZK=false

2、vim hbase-site.xml

       <!-- 指定hbase在HDFS上存儲的路徑 -->    <property>        <name>hbase.rootdir</name><value>hdfs://node1:9000/hbase</value>    </property>        <!-- 指定hbase是分布式的 -->    <property><name>hbase.cluster.distributed</name>        <value>true</value>    </property>        <!-- 指定zk的地址,多個用“,”分割 -->    <property>        <name>hbase.zookeeper.quorum</name><value>node1:2181,node2:2181,node3:2181</value>    </property>

3、vim regionservers

#指定哪些節點是HRegionServernode2node3

4、vim backup-masters

#指定哪些節點是備用的Hmasternode2

7、配置hbase環境變量

vim /etc/profile

export HBASE_HOME=/export/servers/hbaseexport PATH=$PATH:$HBASE_HOME/bin

8、分發hbase目錄和環境變量

scp -r hbase node2:/export/serversscp -r hbase node3:/export/serversscp /etc/profile node2:/etcscp /etc/profile node3:/etc

9、讓所有hbase節點的環境變量生效

在所有節點上執行

  • source /etc/profile

4、hbase集群的啟動和停止

1、啟動hbase集群

先啟動zk和hadoop集群

然后通過hbase/bin

start-hbase.sh

  • 你在哪里啟動這個腳本,首先在當前機器啟動一個HMaster進程(它就是活著的HMaster)
  • 通過regionservers文件在對應的節點來啟動HRegionServer
  • 通過backup-masters文件在對應的節點來啟動備用的HMaster

2、停止hbase集群

通過hbase/bin

stop-hbase.sh

hbase集群web管理界面

1、啟動好hbase集群之后

訪問地址

HMaster主機名:16010

5、hbase shell 命令行操作

hbase/bin/hbase shell 進入到hbase shell客戶端命令操作

1、創建一個表

create 't_user_info','base_info','extra_info'create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}

2、查看有哪些表

list類似于mysql表中sql:show tables

3、查看表的描述信息

describe 't_user_info'

4、修改表的屬性

#修改列族的最大版本數alter 't_user_info', NAME => 'base_info', VERSIONS => 3

5、添加數據到表中

put 't_user_info','00001','base_info:name','zhangsan'put 't_user_info','00001','base_info:age','30'put 't_user_info','00001','base_info:address','beijing'put 't_user_info','00001','extra_info:school','shanghai'put 't_user_info','00002','base_info:name','lisi'

6、查詢表的數據

//按照條件查詢get 't_user_info','00001'get 't_user_info','00001', {COLUMN => 'base_info'}get 't_user_info','00001', {COLUMN => 'base_info:name'}get 't_user_info','00001',{TIMERANGE => [1544243300660,1544243362660]}get 't_user_info','00001',{COLUMN => 'base_info:age',VERSIONS =>3}//全表查詢scan 't_user_info'

7、刪除數據

delete 't_user_info','00001','base_info:name'deleteall 't_user_info','00001'

8、刪除表

disable 't_user_info'drop 't_user_info'

6、hbase的內部原理

Hbase,Hbase入門

  • Table 中的所有行都按照 row key 的字典序排列
  • Table 在行的方向上分割為多個 Hregion
  • region 按大小分割的(默認 10G),每個表一開始只有一個 region , region 不斷增大,當增大到一個閥值的時候,Hregion 就會等分會兩個新的 Hregion。當 table中的行不斷增多,就會有越來越多Hregion。
  • Hregion 是 Hbase 中分布式存儲和負載均衡的最小單元。最小單元就表示不同的 Hregion可以分布在不同的 HRegion server 上。
  • HRegion 雖然是負載均衡的最小單元,但并不是物理存儲的最小單元。HRegion 由一個或者多個 Store 組成,每個 store 保存一個 column family。每個 Strore 又由一個 memStore 和 0 至多個 StoreFile 組成。寫操作先寫入 memstore,當 memstore 中的數據量達到某個閾值(默認128M或1個小時),Hregionserver 啟動flashcache 進程寫入 storefile,每次寫入形成單獨一個 storefile。
  • 當 storefile 的個數超過一定閾值后(默認參數 hbase.hstore.blockingStoreFiles=10),多個storeFile會進行合并,當該region的所有store的storefile大小之和,即所有store的大小超過 hbase.hregion.max.filesize=10G 時,這個 region 會被拆分會把當前的 region分割成兩個,并由 Hmaster 分配給相應的 region 服務器,實現負載均衡。
  • 每個 HRegionServer 中都有一個 HLog 對象,HLog 是一個實現 Write Ahead Log 的類,在每次用戶操作寫入 MemStore 的同時,也會寫一份數據到 HLog 文件中, HLog 文件定期會滾動出新的,并刪除舊的文件(已持久化到 StoreFile 中的數據)。當 HRegionServer 意外終止后,HMaster 會通過 Zookeeper 感知到,HMaster 首先會處理遺留的 HLog 文件,將其中不同 Region 的 Log 數據進行拆分,分別放到相應 region 的目錄下,然后再將失效的 region 重新分配,領取到這些 region 的 HRegionServer 在 Load Region的過程中,會發現有歷史 HLog 需要處理,因此會 Replay HLog 中的數據到 MemStore 中,然后 flush 到 StoreFiles,完成數據恢復。

7、hbase的尋址機制

Hbase,Hbase入門

尋找 RegionServer

  • ZooKeeper–> -ROOT-(單 Region)–> .META.–> 用戶表

-ROOT-表

  • 表包含.META.表所在的 region 列表,該表只會有一個 Region;
  • root region 永遠不會被 split,保證了最多需要三次跳轉,就能定位到任意 region 。
  • Zookeeper 中記錄了-ROOT-表的 location。

.META.表

  • 表包含所有的用戶空間 region 列表,以及 RegionServer 的服務器地址
  • .META.表每行保存一個 region 的位置信息,row key 采用表名+表的最后一行編碼而成。
  • 為了加快訪問,.META.表的全部 region 都保存在內存中。

聯系 regionserver 查詢目標數據

regionserver 定位到目標數據所在的 region,發出查詢請求

region 先在 memstore 中查找,命中則返回

如果在 memstore 中找不到,則在 storefile 中掃描(可能會掃描到很多的 storefile----bloomfilter 布隆過濾器)布隆過濾器可以快速的返回查詢的rowkey是否在這個storeFile中, 但也有誤差, 如果返回沒有,則一定沒有,如果返回有, 則可能沒有

8、Hbase高級應用

建表

BLOOMFILTER 默認是 Row 布隆過濾器

  • 對 ROW,行鍵的哈希在每次插入行時將被添加到布隆。
  • 對 ROWCOL,行鍵 + 列族 + 列族修飾的哈希將在每次插入行時添加到布隆

VSRSIONS 默認是 1 數據版本

  • 如果我們認為我們的數據沒有這么大的必要保留這么多,隨時都在更新,而老版本的數據對我們毫無價值,那將此參數設為 1 能節約 2/3 的空間

COMPRESSION 默認值是 NONE 壓縮

  • GZIP / LZO / Zippy / Snappy

disable_all ‘toplist.*' disable_all 支持正則表達式,并列出當前匹配的表 drop_all也相同

hbase 表預分區----手動分區

一種可以加快批量寫入速度的方法是通過預先創建一些空的 regions,這樣當數據寫入 HBase時,會按照 region 分區情況,在集群內做數據的負載均衡。減少數據達到 storefile 大小的時候自動分區的

時間消耗,并且還有以一個優勢,就是合理設計 rowkey 能讓各個 region 的并發請求平均分配(趨于均勻) 使 IO 效率達到最高,

行鍵設計

列族盡量少, 一般2-3個

rowkey

  • 根據字典序的特性, 將需要批量查詢的數據盡可能連續存放( 矛 )
  • 盡可能將查詢條件關鍵詞拼裝到 rowkey 中,查詢頻率最高的條件盡量往前靠
  • rowkey建議越短越好,不要超過 16 個字節

盡量減少行鍵和列族的大小在 HBase 中,value 永遠和它的 key 一起傳輸的
HFile中每個cell都會存儲rowkey, rowkey過大會影響存儲效率
MemStore 將緩存部分數據到內存,如果 rowkey 字段過長,內存的有效利用率就會降低,系統不能緩存更多的數據,這樣會降低檢索效率。

建議將 rowkey 的高位作為散列字段,由程序隨機生成,低位放時間字段,這樣將提高數據均衡分布在每個 RegionServer,以實現負載均衡的幾率。( 盾 )

rowkey矛盾

  • HBase 中的行是按照 rowkey 的字典順序排序的,這種設計優化了 scan 操作,可以將相關的行以及會被一起讀取的行存取在臨近位置,便于 scan。然而糟糕的rowkey 設計是熱點的源頭。

熱點解決

  • 加鹽 在rowkey前加隨機字符串
  • 哈希 哈希會使同一行永遠用一個前綴加鹽
  • 反轉 反轉固定長度或者數字格式的 rowkey 犧牲了rowkey的有序性
  • 時間戳反轉

可以用 Long.Max_Value - timestamp 追加到 key 的末尾,例如 [key][reverse_timestamp] ,[key] 的最新值可以通過 scan [key]獲得[key]的第一條記錄,因為 HBase 中 rowkey 是有序的,第一條記錄是最后錄入的數據。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕精品久久久久| 成人免费视频xnxx.com| 中文字幕欧美视频在线| 国产va免费精品高清在线观看| 国产精品久久久久久久美男| 日韩最新免费不卡| 日韩影视在线观看| 精品中文字幕久久久久久| 国产精品欧美风情| 欧美肥婆姓交大片| 欧美野外猛男的大粗鳮| 欧美精品激情在线| 精品夜色国产国偷在线| 久久精品人人做人人爽| 青青久久av北条麻妃海外网| 久久成年人视频| 日韩av在线最新| 欧美又大粗又爽又黄大片视频| 91国产美女在线观看| 国产成人激情视频| 97人人模人人爽人人喊中文字| 国模精品一区二区三区色天香| 国产精品久久久久999| 亚洲欧美中文日韩在线| 精品无人区乱码1区2区3区在线| 亚洲精品美女久久久久| 欧美特级www| 岛国视频午夜一区免费在线观看| 97国产suv精品一区二区62| 欧美成人在线网站| 久久精品视频99| 欧美超级免费视 在线| 2021久久精品国产99国产精品| 国产午夜精品一区二区三区| 中文字幕欧美日韩精品| 久久久久成人网| 96sao精品视频在线观看| 欧美超级免费视 在线| 欧美亚洲国产视频小说| 久热爱精品视频线路一| 欧美在线影院在线视频| 精品一区二区亚洲| 国产精品18久久久久久麻辣| 91精品国产91久久| 欧美激情视频网| 欧美午夜激情小视频| 国产精品男人的天堂| 日韩精品中文字| 亚洲国产另类 国产精品国产免费| 亚洲精品一区二区网址| 亚洲人精品午夜在线观看| 51视频国产精品一区二区| 精品国产欧美成人夜夜嗨| 欧美成人剧情片在线观看| 精品自在线视频| 国产精品一区电影| 亚洲免费av电影| 成人黄色av网站| 国产精品直播网红| 91精品国产91久久久久福利| 中文字幕欧美日韩在线| 疯狂欧美牲乱大交777| 色吧影院999| 久久精品这里热有精品| 欧美—级高清免费播放| 欧美国产第二页| 欧美激情免费观看| 亚洲欧洲一区二区三区在线观看| 欧美大秀在线观看| 欧美日韩一区二区精品| 国产欧美一区二区三区视频| 日韩av高清不卡| 欧美亚洲伦理www| 久久久久久久久亚洲| 九九热精品视频国产| 国内精品国产三级国产在线专| 久久精品国产亚洲精品| 中国日韩欧美久久久久久久久| 亚洲欧洲在线看| 亚洲字幕在线观看| 欧美激情一区二区久久久| 国产精品综合网站| 狠狠色狠色综合曰曰| 国产成人亚洲综合青青| 亚洲三级黄色在线观看| 久久91亚洲精品中文字幕奶水| 在线丨暗呦小u女国产精品| xxx一区二区| 精品视频在线播放| 亚洲一区二区精品| 欧洲精品久久久| 97高清免费视频| 精品国产91久久久| 在线成人一区二区| 亚洲美女久久久| 国产精品jvid在线观看蜜臀| 欧美性高跟鞋xxxxhd| 91在线精品播放| 中文.日本.精品| 国产免费一区二区三区香蕉精| 91av在线不卡| 久久精品91久久久久久再现| 国产精品18久久久久久首页狼| 成人亚洲综合色就1024| 美女福利视频一区| 久久成人av网站| 91免费版网站入口| 欧美一级大片在线免费观看| 中日韩美女免费视频网址在线观看| 欧美性videos高清精品| 日韩av中文字幕在线免费观看| 国产精品美女久久久久av超清| 亚洲男人天堂九九视频| 亚洲男人天堂古典| 成人黄色av网站| 午夜精品在线观看| 欧美床上激情在线观看| 日韩视频免费在线观看| 欧美精品激情blacked18| 亚洲激情久久久| 亚洲欧洲一区二区三区久久| 日本精品视频在线播放| 国产日本欧美一区二区三区| 日韩欧美aⅴ综合网站发布| 国产精品美女网站| 色yeye香蕉凹凸一区二区av| xxx成人少妇69| 亚洲韩国欧洲国产日产av| 国产aⅴ夜夜欢一区二区三区| 伦伦影院午夜日韩欧美限制| 最好看的2019的中文字幕视频| 久久久久在线观看| 91精品国产自产在线观看永久| 国产精品www色诱视频| 精品亚洲国产成av人片传媒| 精品色蜜蜜精品视频在线观看| 久久久亚洲欧洲日产国码aⅴ| 欧美中文在线字幕| 97涩涩爰在线观看亚洲| 97人人模人人爽人人喊中文字| 国产亚洲欧美aaaa| 亚洲香蕉成人av网站在线观看| 亚洲va欧美va在线观看| 亚洲国产欧美一区| 91美女片黄在线观看游戏| 91免费视频国产| 欧美成人免费播放| 欧美日韩ab片| 欧美日本中文字幕| 亚洲一区二区中文字幕| 中文字幕日韩av电影| 欧美激情国产日韩精品一区18| 不卡中文字幕av| 国产综合福利在线| 亚洲在线观看视频| 日韩精品一二三四区| 欧美日韩中文字幕日韩欧美| 日韩精品在线观看一区| 欧美国产日韩二区| 午夜精品一区二区三区在线视频| 91精品国产自产在线老师啪| 欧美成人在线网站| 91色在线观看| 久久av资源网站|