国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

1. HBase中文學(xué)習(xí)手冊(cè)之揭開Hbase的神秘面紗

這篇具有很好參考價(jià)值的文章主要介紹了1. HBase中文學(xué)習(xí)手冊(cè)之揭開Hbase的神秘面紗。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.1 歡迎使用 Apache Hbase

1.1.1 什么是 Hbase?

  • Apache HBase 是 Hadoop 數(shù)據(jù)庫(kù),一種分布式,可擴(kuò)展的大數(shù)據(jù)存儲(chǔ)。

1.1.2 Hbase的前世今生

1. HBase中文學(xué)習(xí)手冊(cè)之揭開Hbase的神秘面紗,# Apache HBase中文學(xué)習(xí)手冊(cè),hbase,學(xué)習(xí),筆記

  • Apache HBase 是一個(gè)開源、分布式、版本化、非關(guān)系數(shù)據(jù)庫(kù), 模仿了 Google 的Bigtable: Chang等人的結(jié)構(gòu)化數(shù)據(jù)分布式存儲(chǔ)系統(tǒng)。
  • Apache HBase 在 Hadoop 和 HDFS 之上提供類似 Bigtable 的功能,正如 Bigtable 利用 Google 文件系統(tǒng)提供的分布式數(shù)據(jù)存儲(chǔ)一樣,
  • Google在當(dāng)年發(fā)布了風(fēng)靡一時(shí)的“三篇論文”——GFS、MapReduce、BigTable。

    • 《 GFS: The Google File System 》
      • Google在GFS該論文中第一次揭示了如何在大量廉價(jià)機(jī)器基礎(chǔ)上存儲(chǔ)海量數(shù)據(jù)
    • 《 MapReduce: Simplified Data Processing on Large Clusters》
      • 論文論述了如何在大量廉價(jià)機(jī)器的基礎(chǔ)上穩(wěn)定地實(shí)現(xiàn)超大規(guī)模的并行數(shù)據(jù)處理。
    • 《 BigTable: A Distributed Storage System for Structured Data》
      • 用于解決Google內(nèi)部海量結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)以及高效讀寫問題,BigTable屬于分布式數(shù)據(jù)庫(kù)領(lǐng)域。
  • Google的三篇論文論證了在大量廉價(jià)機(jī)器上存儲(chǔ)、處理海量數(shù)據(jù)(結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù))是可行的,然而并沒有給出開源方案。

  • 2004年,Doug Cutting和Mike Cafarella在為他們的搜索引擎爬蟲(Nutch)實(shí)現(xiàn)分布式架構(gòu)的時(shí)候看到了Google的GFS論文以及MapReduce論文。

  • 他們?cè)谥蟮膸讉€(gè)月里按照論文實(shí)現(xiàn)出一個(gè)簡(jiǎn)易版的HDFS和MapReduce,這也就是Hadoop的最早起源。

  • 最初這個(gè)簡(jiǎn)易系統(tǒng)確實(shí)可以穩(wěn)定地運(yùn)行在幾十臺(tái)機(jī)器上,但是沒有經(jīng)過(guò)大規(guī)模使用的系統(tǒng)談不上完美。

  • 所幸他們收到了Yahoo的橄欖枝。

  • 在Yahoo,Doug領(lǐng)導(dǎo)的團(tuán)隊(duì)不斷地對(duì)系統(tǒng)進(jìn)行改進(jìn),促成了Hadoop從幾十臺(tái)到幾百臺(tái)再到幾千臺(tái)機(jī)器規(guī)模的演變,直到這個(gè)時(shí)候,大數(shù)據(jù)才真正在普通公司實(shí)現(xiàn)落地。

  • 一家叫做Powerset的公司,為了高效處理自然語(yǔ)言搜索產(chǎn)生的海量數(shù)據(jù)實(shí)現(xiàn)了BigTable的開源版本——HBase,并在發(fā)展了2年之后被Apache收錄為頂級(jí)項(xiàng)目,正式入駐Hadoop生態(tài)系統(tǒng)。”

1.1.3 HBase的技術(shù)選型?

那么當(dāng)企業(yè)有什么業(yè)務(wù)場(chǎng)景下的時(shí)候,可以嘗試使用 Apache Hbase呢?
1. HBase中文學(xué)習(xí)手冊(cè)之揭開Hbase的神秘面紗,# Apache HBase中文學(xué)習(xí)手冊(cè),hbase,學(xué)習(xí),筆記

  • 當(dāng)我們需要對(duì)大數(shù)據(jù)進(jìn)行隨機(jī),實(shí)時(shí)讀/寫訪問時(shí),可以使用 Apache Hbase.
  • 該項(xiàng)目的目標(biāo)是在商用硬件集群之上托管非常大的表(數(shù)十億行 X 數(shù)百萬(wàn)列)。
  • Apache HBase 是一個(gè)開源、分布式、版本化、非關(guān)系數(shù)據(jù)庫(kù),模仿了 Google 的Bigtable: Chang 等人的結(jié)構(gòu)化數(shù)據(jù)分布式存儲(chǔ)系統(tǒng)。
  • 正如 Bigtable 利用 Google 文件系統(tǒng)提供的分布式數(shù)據(jù)存儲(chǔ)一樣,Apache HBase 在 Hadoop 和 HDFS 之上提供類似 Bigtable 的功能
1.1.3.1 不適合使用 HBase的場(chǎng)景

當(dāng)你的情況大體上符合以下任意一種的時(shí)候:

  • 主要需求是數(shù)據(jù)分析,比如做報(bào)表。
  • 單表數(shù)據(jù)量不超過(guò)千萬(wàn)。

請(qǐng)不要使用HBase,使用MySQL或者Oracle之類的產(chǎn)品可以讓你的腦細(xì)胞免受折磨。

1.1.3.2 適合使用 HBase的場(chǎng)景

當(dāng)你的情況是:

  • 單表數(shù)據(jù)量超千萬(wàn),而且并發(fā)還挺高。
  • 數(shù)據(jù)分析需求較弱,或者不需要那么靈活或者實(shí)時(shí)。請(qǐng)使用HBase,它不會(huì)讓你失望的。

請(qǐng)使用HBase,它不會(huì)讓你失望的。

1.1.4 HBase的特點(diǎn)

1. HBase中文學(xué)習(xí)手冊(cè)之揭開Hbase的神秘面紗,# Apache HBase中文學(xué)習(xí)手冊(cè),hbase,學(xué)習(xí),筆記

  • 線性和模塊化的可擴(kuò)展性。
  • 讀寫嚴(yán)格一致。
  • 自動(dòng)且可配置的表分片
  • RegionServer 之間的自動(dòng)故障轉(zhuǎn)移支持。
  • 用于使用 Apache HBase 表支持 Hadoop MapReduce 作業(yè)的便捷基類。
  • 易于使用 Java API 進(jìn)行客戶端訪問。
  • 用于實(shí)時(shí)查詢的塊緩存和布隆過(guò)濾器。
  • 通過(guò)服務(wù)器端過(guò)濾器下推查詢謂詞
  • Thrift 網(wǎng)關(guān)和支持 XML、Protobuf 和二進(jìn)制數(shù)據(jù)編碼選項(xiàng)的 REST-ful Web 服務(wù)
  • 基于 jruby (JIRB) 的可擴(kuò)展 shell
  • 支持通過(guò) Hadoop 指標(biāo)子系統(tǒng)將指標(biāo)導(dǎo)出到文件或 Ganglia; 或通過(guò) JMX
1.1.4.1 HBase的優(yōu)點(diǎn)

與其他數(shù)據(jù)庫(kù)相比,HBase在系統(tǒng)設(shè)計(jì)以及實(shí)際實(shí)踐中有很多獨(dú)特的優(yōu)點(diǎn)。

  • 容量巨大:HBase的單表可以支持千億行、百萬(wàn)列的數(shù)據(jù)規(guī)模,數(shù)據(jù)容量可以達(dá)到TB甚至PB級(jí)別。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),如Oracle和MySQL等,如果單表記錄條數(shù)超過(guò)億行,讀寫性能都會(huì)急劇下降,在HBase中并不會(huì)出現(xiàn)這樣的問題。
  • 良好的可擴(kuò)展性:HBase集群可以非常方便地實(shí)現(xiàn)集群容量擴(kuò)展,主要包括數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)擴(kuò)展以及讀寫服務(wù)節(jié)點(diǎn)擴(kuò)展。HBase底層數(shù)據(jù)存儲(chǔ)依賴于HDFS系統(tǒng),HDFS可以通過(guò)簡(jiǎn)單地增加DataNode實(shí)現(xiàn)擴(kuò)展,HBase讀寫服務(wù)節(jié)點(diǎn)也一樣,可以通過(guò)簡(jiǎn)單的增加RegionServer節(jié)點(diǎn)實(shí)現(xiàn)計(jì)算層的擴(kuò)展。
  • 稀疏性:HBase支持大量稀疏存儲(chǔ),即允許大量列值為空,并不占用任何存儲(chǔ)空間。這與傳統(tǒng)數(shù)據(jù)庫(kù)不同,傳統(tǒng)數(shù)據(jù)庫(kù)對(duì)于空值的處理要占用一定的存儲(chǔ)空間,這會(huì)造成一定程度的存儲(chǔ)空間浪費(fèi)。因此可以使用HBase存儲(chǔ)多至上百萬(wàn)列的數(shù)據(jù),即使表中存在大量的空值,也不需要任何額外空間。
  • 高性能:HBase目前主要擅長(zhǎng)于OLTP場(chǎng)景,數(shù)據(jù)寫操作性能強(qiáng)勁,對(duì)于隨機(jī)單點(diǎn)讀以及小范圍的掃描讀,其性能也能夠得到保證。對(duì)于大范圍的掃描讀可以使用MapReduce提供的API,以便實(shí)現(xiàn)更高效的并行掃描。
  • 多版本:HBase支持多版本特性,即一個(gè)KV可以同時(shí)保留多個(gè)版本,用戶可以根據(jù)需要選擇最新版本或者某個(gè)歷史版本。
  • 支持過(guò)期:HBase支持TTL過(guò)期特性,用戶只需要設(shè)置過(guò)期時(shí)間,超過(guò)TTL的數(shù)據(jù)就會(huì)被自動(dòng)清理,不需要用戶寫程序手動(dòng)刪除。
  • Hadoop原生支持:HBase是Hadoop生態(tài)中的核心成員之一,很多生態(tài)組件都可以與其直接對(duì)接。HBase數(shù)據(jù)存儲(chǔ)依賴于HDFS,這樣的架構(gòu)可以帶來(lái)很多好處,比如用戶可以直接繞過(guò)HBase系統(tǒng)操作HDFS文件,高效地完成數(shù)據(jù)掃描或者數(shù)據(jù)導(dǎo)入工作;再比如可以利用HDFS提供的多級(jí)存儲(chǔ)特性(Archival Storage Feature),根據(jù)業(yè)務(wù)的重要程度將HBase進(jìn)行分級(jí)存儲(chǔ),重要的業(yè)務(wù)放到SSD,不重要的業(yè)務(wù)放到HDD。或者用戶可以設(shè)置歸檔時(shí)間,進(jìn)而將最近的數(shù)據(jù)放在SSD,將歸檔數(shù)據(jù)文件放在HDD。另外,HBase對(duì)MapReduce的支持也已經(jīng)有了很多案例,后續(xù)還會(huì)針對(duì)Spark做更多的工作。
1.1.4.2 HBase的缺點(diǎn)

任何一個(gè)系統(tǒng)都不會(huì)完美,HBase也一樣。HBase不能適用于所有應(yīng)用場(chǎng)景,例如:

  • HBase本身不支持很復(fù)雜的聚合運(yùn)算(如Join、GroupBy等)。如果業(yè)務(wù)中需要使用聚合運(yùn)算,可以在HBase之上架設(shè)Phoenix組件或者Spark組件,前者主要應(yīng)用于小規(guī)模聚合的OLTP場(chǎng)景,后者應(yīng)用于大規(guī)模聚合的OLAP場(chǎng)景。
  • HBase本身并沒有實(shí)現(xiàn)二級(jí)索引功能,所以不支持二級(jí)索引查找。好在針對(duì)HBase實(shí)現(xiàn)的第三方二級(jí)索引方案非常豐富,比如目前比較普遍的使用Phoenix提供的二級(jí)索引功能。
  • HBase原生不支持全局跨行事務(wù),只支持單行事務(wù)模型。同樣,可以使用Phoenix提供的全局事務(wù)模型組件來(lái)彌補(bǔ)HBase的這個(gè)缺陷。

可以看到,HBase系統(tǒng)本身雖然不擅長(zhǎng)某些工作領(lǐng)域,但是借助于Hadoop強(qiáng)大的生態(tài)圈,用戶只需要在其上架設(shè)Phoenix組件、Spark組件或者其他第三方組件,就可以有效地協(xié)同工作。

1.1.5 HBase設(shè)計(jì)架構(gòu)

  • HBase體系結(jié)構(gòu)借鑒了BigTable論文,是典型的Master-Slave模型。
  • 系統(tǒng)中有一個(gè)管理集群的Master節(jié)點(diǎn)以及大量實(shí)際服務(wù)用戶讀寫的RegionServer節(jié)點(diǎn)。
  • 除此之外,HBase中所有數(shù)據(jù)最終都存儲(chǔ)在HDFS系統(tǒng)中,這與BigTable實(shí)際數(shù)據(jù)存儲(chǔ)在GFS中相對(duì)應(yīng);系統(tǒng)中還有一個(gè)ZooKeeper節(jié)點(diǎn),協(xié)助Master對(duì)集群進(jìn)行管理。

HBase體系結(jié)構(gòu)如圖1-6所示。
1. HBase中文學(xué)習(xí)手冊(cè)之揭開Hbase的神秘面紗,# Apache HBase中文學(xué)習(xí)手冊(cè),hbase,學(xué)習(xí),筆記文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-663475.html

  • 從HBase的部署架構(gòu)上來(lái)說(shuō),HBase有兩種服務(wù)器:Master服務(wù)器和RegionServer服務(wù)器。
  • 一般一個(gè)HBase集群有一個(gè)Master服務(wù)器和幾個(gè)RegionServer服務(wù)器。
  • 每個(gè)模塊的職責(zé)功能:
    1. HBase中文學(xué)習(xí)手冊(cè)之揭開Hbase的神秘面紗,# Apache HBase中文學(xué)習(xí)手冊(cè),hbase,學(xué)習(xí),筆記
    • Client
      • HBase客戶端(Client)提供了Shell命令行接口、原生Java API編程接口、Thrift/REST API編程接口以及MapReduce編程接口。
      • HBase客戶端支持所有常見的DML操作以及DDL操作,即數(shù)據(jù)的增刪改查和表的日常維護(hù)等.
    • Master
      • Master服務(wù)器負(fù)責(zé)維護(hù)表結(jié)構(gòu)信息,實(shí)際的數(shù)據(jù)都存儲(chǔ)在RegionServer服務(wù)器上)
      • 客戶端獲取數(shù)據(jù)由客戶端直連RegionServer的,所以你會(huì)發(fā)現(xiàn)Master掛掉之后你依然可以查詢數(shù)據(jù),但就是不能新建表了
    • RegionServer
      • RegionServer是直接負(fù)責(zé)存儲(chǔ)數(shù)據(jù)的服務(wù)器。
    • HDFS
      • RegionServer保存的表數(shù)據(jù)直接存儲(chǔ)在Hadoop的HDFS上;
      • HBase底層依賴HDFS組件存儲(chǔ)實(shí)際數(shù)據(jù),包括用戶數(shù)據(jù)文件、HLog日志文件等最終都會(huì)寫入HDFS落盤。
    • Zookeeper:
      • 客戶端每次與HBase連接,其實(shí)都是先與ZooKeeper通信
      • ZooKeeper管理了HBase所有RegionServer的信息,包括具體的數(shù)據(jù)段存放在哪個(gè)RegionServer上。
      • 查詢出哪個(gè)RegionServer需要連接,然后再連接RegionServer。
      • 實(shí)現(xiàn)Master高可用
      • 管理系統(tǒng)核心元數(shù)據(jù)
      • 參與RegionServer宕機(jī)恢復(fù)
      • 實(shí)現(xiàn)分布式表鎖

1.2 附錄

1.2.1功能模塊與職責(zé)詳情

功能模塊 功能職責(zé)
Client(HBase客戶端) HBase客戶端(Client)提供了Shell命令行接口、原生Java API編程接口、Thrift/REST API編程接口以及MapReduce編程接口。HBase客戶端支持所有常見的DML操作以及DDL操作,即數(shù)據(jù)的增刪改查和表的日常維護(hù)等。其中Thrift/REST API主要用于支持非Java的上層業(yè)務(wù)需求,MapReduce接口主要用于批量數(shù)據(jù)導(dǎo)入以及批量數(shù)據(jù)讀取。HBase客戶端訪問數(shù)據(jù)行之前,首先需要通過(guò)元數(shù)據(jù)表定位目標(biāo)數(shù)據(jù)所在RegionServer,之后才會(huì)發(fā)送請(qǐng)求到該RegionServer。同時(shí)這些元數(shù)據(jù)會(huì)被緩存在客戶端本地,以方便之后的請(qǐng)求訪問。如果集群RegionServer發(fā)生宕機(jī)或者執(zhí)行了負(fù)載均衡等,從而導(dǎo)致數(shù)據(jù)分片發(fā)生遷移,客戶端需要重新請(qǐng)求最新的元數(shù)據(jù)并緩存在本地。
Zookeeper ZooKeeper(ZK)也是Apache Hadoop的一個(gè)頂級(jí)項(xiàng)目,基于Google的Chubby開源實(shí)現(xiàn),主要用于協(xié)調(diào)管理分布式應(yīng)用程序。在HBase系統(tǒng)中,ZooKeeper扮演著非常重要的角色。?實(shí)現(xiàn)Master高可用:通常情況下系統(tǒng)中只有一個(gè)Master工作,一旦Active Master由于異常宕機(jī),ZooKeeper會(huì)檢測(cè)到該宕機(jī)事件,并通過(guò)一定機(jī)制選舉出新的Master,保證系統(tǒng)正常運(yùn)轉(zhuǎn)。?管理系統(tǒng)核心元數(shù)據(jù):比如,管理當(dāng)前系統(tǒng)中正常工作的RegionServer集合,保存系統(tǒng)元數(shù)據(jù)表hbase:meta所在的RegionServer地址等。?參與RegionServer宕機(jī)恢復(fù):ZooKeeper通過(guò)心跳可以感知到RegionServer是否宕機(jī),并在宕機(jī)后通知Master進(jìn)行宕機(jī)處理。?實(shí)現(xiàn)分布式表鎖:HBase中對(duì)一張表進(jìn)行各種管理操作(比如alter操作)需要先加表鎖,防止其他用戶對(duì)同一張表進(jìn)行管理操作,造成表狀態(tài)不一致。和其他RDBMS表不同,HBase中的表通常都是分布式存儲(chǔ),ZooKeeper可以通過(guò)特定機(jī)制實(shí)現(xiàn)分布式表鎖
Master ZooKeeper(ZK)也是Apache Hadoop的一個(gè)頂級(jí)項(xiàng)目,基于Google的Chubby開源實(shí)現(xiàn),主要用于協(xié)調(diào)管理分布式應(yīng)用程序。在HBase系統(tǒng)中,ZooKeeper扮演著非常重要的角色。?實(shí)現(xiàn)Master高可用:通常情況下系統(tǒng)中只有一個(gè)Master工作,一旦Active Master由于異常宕機(jī),ZooKeeper會(huì)檢測(cè)到該宕機(jī)事件,并通過(guò)一定機(jī)制選舉出新的Master,保證系統(tǒng)正常運(yùn)轉(zhuǎn)。?管理系統(tǒng)核心元數(shù)據(jù):比如,管理當(dāng)前系統(tǒng)中正常工作的RegionServer集合,保存系統(tǒng)元數(shù)據(jù)表hbase:meta所在的RegionServer地址等。?參與RegionServer宕機(jī)恢復(fù):ZooKeeper通過(guò)心跳可以感知到RegionServer是否宕機(jī),并在宕機(jī)后通知Master進(jìn)行宕機(jī)處理。?實(shí)現(xiàn)分布式表鎖:HBase中對(duì)一張表進(jìn)行各種管理操作(比如alter操作)需要先加表鎖,防止其他用戶對(duì)同一張表進(jìn)行管理操作,造成表狀態(tài)不一致。和其他RDBMS表不同,HBase中的表通常都是分布式存儲(chǔ),ZooKeeper可以通過(guò)特定機(jī)制實(shí)現(xiàn)分布式表鎖
RegionServer RegionServer主要用來(lái)響應(yīng)用戶的IO請(qǐng)求,是HBase中最核心的模塊,由WAL(HLog)、BlockCache以及多個(gè)Region構(gòu)成。? WAL(HLog):HLog在HBase中有兩個(gè)核心作用——其一,用于實(shí)現(xiàn)數(shù)據(jù)的高可靠性,HBase數(shù)據(jù)隨機(jī)寫入時(shí),并非直接寫入HFile數(shù)據(jù)文件,而是先寫入緩存,再異步刷新落盤。為了防止緩存數(shù)據(jù)丟失,數(shù)據(jù)寫入緩存之前需要首先順序?qū)懭際Log,這樣,即使緩存數(shù)據(jù)丟失,仍然可以通過(guò)HLog日志恢復(fù);其二,用于實(shí)現(xiàn)HBase集群間主從復(fù)制,通過(guò)回放主集群推送過(guò)來(lái)的HLog日志實(shí)現(xiàn)主從復(fù)制。? BlockCache:HBase系統(tǒng)中的讀緩存。客戶端從磁盤讀取數(shù)據(jù)之后通常會(huì)將數(shù)據(jù)緩存到系統(tǒng)內(nèi)存中,后續(xù)訪問同一行數(shù)據(jù)可以直接從內(nèi)存中獲取而不需要訪問磁盤。對(duì)于帶有大量熱點(diǎn)讀的業(yè)務(wù)請(qǐng)求來(lái)說(shuō),緩存機(jī)制會(huì)帶來(lái)極大的性能提升。BlockCache緩存對(duì)象是一系列Block塊,一個(gè)Block默認(rèn)為64K,由物理上相鄰的多個(gè)KV數(shù)據(jù)組成。BlockCache同時(shí)利用了空間局部性和時(shí)間局部性原理,前者表示最近將讀取的KV數(shù)據(jù)很可能與當(dāng)前讀取到的KV數(shù)據(jù)在地址上是鄰近的,緩存單位是Block(塊)而不是單個(gè)KV就可以實(shí)現(xiàn)空間局部性;后者表示一個(gè)KV數(shù)據(jù)正在被訪問,那么近期它還可能再次被訪問。當(dāng)前BlockCache主要有兩種實(shí)現(xiàn)——LRUBlockCache和BucketCache,前者實(shí)現(xiàn)相對(duì)簡(jiǎn)單,而后者在GC優(yōu)化方面有明顯的提升。? Region:數(shù)據(jù)表的一個(gè)分片,當(dāng)數(shù)據(jù)表大小超過(guò)一定閾值就會(huì)“水平切分”,分裂為兩個(gè)Region。Region是集群負(fù)載均衡的基本單位。通常一張表的Region會(huì)分布在整個(gè)集群的多臺(tái)RegionServer上,一個(gè)RegionServer上會(huì)管理多個(gè)Region,當(dāng)然,這些Region一般來(lái)自不同的數(shù)據(jù)表。一個(gè)Region由一個(gè)或者多個(gè)Store構(gòu)成,Store的個(gè)數(shù)取決于表中列簇(column family)的個(gè)數(shù),多少個(gè)列簇就有多少個(gè)Store。HBase中,每個(gè)列簇的數(shù)據(jù)都集中存放在一起形成一個(gè)存儲(chǔ)單元Store,因此建議將具有相同IO特性的數(shù)據(jù)設(shè)置在同一個(gè)列簇中。每個(gè)Store由一個(gè)MemStore和一個(gè)或多個(gè)HFile組成。MemStore稱為寫緩存,用戶寫入數(shù)據(jù)時(shí)首先會(huì)寫到MemStore,當(dāng)MemStore寫滿之后(緩存數(shù)據(jù)超過(guò)閾值,默認(rèn)128M)系統(tǒng)會(huì)異步地將數(shù)據(jù)f lush成一個(gè)HFile文件。顯然,隨著數(shù)據(jù)不斷寫入,HFile文件會(huì)越來(lái)越多,當(dāng)HFile文件數(shù)超過(guò)一定閾值之后系統(tǒng)將會(huì)執(zhí)行Compact操作,將這些小文件通過(guò)一定策略合并成一個(gè)或多個(gè)大文件
Master ZooKeeper(ZK)也是Apache Hadoop的一個(gè)頂級(jí)項(xiàng)目,基于Google的Chubby開源實(shí)現(xiàn),主要用于協(xié)調(diào)管理分布式應(yīng)用程序。在HBase系統(tǒng)中,ZooKeeper扮演著非常重要的角色。?實(shí)現(xiàn)Master高可用:通常情況下系統(tǒng)中只有一個(gè)Master工作,一旦Active Master由于異常宕機(jī),ZooKeeper會(huì)檢測(cè)到該宕機(jī)事件,并通過(guò)一定機(jī)制選舉出新的Master,保證系統(tǒng)正常運(yùn)轉(zhuǎn)。?管理系統(tǒng)核心元數(shù)據(jù):比如,管理當(dāng)前系統(tǒng)中正常工作的RegionServer集合,保存系統(tǒng)元數(shù)據(jù)表hbase:meta所在的RegionServer地址等。?參與RegionServer宕機(jī)恢復(fù):ZooKeeper通過(guò)心跳可以感知到RegionServer是否宕機(jī),并在宕機(jī)后通知Master進(jìn)行宕機(jī)處理。?實(shí)現(xiàn)分布式表鎖:HBase中對(duì)一張表進(jìn)行各種管理操作(比如alter操作)需要先加表鎖,防止其他用戶對(duì)同一張表進(jìn)行管理操作,造成表狀態(tài)不一致。和其他RDBMS表不同,HBase中的表通常都是分布式存儲(chǔ),ZooKeeper可以通過(guò)特定機(jī)制實(shí)現(xiàn)分布式表鎖
HDFS HBase底層依賴HDFS組件存儲(chǔ)實(shí)際數(shù)據(jù),包括用戶數(shù)據(jù)文件、HLog日志文件等最終都會(huì)寫入HDFS落盤。HDFS是Hadoop生態(tài)圈內(nèi)最成熟的組件之一,數(shù)據(jù)默認(rèn)三副本存儲(chǔ)策略可以有效保證數(shù)據(jù)的高可靠性。HBase內(nèi)部封裝了一個(gè)名為DFSClient的HDFS客戶端組件,負(fù)責(zé)對(duì)HDFS的實(shí)際數(shù)據(jù)進(jìn)行讀寫訪問。

1.2.2 HBase中的基本概念

基本概念 解釋
table 表,一個(gè)表包含多行數(shù)據(jù)。
row 行,一行數(shù)據(jù)包含一個(gè)唯一標(biāo)識(shí)rowkey、多個(gè)column以及對(duì)應(yīng)的值。在HBase中,一張表中所有row都按照rowkey的字典序由小到大排序
column 列,與關(guān)系型數(shù)據(jù)庫(kù)中的列不同,HBase中的column由column family(列簇)以及qualif ier(列名)兩部分組成,兩者中間使用":"相連。比如contents:html,其中contents為列簇,html為列簇下具體的一列。column family在表創(chuàng)建的時(shí)候需要指定,用戶不能隨意增減。一個(gè)column family下可以設(shè)置任意多個(gè)qualif ier,因此可以理解為HBase中的列可以動(dòng)態(tài)增加,理論上甚至可以擴(kuò)展到上百萬(wàn)列。
timestamp 時(shí)間戳,每個(gè)cell在寫入HBase的時(shí)候都會(huì)默認(rèn)分配一個(gè)時(shí)間戳作為該cell的版本,當(dāng)然,用戶也可以在寫入的時(shí)候自帶時(shí)間戳。HBase支持多版本特性,即同一rowkey、column下可以有多個(gè)value存在,這些value使用timestamp作為版本號(hào),版本越大,表示數(shù)據(jù)越新。

1.2.3 本文中涉及的思維導(dǎo)圖原件下載

  • 點(diǎn)擊下載 揭開HBase的神秘面紗思維導(dǎo)圖原件

到了這里,關(guān)于1. HBase中文學(xué)習(xí)手冊(cè)之揭開Hbase的神秘面紗的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Linux】揭開套接字編程的神秘面紗(下)

    【Linux】揭開套接字編程的神秘面紗(下)

    ??? 作者:@阿亮joy. ?? 專欄: 《學(xué)會(huì)Linux》 ?? 座右銘:每個(gè)優(yōu)秀的人都有一段沉默的時(shí)光,那段時(shí)光是付出了很多努力卻得不到結(jié)果的日子,我們把它叫做扎根 在揭開套接字編程神秘面紗(上)中,我們已經(jīng)學(xué)習(xí)到了套接字編程的相關(guān)基礎(chǔ)知識(shí)以及編寫了基于 UDP 協(xié)議的

    2023年04月12日
    瀏覽(33)
  • 華為鴻蒙系統(tǒng):揭開全新操作系統(tǒng)的神秘面紗

    華為鴻蒙系統(tǒng):揭開全新操作系統(tǒng)的神秘面紗

    在全球科技競(jìng)爭(zhēng)日益激烈的背景下,我國(guó)科技巨頭華為公司自主研發(fā)了一款全新的操作系統(tǒng)——鴻蒙。這款操作系統(tǒng)旨在為華為自家設(shè)備提供強(qiáng)大的性能、安全性和智能化特性,以滿足用戶不斷增長(zhǎng)的需求。為了幫助廣大開發(fā)者充分挖掘鴻蒙系統(tǒng)的巨大潛力,華為發(fā)布了一本

    2024年02月04日
    瀏覽(20)
  • 揭開神秘面紗,會(huì)stream流就會(huì)大數(shù)據(jù)

    揭開神秘面紗,會(huì)stream流就會(huì)大數(shù)據(jù)

    目錄 準(zhǔn)備工作 1.map類 1.1 java stream map 1.2 spark map 1.2.1 MapFunction 1.2.2 MapPartitionsFunction 2.flatMap類 2.1 java stream flatMap 2.2 spark flatMap 3 groupby類 3.1 java stream groupBy 3.2 spark groupBy 3.3 spark groupByKey 4 reduce類 4.1 java stream reduce 4.2 spark reduce 其它常見操作類 小結(jié) 如果你會(huì)任意一門語(yǔ)言的stream流

    2023年04月27日
    瀏覽(22)
  • 06-揭開神秘面紗:Golang method的魅力解析

    06-揭開神秘面紗:Golang method的魅力解析

    ??個(gè)人主頁(yè):個(gè)人主頁(yè) ??系列專欄:Golang基礎(chǔ) ??Go(又稱Golang)是由Google開發(fā)的開源編程語(yǔ)言。它結(jié)合了靜態(tài)類型的安全性和動(dòng)態(tài)語(yǔ)言的靈活性,擁有高效的并發(fā)編程能力和簡(jiǎn)潔的語(yǔ)法。Go被設(shè)計(jì)用于構(gòu)建可擴(kuò)展、高性能的軟件系統(tǒng),具有優(yōu)秀的內(nèi)存管理和快速的編譯速度

    2024年02月09日
    瀏覽(16)
  • 揭開黑客的神秘面紗:黑客文化、技術(shù)手段與防御策略

    揭開黑客的神秘面紗:黑客文化、技術(shù)手段與防御策略

    黑客一詞源于英文單詞\\\"hacker\\\",它在過(guò)去的幾十年中經(jīng)歷了很多變化和演變。黑客的定義因其不斷變化的含義而變得復(fù)雜,但總體上,黑客是指那些具有出色計(jì)算機(jī)技術(shù)與知識(shí)的人。他們利用這些技能來(lái)探索、發(fā)現(xiàn)和改進(jìn)計(jì)算機(jī)系統(tǒng)的弱點(diǎn)與缺陷。然而,黑客行為并不一定都

    2024年02月08日
    瀏覽(110)
  • 解密Vue 3:透過(guò)原理看框架,揭開它的神秘面紗

    解密Vue 3:透過(guò)原理看框架,揭開它的神秘面紗

    Vue 3 是一種用于 構(gòu)建用戶界面的現(xiàn)代 JavaScript 框架 。它基于 響應(yīng)式編程 和 虛擬 DOM 技術(shù) ,并通過(guò) 組件化 的方式來(lái)實(shí)現(xiàn)可重用的 UI 組件。 下面是 Vue 3 的主要原理: Vue 3 的核心是其響應(yīng)式系統(tǒng),它用于 追蹤數(shù)據(jù)變化并使其自動(dòng)更新 。Vue 3 使用 ES6 的 Proxy 對(duì)象來(lái) 實(shí)現(xiàn)監(jiān)聽

    2024年02月12日
    瀏覽(49)
  • 逍遙自在學(xué)C語(yǔ)言 | 揭開while循環(huán)的神秘面紗

    逍遙自在學(xué)C語(yǔ)言 | 揭開while循環(huán)的神秘面紗

    循環(huán)是一種重要的控制結(jié)構(gòu),可以使程序重復(fù)執(zhí)行一段代碼,直到滿足特定條件為止。 在C語(yǔ)言中,while和do-while是兩種常用的循環(huán)結(jié)構(gòu),本文將詳細(xì)介紹這兩種循環(huán)的用法。 第一位閃亮登場(chǎng),有請(qǐng)今后會(huì)一直教我們C語(yǔ)言的老師 —— 自在。 第二位上場(chǎng)的是和我們一起學(xué)習(xí)的

    2024年02月06日
    瀏覽(25)
  • 探秘函數(shù)棧幀:『 揭開函數(shù)棧幀創(chuàng)建與銷毀的神秘面紗 』

    探秘函數(shù)棧幀:『 揭開函數(shù)棧幀創(chuàng)建與銷毀的神秘面紗 』

    .. 目錄 知識(shí)點(diǎn)回顧 一、什么是棧幀(堆棧幀)? 1.內(nèi)存布局 2.常用寄存器 3.匯編指令 ????對(duì)于棧的詳細(xì)介紹 : ????函數(shù)棧幀的介紹: 二、函數(shù)調(diào)用中的棧幀 1.探究main函數(shù)棧幀的創(chuàng)建 2.對(duì)main函數(shù)中的代碼進(jìn)行分析 3.探究Add函數(shù)棧幀的創(chuàng)建? 三、函數(shù)棧幀的銷毀過(guò)程 博客引

    2024年02月06日
    瀏覽(29)
  • 云計(jì)算與邊緣計(jì)算:揭開大腦與中樞神經(jīng)系統(tǒng)的神秘面紗

    云計(jì)算和邊緣計(jì)算是當(dāng)今信息技術(shù)領(lǐng)域的兩個(gè)熱門話題。它們?cè)谟?jì)算模式和通信模式上有著本質(zhì)的區(qū)別,但它們的出現(xiàn)都為人類帶來(lái)了前所未有的計(jì)算和通信便利。在本文中,我們將探討云計(jì)算和邊緣計(jì)算的相同點(diǎn)和不同點(diǎn),并以大腦和中樞神經(jīng)系統(tǒng)為例,闡述云計(jì)算和邊緣

    2024年02月05日
    瀏覽(17)
  • AI輔寫疑似度檢測(cè)PaperPass:揭開神秘面紗,探索無(wú)盡可能

    AI輔寫疑似度檢測(cè)PaperPass:揭開神秘面紗,探索無(wú)盡可能

    大家好,小發(fā)貓降ai今天來(lái)聊聊AI輔寫疑似度檢測(cè)paperbert:揭開神秘面紗,探索無(wú)盡可能,希望能給大家提供一點(diǎn)參考。降ai輔寫 以下是針對(duì)論文AI輔寫率高的情況,提供一些修改建議和技巧,可以借助此類工具: 還有: AI輔寫疑似度檢測(cè)paperbert:揭開神秘面紗,探索無(wú)盡可能

    2024年03月08日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包