搞懂Hadoop、MapReduce、Hive、HBase、YARN及Spark的區別與聯繫

2020-12-14 阿啄debugIT

Hadoop、MapReduce、Hive、HBase、YARN、Spark……初搞大數據的,面對一堆名詞,猶如走進森林,弄得焦頭爛額……別說深入底層架構原理,就連他們之間的區別聯繫,有時候,都搞迷糊……

搞懂大數據各個組件的區別與lian'x

01那什麼是hadoop呢?

Hadoop是一個開源框架,允許使用簡單的編程模型,在跨計算機集群的分布式環境中,存儲和處理大數據。它的設計是從單個伺服器擴展到數千個機器,每個都提供本地計算和存儲。

Hadoop最底部是 Hadoop Distributed File System(HDFS),它存儲 Hadoop 集群中所有存儲節點上的文件。HDFS的上一層是MapReduce 引擎,該引擎由 JobTrackers 和 TaskTrackers 組成。

Hadoop分布式計算平臺,最核心的是,提供海量數據存儲的HDFS,與提供海量數據計算的MapReduce,以及數據倉庫工具Hive和分布式資料庫Hbase。

Hadoop三大組件:

分布式文件系統:HDFS —— 實現將文件分布式存儲在很多的伺服器上分布式運算編程框架:MapReduce——實現多臺機器的分布式並行運算分布式資源調度平臺:YARN —— 幫用戶調度大量的mapreduce程序,併合理分配運算資源

02什麼是MapReduce

MapReduce是一種編程模型,是指定一個Map(映射)函數,用來把一組鍵值對,映射成一組新的鍵值對,指定並發的Reduce(歸約)函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵組。

MapReduce核心思想

分而治之,先分後和:將一個大的、複雜的工作或任務,拆分成多個小的任務,並行處理,最終進行合併。

構建抽象模型:Map和Reduce

MapReduce借鑑了函數式語言中的思想,用Map和Reduce兩個函數,提供了高層的並行編程抽象模型。

Map:

對一組數據元素,進行某種重複式的處理([k1,v1] → [(k2,v2)])

Reduce:

對Map的中間結果,進行某種進一步的結果整理([k2, {v2,…}] → [k3, v3])

03那什麼是hive呢

hive是基於Hadoop的一個數據倉庫工具,用來進行數據提取、轉化、加載,可以存儲、查詢和分析存儲在Hadoop中的大規模數據的機制。

hive數據倉庫工具能將結構化的數據文件映射為一張資料庫表,並提供SQL查詢功能,能將SQL語句轉變成MapReduce任務來執行。

hive與關係型資料庫的SQL略有不同,但支持了絕大多數的語句如DDL、DML以及常見的聚合函數、連接查詢、條件查詢。

hive提供了很多具有進行數據提取轉化加載,用來存儲、查詢和分析存儲在Hadoop中的大規模數據集,並允許用戶自定義函數插件,包括支持UDF(User-Defined Function)、UDAF(User-Defnes AggregateFunction)和UDTF(User-Defined Table-Generating Function),實現對map和reduce函數的定製,為數據操作提供了良好的伸縮性和可擴展性

元數據存儲

hive 將元數據存儲在資料庫中,如 mysql、derby。hive 中的元數據,包括表的名字,表的列和分區及其屬性,表的屬性(是否為外部表等),表的數據所在目錄等。

解釋器、編譯器、優化器、執行器

解釋器、編譯器、優化器完成HQL 查詢語句,從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃存儲在 HDFS 中,並在隨後由 MapReduce 調用執行

hive 的數據存儲

在 HDFS 中,大部分的查詢由 MapReduce 完成(不包含 * 的查詢,比如 select * from tbl 不會生成MapReduce 任務)。

數據存儲模型編輯

hive中包含以下四類數據模型:表(Table)、外部表(External Table)、分區(Partition)、桶(Bucket)。

(1) hive中的Table,和資料庫中的Table在概念上是類似的。在hive中每一個Table都有一個相應的目錄存儲數據

(2)外部表是一個已經存儲在HDFS中,並具有一定格式的數據。使用外部表意味著hive表內的數據,不在hive的數據倉庫內,它會到倉庫目錄以外的位置訪問數據。

外部表和普通表的操作不同:

○建普通表的操作分兩步,即表的創建數據裝入(可以分開也可以同時完成)。

數據裝入過程中,實際數據會移動到數據表,所在的hive數據倉庫文件目錄中,其後對該數據表的訪問,將直接訪問所對應文件目錄中的數據

刪除表時,該表的元數據和在數據倉庫目錄下的實際數據將同時刪除

○外部表的創建只有一個步,創建表和裝入數據同時完成。外部表的實際數據存儲在創建語句

location參數,指定的外部HDFS文件路徑中,但這個數據並不會移動到hive數據倉庫的文件目錄中。

刪除外部表時,僅刪除其元數據

刪除外部表時,僅刪除其元數據,保存在外部HDFS文件目錄中的數據不會被刪除。

(3)分區對應於資料庫中的分區列的密集索引,但是hive中分區的組織方式,和資料庫中的很不相同。在hive中,表中的一個分區對應於表下的一個目錄,所有的分區的數據都存儲在對應的目錄中。

hive分區

(4)桶對指定列,進行哈希(hash)計算,會根據哈希值切分數據,目的是為了並行,每一個桶對應一個文件

hive桶

(5)分區又分桶

可以對數據表分區之後繼續分桶,但是分區之後繼續分桶,我們在hdfs文件系統上看不出分桶的多個數據表文件,只能看見一個文件,但是能從文件路徑上看出分區的信息。

分區又分桶

04那什麼是hbase呢?

HBase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,是一個面向列的資料庫,在表中它由行排序。表模式定義只能列族,也就是鍵值對。一個表有多個列族,以及每一個列族可以有任意數量的列。後續列的值連續存儲在磁碟上。表中的每個單元格值都具有時間戳

HBase系統架構體系圖

組成部件說明:

Client:

使用HBase RPC機制與HMaster和HRegionServer進行通信。Client與HMaster進行管理類操作。Client與HRegionServer進行數據讀寫類操作。Zookeeper:

Zookeeper Quorum存儲-ROOT-表地址、HMaster地址。HRegionServer把自己以Ephedral方式註冊到Zookeeper中,HMaster隨時感知各個HRegionServer的健康狀況。Zookeeper避免HMaster單點問題。HMaster:

HMaster沒有單點問題,HBase可以啟動多個HMaster,通過Zookeeper的Master Election機制,保證總有一個Master在運行。

主要負責Table和Region的管理工作:

管理用戶對表的增刪改查操作。管理HRegionServer的負載均衡,調整Region分布。Region Split後,負責新Region的分布。在HRegionServer停機後,負責失效HRegionServer上Region遷移。HRegionServer:

HBase中最核心的模塊,主要負責響應用戶I/O請求,向HDFS文件系統中讀寫。

HRegionServer向HDFS文件系統中讀寫

HRegionServer管理一系列HRegion對象;每個HRegion對應Table中一個Region,HRegion由多個HStore組成;每個HStore對應Table中一個Column Family的存儲;Column Family就是一個集中的存儲單元,故將具有相同IO特性的Column放在一個Column Family會更高效。HStore:

HBase存儲的核心。由MemStore和StoreFile組成。MemStore是Stored Memory Buffer。

HLog:

引入HLog原因:在分布式系統環境中,無法避免系統出錯或者宕機,一旦HRegionServer意外退出,MemStore中的內存數據就會丟失,引入HLog就是防止這種情況。

工作機制:

每個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,完成數據恢復。

hbase具體操作使用

在HBase中,namespace命名空間,是對一組表邏輯分組,類似RDBMS中的database,方便對表在業務上劃分。Apache HBase從0.98.0,0.95.2兩個版本開始支持namespace級別的授權操作,HBase全局管理員可以創建、修改和回收namespace的授權。

HBase系統默認定義了兩個預設的namespace:

hbase:系統內建表,包括namespace和meta表。default:用戶建表時,未指定namespace的表都創建在此命令的進退

命令的進退

hbase的一般操作

1、查看HBase運行狀態 status

2、創建表 create <table>,{NAME => <family>, VERSIONS => <VERSIONS>}

3、查看所有表 list

4、描述表詳情 describe 'User'

5、判斷表是否存在 exists 'User'

6、啟用或禁用表 is_disabled 'User' is_enabled 'User'

7、添加記錄,即插入數據,語法:put <table>,<rowkey>,<family:column>,<value>

8、根據rowKey查詢某個記錄,語法:get <table>,<rowkey>,[<family:column>, ...]

9、查詢所有記錄,語法:scan <table>,{COLUMNS => [family:column, ...], LIMIT => num}

另外,還可以添加TIMERANGE和FILTER等高級功能,STARTROW、ENDROW必須大寫,否則報錯,查詢結果不包含等於ENDROW的結果集。

10、統計表記錄數,語法:count <table>, {INTERVAL => intervalNum,CACHE => cacheNum}

INTERVAL設置多少行顯示一次及對應的rowkey,默認1000;CACHE每次去取的緩存區大小,默認是10,調整該參數可提高查詢速度。

hbase部分操作

hbase的刪除操作

hbase的刪除操作

hbase批量命令

bulkload為hbase的批量插入命令,應用於大數據量的插入,沒有性能問題。

批量插入命令

bulkload應用

業務場景:Hive離線計算好的數據,需要同步到HBase供在線業務查詢,思路是用HBase自帶的ImportTsv工具

Hive跑批:

建表語句,要用文本格式,即Tsv格式,分割符可以自己定義:

建表語句

跑批語句,注意設置不要compress,否則ImportTsv工具無法識別。

跑批語句,注意設置不要compress

生成中間的HFile。

生成中間的HFile

說明:config_dir是hbase的配置目錄,裡面包含hbase-site.xml,這個步驟ImportTsv會去讀取hive_table_dir中的文件,並分析hbase table的region分布,生成對應region的hfile,放到hfile_path中。

hbase中的ImportTsv與bulkload對比說明:

Hive表必須是帶分隔符的文本格式,而且不能壓縮(比如啟用了mapreduce的output snappy壓縮也不行)。ImportTsv可以直接一條條插入hbase,這時mapper解析一條,就插入一條,沒有reduce階段;相比bulkload,大批量數據性能不好。bulkload的優點是快,生成的hfile直接註冊到region server,數據對應用立即可見,沒有wal log,沒有flush。

05那什麼是YARN呢

Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可為上層應用提供統一的資源管理和調度,它的引入為集群在利用率、資源統一管理和數據共享等方面帶來了巨大好處。

Hadoop 資源管理器

Container

容器(Container)是 Yarn對資源做的一層抽象,對底層進行封裝,只提供給上層一個調用接口。

yarn資源管理器

如上所示,Yarn 將CPU核數,內存這些計算資源都封裝成為一個個的容器(Container)。需要注意兩點:

容器由 Node Manager 啟動和管理,並被它所監控。容器被 Resource Manager 進行調度。Resource Manager

最中央的那個 ResourceManager(RM)。顧名思義,是負責資源管理的,整個系統有且只有一個 RM,來負責資源的調度。它也包含了兩個主要的組件:定時調用器(Scheduler)以及應用管理器(Application Manager)。

應用管理器(Application Manager)

顧名思義,應用管理器,就是負責管理 Client 用戶提交的應用。定時調度器(Scheduler)不對用戶提交的程序監控,監控應用的工作,正是由應用管理器(Application Manager)完成的。

每當 Client 提交一個 Application 時候,就會新建一個Application Master 。由這個 Application Master ,去與 Resource Manager申請容器資源,獲得資源後,會將要運行的程序,發送到容器上啟動,然後進行分布式計算

為什麼是把運行程序發送到容器上去運行

如果以傳統的思路來看,是程序運行著不動,然後數據進進出出不停流轉。但當數據量大的時候就沒法這麼玩了,因為海量數據移動成本太大,時間太長。

提交一個 Application 到 Yarn 的流程

提交一個 Application 到 Yarn 的流程

但是中國有一句老話山不過來,我就過去。

大數據分布式計算就是這種思想,既然大數據難以移動,那就把容易移動的應用程式,發布到各個節點進行計算,這就是大數據分布式計算的思路。

Node Manager

Node Manager 是 Resource Manager 在每臺機器的上代理,負責容器的管理,並監控他們的資源使用情況(cpu,內存,磁碟及網絡等),以及向 Resource Manager / Scheduler 提供這些資源使用報告。

06那什麼是spark呢?

Spark 是一個用來實現快速,而通用的集群計算的平臺。

在速度方面,Spark 擴展了廣泛使用的 MapReduce 計算模型,而且高效地支持更多計算模式,包括交互式查詢和流處理。在處理大規模數據集時,速度快就意味著,可以進行交互式的數據操作,否則每次操作就需要等待數分鐘甚至數小時。

Spark 的一個主要特點就是能夠在內存中進行計算,因而更快。不過即使是,必須在磁碟上進行的複雜計算,Spark 依然比MapReduce 更加高效

總的來說,Spark 適用於各種各樣,原先需要多種不同的分布式平臺的場景,包括批處理、迭代算法、交互式查詢、流處理

通過在一個統一的框架下,支持這些不同的計算,Spark可以簡單而低耗地把各種處理流程整合在一起,大大減輕了原先需要對各種平臺分別管理的負擔。

spark通用內存並行計算框架

Spark 所提供的接口非常豐富。除了提供基於 Python、Java、Scala 和 SQL 的簡單易用的API 以及內建的豐富的程序庫以外,Spark 還能和其他大數據工具密切配合使用。例如,Spark 可以運行在 Hadoop 集群上,訪問包括 Cassandra 在內的任意 Hadoop 數據源。

Spark 以其先進的設計理念,迅速成為社區的熱門項目,圍繞著 Spark 推出了 SparkSQL、SparkStreaming、MLlib 和 GraphX 等組件,逐漸形成大數據處理一站式解決平臺。

07以上技術棧區別於聯繫

根據 Hadoop MapReduce 的工作流程,可以分析出 Hadoop MapRedcue 的一些缺點。

1)Hadoop MapRedue 的表達能力有限。

所有計算都需要轉換成 Map 和 Reduce 兩個操作,不能適用於所有場景,對於複雜的數據處理過程難以描述。

2)磁碟 I/O 開銷大。

Hadoop MapReduce 要求每個步驟間的數據序列化到磁碟,所以 I/O 成本很高,導致交互分析和迭代算法開銷很大,而幾乎所有的最優化和機器學習都是迭代的。所以,Hadoop MapReduce 不適合於交互分析和機器學習

3)計算延遲高。

如果想要完成比較複雜的工作,就必須將一系列的 MapReduce 作業,串聯起來,然後順序執行這些作業。每一個作業,都是高時延的,而且只有在前一個作業完成之後,下一個作業才能開始啟動。因此,Hadoop MapReduce 不能勝任比較複雜的多階段的計算服務

Spark 是借鑑了 Hadoop MapReduce 技術發展而來的,繼承了其分布式並行計算的優點,並改進了 MapReduce 明顯的缺陷。

Spark 使用Scala 語言進行實現,它是一種面向對象的函數式程式語言,能夠像操作本地集合對象一樣,輕鬆地操作分布式數據集。它具有運行速度快、易用性好、通用性強和隨處運行等特點,具體優勢如下。

1)Spark 提供了內存計算,把中間結果,放到內存中,帶來了更高的迭代運算效率。通過支持有向無環圖(DAG)的分布式,並行計算的編程框架,Spark 減少了迭代過程中數據需要寫入磁碟的需求,提高了處理效率。

2)Spark 為我們提供了一個全面、統一的框架,用於管理各種有著不同性質(文本數據、圖表數據等)的數據集和數據源(批量數據或實時的流數據)的大數據處理的需求。

Spark 使用內存緩存來提升性能,因此進行交互式分析也足夠快速,緩存同時提升了迭代算法的性能,這使得 Spark 非常適合數據理論任務,特別是機器學習。

3)Spark 比 Hadoop 更加通用。Hadoop 只提供了 Map 和 Reduce 兩種處理操作,而Spark 提供的數據集操作類型更加豐富,從而可以支持更多類型的應用。

Spark 的計算模式也屬於 MapReduce 類型,但提供的操作不僅包括 Map 和 Reduce,還提供了包括 Map、Filter、FlatMap、Sample、GroupByKey、ReduceByKey、Union、Join、Cogroup、MapValues、Sort、PartionBy 等多種轉換操作,以及 Count、Collect、Reduce、Lookup、Save 等行為操作。

4)Spark 基於 DAG 的任務調度執行機制,比 Hadoop MapReduce 的迭代執行機制更優越。

Spark 各個處理結點之間的通信模型,不再像 Hadoop 一樣,只有 Shuffle 一種模式,程序開發者可以使用 DAG 開發複雜的多步數據管道,控制中間結果的存儲、分區等。

Hadoop 與 Spark 執行流程對比

從中可以看出,Hadoop 不適合於做迭代計算,因為每次迭代都需要從磁碟中讀入數據,向磁碟寫中間結果,而且每個任務都需要從磁碟中讀入數據,處理的結果也要寫入磁碟,磁碟 I/O 開銷很大。

而 Spark 將數據載入內存後,後面的迭代都可以直接使用內存中的中間結果做計算,從而避免了從磁碟中頻繁讀取數據。

對於多維度隨機查詢也是一樣。在對 HDFS 同一批數據,做成百或上千維度查詢時,Hadoop 每做一個獨立的查詢,都要從磁碟中讀取這個數據;而 Spark只需要從磁碟中讀取一次後,就可以針對保留在內存中的中間結果進行反覆查詢。

Spark 在 2014 年打破了 Hadoop 保持的基準排序(Sort Bench mark)記錄,使用 206 個結點在 23 分鐘的時間裡完成了 100TB 數據的排序,而 Hadoop 則是使用了 2000 個結點在 72 分鐘才完成相同數據的排序。也就是說,Spark 只使用了百分之十的計算資源,就獲得了 Hadoop 3 倍的速度。

儘管與 Hadoop 相比,Spark 有較大優勢,但是並不能夠取代 Hadoop。

因為 Spark 是基於內存進行數據處理的,所以不適合於數據量特別大、對實時性要求不高的場合。另外,Hadoop 可以使用廉價的通用伺服器來搭建集群,而 Spark 對硬體要求比較高,特別是對內存和 CPU 有更高的要求。

相關焦點

  • 大數據之hadoop環境搭建
    上執行:ssh-copy-id hadoop01ssh-copy-id hadoop02ssh-copy-id hadoop03在hadoop02上執行:ssh-copy-idhadoop01ssh-copy-id hadoop02ssh-copy-id hadoop03在hadoop03上執行:ssh-copy-id hadoop0304.上傳並解壓安裝包
  • 對於大數據計算框架spark你了解多少呢?
    圖片來源於360Spark框架類似於MapReduce計算框架,但是它的速度能夠比spark快很多倍,其原因是因為MapReduce基於磁碟計算,而spark基於內存,而且擁有高級的DAG引擎傳統大數據的MapReduce,hive的數據引擎,以及Storm流式實時的計算。
  • hive之編譯源碼
    使用hive1.2.2,使用hadoop2.7.2,使用jdk1.8.0.-1.2.2-src/ql/src/java/org/apache/hadoop/hive/ql/exec//文件名稱[root@KEL1 exec]# vim DDLTask.java //將1925行的代碼改成如下形式,注意方法名稱是write,你要是只改了後面編譯不過outStream.write(createTab_stmt.toString().getBytes("UTF-8"));//將
  • 大數據分析中Spark,Hadoop,Hive框架該用哪種開源分布式系統
    內容包括:Hadoop Shell ,HDFS 命令有 hadoop fs 和 hdfs dfs 兩種風格,都可使用,效果相同。 Hive 的本質是將 SQL 語句轉換為 MapReduce 或者 spark 等任務執行,並可以針對數據倉庫進行分布式交互查詢。
  • 新手入門:Spark 部署實戰入門
    Spark在整個大數據系統中處於中間偏上層的地位,如下圖,對hadoop起到了補充作用: 基本概念Fork/Join框架是Java7提供了的一個用於並行執行任務的框架, 是一個把大任務分割成若干個小任務,最終匯總每個小任務結果後得到大任務結果的框架。
  • 深入理解Spark Streaming執行模型
    // Create data set from Hadoop fileval dataset = sparkContext.hadoopFile(「file」) // Join each batch in stream with the datasetkafkaDStream.transform { batchRDD => batchRDD.join(dataset
  • Hadoop生態圈
    本章講一下關於大數據技術hadoop,直接步入正題,在了解hadoop之前,先來說一下什麼是大數據?一.不同的是Job中間輸出結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的MapReduce的算法,內部提供了大量的庫,如 Spark Sql、Spark Streaming等;*Fiilnk:一種基於內存的分布式計算框架,用於實時計算場景較多;*Oozie:一個管理hadoop
  • 十萬個為什麼之hadoop篇
    如果運行map任務的節點在將map中間結果傳送給reduce任務之前失敗,hadoop 將在另一個節點上重新運行這個map以再次構建map中間結果。4.hdfs中的塊為什麼這麼大?Hdfs 的塊比磁碟的塊大,其目的是為了最小化尋址開銷。如果塊足夠大,從磁碟傳輸數據的時間會明顯大於定位這個塊開始位置所需的時間。因而,傳輸一個由多個塊組成的大文件的時間取決於磁碟傳輸速率。
  • 「bright spark」別理解成「耀眼的火花」
    大家好,歡迎來的餅哥英語的頻道,今天我們分享一個非常有用且地道的表達——bright spark, 這個短語的含義不是指「耀眼的火花」,其正確的含義是:bright spark 精明的人Timmy's
  • 譯丨Yarn - Javascript 新一代套件管理
    Yarn 透過 lockfiles(yarn.lock) 鎖定機制和一套安裝邏輯解決了這些關於版本和不確定性的問題使其具備可靠性與確定性。這些 lockfiles 會鎖定安裝的相依模組為特定版本,確保安裝在每臺機器上的 node_modules 結果是一致的。lockfile 使用精準的格式撰寫與排序的鍵 (keys)來確保修改動作最小化,同時在審核的時候比較單純。
  • 帶你快速了解spark sql
    01spark sql架構spark sql是一種可以通過sql執行spark任務的分布式解析引擎。它能夠將用戶編寫的sql語言解析成RDD對應的分布式任務,由於spark是基於內存去處理、計算數據集,所以其執行速度非常快。spark sql對應的結構可以總結為下圖所示:DataSet,顧名思義,就是數據集的意思,它是 Spark 1.6 新引入的接口。
  • 關於Spark NLP學習,你需要掌握的LightPipeline(附代碼)|CSDN博文...
    ],5 'normal': [<sparknlp.base.Annotation at 0x139d9e940>,6 <sparknlp.base.Annotation at 0x139d64860>,7 <sparknlp.base.Annotation
  • Spark課程理念在體育教學中的應用
    spark課程具有較強的遊戲性和娛樂性,符合中小學生的心理特徵,可以充分調動學生的主動性,更好的發揮學生主體作用。這表現在spark課程中的遊戲設計的巧妙。如準備活動,可以採取將熱身與伸拉相結合,在場地中部放置四種顏色的撲克牌,場地外圍四個點放置不同花色對應的伸拉練習內容的卡片,學生練習完所選花色的拉伸區練習內容後要重新跑回到中心撲克區進行選擇,接著再進行相應花色的拉伸練習內容。
  • Hive SQL使用過程中的奇怪現象
    hive是基於Hadoop的一個數據倉庫工具,用來進行數據的ETL,這是一種可以存儲、查詢和分析存儲在Hadoop中的大規模數據的機制。hive能將結構化的數據文件映射為一張資料庫表,並提供SQL查詢功能。Hive SQL是一種類SQL語言,與關係型資料庫所支持的SQL語法存在微小的差異。
  • Hortonworks Ted Yu:HBase 1.0及2.0的最新進展
    具體如下:Stability:Co-locate hbase:meta with Master簡化和提升region assignment的可靠性:涉及更少的組件Master嵌入了一個RegionServer,僅加載系統表Backup masters可以被配置加載用戶表,代碼已經經過初步測試Availability:Region Replicas
  • Hadoop框架:Yarn基本結構和運行原理