最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

hbase 簡(jiǎn)介

 更新時(shí)間:2017年09月29日 11:52:27   作者:動(dòng)力節(jié)點(diǎn)  
HBase是基于GoogleBigTable模型開發(fā)的,典型的key/value系統(tǒng);下面通過本文給大家介紹hbase的相關(guān)知識(shí),感興趣的朋友一起看看吧

概述


HBase是一個(gè)構(gòu)建在HDFS上的分布式列存儲(chǔ)系統(tǒng);

HBase是基于GoogleBigTable模型開發(fā)的,典型的key/value系統(tǒng);

HBase是ApacheHadoop生態(tài)系統(tǒng)中的重要一員,主要用于海量結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ);

從邏輯上講,HBase將數(shù)據(jù)按照表、行和列進(jìn)行存儲(chǔ)。

與hadoop一樣,Hbase目標(biāo)主要依靠橫向擴(kuò)展,通過不斷增加廉價(jià)的商用服務(wù)器,來(lái)增加計(jì)算和存儲(chǔ)能力。

Hbase表的特點(diǎn)

大:一個(gè)表可以有數(shù)十億行,上百萬(wàn)列;

無(wú)模式:每行都有一個(gè)可排序的主鍵和任意多的列,列可以根據(jù)需要?jiǎng)討B(tài)的增加,同一張表中不同的行可以有截然不同的列;

面向列:面向列(族)的存儲(chǔ)和權(quán)限控制,列(族)獨(dú)立檢索;

稀疏:空(null)列并不占用存儲(chǔ)空間,表可以設(shè)計(jì)的非常稀疏;

數(shù)據(jù)多版本:每個(gè)單元中的數(shù)據(jù)可以有多個(gè)版本,默認(rèn)情況下版本號(hào)自動(dòng)分配,是單元格插入時(shí)的時(shí)間戳;

數(shù)據(jù)類型單一:Hbase中的數(shù)據(jù)都是字符串,沒有類型。

·Hbase數(shù)據(jù)模型

Hbase邏輯視圖


注意上圖中的英文說(shuō)明

Hbase基本概念

RowKey:是Bytearray,是表中每條記錄的“主鍵”,方便快速查找,Rowkey的設(shè)計(jì)非常重要。
ColumnFamily:列族,擁有一個(gè)名稱(string),包含一個(gè)或者多個(gè)相關(guān)列
Column:屬于某一個(gè)columnfamily,familyName:columnName,每條記錄可動(dòng)態(tài)添加
VersionNumber:類型為L(zhǎng)ong,默認(rèn)值是系統(tǒng)時(shí)間戳,可由用戶自定義
Value(Cell):Bytearray

·Hbase物理模型

每個(gè)columnfamily存儲(chǔ)在HDFS上的一個(gè)單獨(dú)文件中,空值不會(huì)被保存。

Key和 Version number在每個(gè) column family中均有一份;

HBase為每個(gè)值維護(hù)了多級(jí)索引,即:

物理存儲(chǔ):

1、Table中所有行都按照rowkey的字典序排列;

2、Table在行的方向上分割為多個(gè)Region;

3、Region按大小分割的,每個(gè)表開始只有一個(gè)region,隨著數(shù)據(jù)增多,region不斷增大,當(dāng)增大到一個(gè)閥值的時(shí)候,region就會(huì)等分會(huì)兩個(gè)新的region,之后會(huì)有越來(lái)越多的region;

4、Region是Hbase中分布式存儲(chǔ)和負(fù)載均衡的最小單元,不同Region分布到不同RegionServer上。



5、Region雖然是分布式存儲(chǔ)的最小單元,但并不是存儲(chǔ)的最小單元。Region由一個(gè)或者多個(gè)Store組成,每個(gè)store保存一個(gè)columnsfamily;每個(gè)Strore又由一個(gè)memStore和0至多個(gè)StoreFile組成,StoreFile包含HFile;memStore存儲(chǔ)在內(nèi)存中,StoreFile存儲(chǔ)在HDFS上。


·HBase架構(gòu)及基本組件


Hbase基本組件說(shuō)明:

Client

ü包含訪問HBase的接口,并維護(hù)cache來(lái)加快對(duì)HBase的訪問,比如region的位置信息

Master

ü為Regionserver分配region

ü負(fù)責(zé)Regionserver的負(fù)載均衡

ü發(fā)現(xiàn)失效的Regionserver并重新分配其上的region

ü管理用戶對(duì)table的增刪改查操作

RegionServer

üRegionserver維護(hù)region,處理對(duì)這些region的IO請(qǐng)求

üRegionserver負(fù)責(zé)切分在運(yùn)行過程中變得過大的region

Zookeeper作用

ü通過選舉,保證任何時(shí)候,集群中只有一個(gè)master,Master與RegionServers啟動(dòng)時(shí)會(huì)向ZooKeeper注冊(cè)

ü存貯所有Region的尋址入口

ü實(shí)時(shí)監(jiān)控Regionserver的上線和下線信息。并實(shí)時(shí)通知給Master

ü存儲(chǔ)HBase的schema和table元數(shù)據(jù)

ü默認(rèn)情況下,HBase管理ZooKeeper 實(shí)例,比如, 啟動(dòng)或者停止ZooKeeper

üZookeeper的引入使得Master不再是單點(diǎn)故障

Write-Ahead-Log(WAL)


該機(jī)制用于數(shù)據(jù)的容錯(cuò)和恢復(fù):

每個(gè)HRegionServer中都有一個(gè)HLog對(duì)象,HLog是一個(gè)實(shí)現(xiàn)WriteAheadLog的類,在每次用戶操作寫入MemStore的同時(shí),也會(huì)寫一份數(shù)據(jù)到HLog文件中(HLog文件格式見后續(xù)),HLog文件定期會(huì)滾動(dòng)出新的,并刪除舊的文件(已持久化到StoreFile中的數(shù)據(jù))。當(dāng)HRegionServer意外終止后,HMaster會(huì)通過Zookeeper感知到,HMaster首先會(huì)處理遺留的HLog文件,將其中不同Region的Log數(shù)據(jù)進(jìn)行拆分,分別放到相應(yīng)region的目錄下,然后再將失效的region重新分配,領(lǐng)取到這些region的HRegionServer在Load Region的過程中,會(huì)發(fā)現(xiàn)有歷史HLog需要處理,因此會(huì)ReplayHLog中的數(shù)據(jù)到MemStore中,然后flush到StoreFiles,完成數(shù)據(jù)恢復(fù)

HBase容錯(cuò)性

Master容錯(cuò):Zookeeper重新選擇一個(gè)新的Master

ü無(wú)Master過程中,數(shù)據(jù)讀取仍照常進(jìn)行;

ü無(wú)master過程中,region切分、負(fù)載均衡等無(wú)法進(jìn)行;

RegionServer容錯(cuò):定時(shí)向Zookeeper匯報(bào)心跳,如果一旦時(shí)間內(nèi)未出現(xiàn)心跳,Master將該RegionServer上的Region重新分配

到其他RegionServer上,失效服務(wù)器上“預(yù)寫”日志由主服務(wù)器進(jìn)行分割并派送給新的RegionServer

Zookeeper容錯(cuò):Zookeeper是一個(gè)可靠地服務(wù),一般配置3或5個(gè)Zookeeper實(shí)例

Region定位流程:




尋找RegionServer

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

-ROOT-

ü表包含.META.表所在的region列表,該表只會(huì)有一個(gè)Region;

üZookeeper中記錄了-ROOT-表的location。

.META.

ü表包含所有的用戶空間region列表,以及RegionServer的服務(wù)器地址。

·Hbase使用場(chǎng)景

storing large amounts of data(100s ofTBs)
needhigh write throughput
needefficient random access(key lookups) within large datasets
needto scale gracefully with data
forstructured and semi-structured data
don'tneed fullRDMS capabilities(cross row/cross table transaction,joins,etc.)

大數(shù)據(jù)量存儲(chǔ),大數(shù)據(jù)量高并發(fā)操作

需要對(duì)數(shù)據(jù)隨機(jī)讀寫操作

讀寫訪問均是非常簡(jiǎn)單的操作

·Hbase與HDFS對(duì)比

兩者都具有良好的容錯(cuò)性和擴(kuò)展性,都可以擴(kuò)展到成百上千個(gè)節(jié)點(diǎn);

HDFS適合批處理場(chǎng)景

不支持?jǐn)?shù)據(jù)隨機(jī)查找

不適合增量數(shù)據(jù)處理

不支持?jǐn)?shù)據(jù)更新



相關(guān)文章

  • linux下源碼包安裝的服務(wù)管理

    linux下源碼包安裝的服務(wù)管理

    大家好,本篇文章主要講的是linux下源碼包安裝的服務(wù)管理,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • ubuntu端向日葵鍵盤輸入卡頓問題及解決

    ubuntu端向日葵鍵盤輸入卡頓問題及解決

    這篇文章主要介紹了ubuntu端向日葵鍵盤輸入卡頓問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 簡(jiǎn)單實(shí)現(xiàn)linux聊天室程序

    簡(jiǎn)單實(shí)現(xiàn)linux聊天室程序

    這篇文章主要介紹了簡(jiǎn)單實(shí)現(xiàn)linux聊天室程序的詳細(xì)代碼,幫助大家了解聊天室的實(shí)現(xiàn)原理,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Linux系統(tǒng)使用Fuser命令的方法

    Linux系統(tǒng)使用Fuser命令的方法

    fuser命令是一個(gè)非常聰明的unix實(shí)用程序,用于查找正在使用某個(gè)文件、目錄或socket的進(jìn)程。這篇文章主要介紹了Linux系統(tǒng)使用Fuser命令的方法,需要的朋友可以參考下
    2020-06-06
  • Linux提示網(wǎng)絡(luò)不可達(dá)問題

    Linux提示網(wǎng)絡(luò)不可達(dá)問題

    這篇文章主要介紹了Linux提示網(wǎng)絡(luò)不可達(dá)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • linux中g(shù)rep命令數(shù)據(jù)過濾和篩選方式

    linux中g(shù)rep命令數(shù)據(jù)過濾和篩選方式

    這篇文章主要介紹了linux中g(shù)rep命令數(shù)據(jù)過濾和篩選方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Ubuntu系統(tǒng)中查看網(wǎng)絡(luò)速率的幾種方法

    Ubuntu系統(tǒng)中查看網(wǎng)絡(luò)速率的幾種方法

    這篇文章主要給大家介紹了在 Ubuntu系統(tǒng)中,可以使用以下幾種方法查看網(wǎng)絡(luò)速率,文中通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-11-11
  • 寶塔多個(gè)版本PHP切換默認(rèn)PHP版本

    寶塔多個(gè)版本PHP切換默認(rèn)PHP版本

    這篇文章主要介紹了寶塔多個(gè)版本PHP切換默認(rèn)PHP版本的方法,需要的朋友可以參考下
    2023-08-08
  • 在Linux系統(tǒng)中查找最大的文件的命令詳解

    在Linux系統(tǒng)中查找最大的文件的命令詳解

    在 Linux 系統(tǒng)中,管理磁盤空間是一項(xiàng)重要的任務(wù),尤其是在長(zhǎng)期使用的系統(tǒng)中,為了有效地管理磁盤空間,找到并處理這些大文件變得尤為重要,所以本文給大家介紹了在Linux系統(tǒng)中查找最大的文件的命令方法,需要的朋友可以參考下
    2024-11-11
  • Linux中Netcat工具的使用方式

    Linux中Netcat工具的使用方式

    這篇文章主要介紹了Linux中Netcat工具的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評(píng)論

衢州市| 桐柏县| 郧西县| 通江县| 蒙阴县| 慈溪市| 滨州市| 南京市| 瓮安县| 恩平市| 合山市| 南陵县| 镇安县| 平和县| 临潭县| 武义县| 灵石县| 罗定市| 奉贤区| 灵璧县| 迁安市| 弋阳县| 内黄县| 乐山市| 山阴县| 方城县| 普格县| 顺平县| 汝阳县| 东城区| 仁怀市| 鹤岗市| 大厂| 金阳县| 泰宁县| 淅川县| 岚皋县| 翁源县| 延庆县| 牟定县| 乐东|