后Hadoop時(shí)代的大數(shù)據(jù)架構(gòu)

提到大數(shù)據(jù)分析平臺(tái)寓搬,不得不說Hadoop系統(tǒng)杂彭,Hadoop到現(xiàn)在也超過10年的歷史了,很多東西發(fā)生了變化木蹬,版本也從0.x進(jìn)化到目前的2.6版本至耻。我把2012年后定義成后Hadoop平臺(tái)時(shí)代,這不是說不用Hadoop,而是像NoSQL (Not Only SQL)那樣尘颓,有其他的選型補(bǔ)充走触。我在知乎上也寫過Hadoop的一些入門文章如何學(xué)習(xí)Hadoop - 董飛的回答,為了給大家有個(gè)鋪墊疤苹,簡(jiǎn)單講一些相關(guān)開源組件互广。

背景篇

Hadoop: 開源的數(shù)據(jù)分析平臺(tái),解決了大數(shù)據(jù)(大到一臺(tái)計(jì)算機(jī)無法進(jìn)行存儲(chǔ)卧土,一臺(tái)計(jì)算機(jī)無法在要求的時(shí)間內(nèi)進(jìn)行處理)的可靠存儲(chǔ)和處理惫皱。適合處理非結(jié)構(gòu)化數(shù)據(jù),包括HDFS尤莺,MapReduce基本組件旅敷。

HDFS:提供了一種跨服務(wù)器的彈性數(shù)據(jù)存儲(chǔ)系統(tǒng)。

MapReduce:技術(shù)提供了感知數(shù)據(jù)位置的標(biāo)準(zhǔn)化處理流程:讀取數(shù)據(jù)颤霎,對(duì)數(shù)據(jù)進(jìn)行映射(Map)媳谁,使用某個(gè)鍵值對(duì)數(shù)據(jù)進(jìn)行重排,然后對(duì)數(shù)據(jù)進(jìn)行化簡(jiǎn)(Reduce)得到最終的輸出友酱。

Amazon Elastic Map Reduce(EMR):托管的解決方案韩脑,運(yùn)行在由Amazon Elastic Compute Cloud(EC2)和Simple Strorage Service(S3)組成的網(wǎng)絡(luò)規(guī)模的基礎(chǔ)設(shè)施之上。如果你需要一次性的或不常見的大數(shù)據(jù)處理粹污,EMR可能會(huì)為你節(jié)省開支。但EMR是高度優(yōu)化成與S3中的數(shù)據(jù)一起工作首量,會(huì)有較高的延時(shí)壮吩。

Hadoop 還包含了一系列技術(shù)的擴(kuò)展系統(tǒng),這些技術(shù)主要包括了Sqoop加缘、Flume鸭叙、Hive、Pig拣宏、Mahout沈贝、Datafu和HUE等。

Pig:分析大數(shù)據(jù)集的一個(gè)平臺(tái)勋乾,該平臺(tái)由一種表達(dá)數(shù)據(jù)分析程序的高級(jí)語言和對(duì)這些程序進(jìn)行評(píng)估的基礎(chǔ)設(shè)施一起組成宋下。

Hive:用于Hadoop的一個(gè)數(shù)據(jù)倉庫系統(tǒng),它提供了類似于SQL的查詢語言辑莫,通過使用該語言学歧,可以方便地進(jìn)行數(shù)據(jù)匯總,特定查詢以及分析各吨。

Hbase:一種分布的枝笨、可伸縮的、大數(shù)據(jù)儲(chǔ)存庫,支持隨機(jī)横浑、實(shí)時(shí)讀/寫訪問剔桨。

Sqoop:為高效傳輸批量數(shù)據(jù)而設(shè)計(jì)的一種工具,其用于Apache Hadoop和結(jié)構(gòu)化數(shù)據(jù)儲(chǔ)存庫如關(guān)系數(shù)據(jù)庫之間的數(shù)據(jù)傳輸徙融。

Flume:一種分布式的洒缀、可靠的、可用的服務(wù)张咳,其用于高效地搜集帝洪、匯總、移動(dòng)大量日志數(shù)據(jù)脚猾。

ZooKeeper:一種集中服務(wù)葱峡,其用于維護(hù)配置信息,命名龙助,提供分布式同步砰奕,以及提供分組服務(wù)。

Cloudera:最成型的Hadoop發(fā)行版本提鸟,擁有最多的部署案例军援。提供強(qiáng)大的部署、管理和監(jiān)控工具称勋。開發(fā)并貢獻(xiàn)了可實(shí)時(shí)處理大數(shù)據(jù)的Impala項(xiàng)目胸哥。

Hortonworks:使用了100%開源Apache Hadoop提供商。開發(fā)了很多增強(qiáng)特性并提交至核心主干赡鲜,這使得Hadoop能夠在包括Windows Server和Azure在內(nèi)平臺(tái)上本地運(yùn)行空厌。

MapR:獲取更好的性能和易用性而支持本地Unix文件系統(tǒng)而不是HDFS。提供諸如快照银酬、鏡像或有狀態(tài)的故障恢復(fù)等高可用性特性嘲更。領(lǐng)導(dǎo)著Apache Drill項(xiàng)目,是Google的Dremel的開源實(shí)現(xiàn)揩瞪,目的是執(zhí)行類似SQL的查詢以提供實(shí)時(shí)處理赋朦。

原理篇

數(shù)據(jù)存儲(chǔ)

我們的目標(biāo)是做一個(gè)可靠的,支持大規(guī)模擴(kuò)展和容易維護(hù)的系統(tǒng)李破。計(jì)算機(jī)里面有個(gè)locality(局部性定律)宠哄,如圖所示。從下到上訪問速度越來越快喷屋,但存儲(chǔ)代價(jià)更大琳拨。

相對(duì)內(nèi)存,磁盤和SSD就需要考慮數(shù)據(jù)的擺放屯曹, 因?yàn)樾阅軙?huì)差異很大狱庇。磁盤好處是持久化惊畏,單位成本便宜,容易備份密任。但隨著內(nèi)存便宜颜启,很多數(shù)據(jù)集合可以考慮直接放入內(nèi)存并分布到各機(jī)器上,有些基于 key-value, Memcached用在緩存上浪讳。內(nèi)存的持久化可以通過 (帶電池的RAM)缰盏,提前寫入日志再定期做Snapshot或者在其他機(jī)器內(nèi)存中復(fù)制。當(dāng)重啟時(shí)需要從磁盤或網(wǎng)絡(luò)載入之前狀態(tài)淹遵。其實(shí)寫入磁盤就用在追加日志上面 口猜,讀的話就直接從內(nèi)存。像VoltDB, MemSQL透揣,RAMCloud 關(guān)系型又基于內(nèi)存數(shù)據(jù)庫济炎,可以提供高性能,解決之前磁盤管理的麻煩辐真。

HyperLogLog & Bloom Filter & CountMin Sketch

都是是應(yīng)用于大數(shù)據(jù)的算法须尚,大致思路是用一組相互獨(dú)立的哈希函數(shù)依次處理輸入。HyperLogLog 用來計(jì)算一個(gè)很大集合的基數(shù)(即合理總共有多少不相同的元素)侍咱,對(duì)哈希值分塊計(jì)數(shù):對(duì)高位統(tǒng)計(jì)有多少連續(xù)的0耐床;用低位的值當(dāng)做數(shù)據(jù)塊。BloomFilter,在預(yù)處理階段對(duì)輸入算出所有哈希函數(shù)的值并做出標(biāo)記楔脯。當(dāng)查找一個(gè)特定的輸入是否出現(xiàn)過撩轰,只需查找這一系列的哈希函數(shù)對(duì)應(yīng)值上有沒有標(biāo)記。對(duì)于BloomFilter昧廷,可能有False Positive钧敞,但不可能有False Negative。BloomFilter可看做查找一個(gè)數(shù)據(jù)有或者沒有的數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)的頻率是否大于1)麸粮。CountMin Sketch在BloomFilter的基礎(chǔ)上更進(jìn)一步,它可用來估算某一個(gè)輸入的頻率(不局限于大于1)镜廉。

CAP Theorem

簡(jiǎn)單說是三個(gè)特性:一致性弄诲,可用性和網(wǎng)絡(luò)分區(qū),最多只能取其二娇唯。設(shè)計(jì)不同類型系統(tǒng)要多去權(quán)衡齐遵。分布式系統(tǒng)還有很多算法和高深理論,比如:Paxos算法(paxos分布式一致性算法--講述諸葛亮的反穿越)塔插,Gossip協(xié)議(Cassandra學(xué)習(xí)筆記之Gossip協(xié)議)梗摇,Quorum (分布式系統(tǒng))時(shí)間邏輯想许,向量時(shí)鐘(一致性算法之四: 時(shí)間戳和向量圖)伶授,拜占庭將軍問題断序,二階段提交等,需要耐心研究糜烹。

技術(shù)篇

來自:http://thinkbig.teradata.com/leading_big_data_technologies/big-data-reference-architecture/

根據(jù)不同的延遲要求(SLA)违诗,數(shù)據(jù)量存儲(chǔ)大小, 更新量多少疮蹦,分析需求诸迟,大數(shù)據(jù)處理的架構(gòu)也需要做靈活的設(shè)計(jì)。上圖就描述了在不同領(lǐng)域中大數(shù)據(jù)組件愕乎。

說大數(shù)據(jù)的技術(shù)還是要先提Google阵苇,Google 新三輛馬車,Spanner, F1, Dremel

Spanner:高可擴(kuò)展感论、多版本绅项、全球分布式外加同步復(fù)制特性的谷歌內(nèi)部數(shù)據(jù)庫,支持外部一致性的分布式事務(wù);設(shè)計(jì)目標(biāo)是橫跨全球上百個(gè)數(shù)據(jù)中心,覆蓋百萬臺(tái)服務(wù)器,包含萬億條行記錄笛粘!(Google就是這么霸氣^-^)

F1:構(gòu)建于Spanner之上,在利用Spanner的豐富特性基礎(chǔ)之上,還提供分布式SQL趁怔、事務(wù)一致性的二級(jí)索引等功能,在AdWords廣告業(yè)務(wù)上成功代替了之前老舊的手工MySQL Shard方案。

Dremel:一種用來分析信息的方法薪前,它可以在數(shù)以千計(jì)的服務(wù)器上運(yùn)行润努,類似使用SQL語言,能以極快的速度處理網(wǎng)絡(luò)規(guī)模的海量數(shù)據(jù)(PB數(shù)量級(jí))示括,只需幾秒鐘時(shí)間就能完成铺浇。

Spark

2014年最火的大數(shù)據(jù)技術(shù)Spark,有什么關(guān)于 Spark 的書推薦垛膝? - 董飛的回答做了介紹鳍侣。主要意圖是基于內(nèi)存計(jì)算做更快的數(shù)據(jù)分析。同時(shí)支持圖計(jì)算吼拥,流式計(jì)算和批處理倚聚。Berkeley AMP Lab的核心成員出來成立公司Databricks開發(fā)Cloud產(chǎn)品。

Flink

使用了一種類似于SQL數(shù)據(jù)庫查詢優(yōu)化的方法凿可,這也是它與當(dāng)前版本的Apache Spark的主要區(qū)別惑折。它可以將全局優(yōu)化方案應(yīng)用于某個(gè)查詢之上以獲得更佳的性能。

Kafka

Announcing the Confluent Platform 1.0Kafka 描述為 LinkedIn 的“中樞神經(jīng)系統(tǒng)”枯跑,管理從各個(gè)應(yīng)用程序匯聚到此的信息流惨驶,這些數(shù)據(jù)經(jīng)過處理后再被分發(fā)到各處。不同于傳統(tǒng)的企業(yè)信息列隊(duì)系統(tǒng)敛助,Kafka 是以近乎實(shí)時(shí)的方式處理流經(jīng)一個(gè)公司的所有數(shù)據(jù)粗卜,目前已經(jīng)為 LinkedIn, Netflix, Uber 和 Verizon 建立了實(shí)時(shí)信息處理平臺(tái)。Kafka 的優(yōu)勢(shì)就在于近乎實(shí)時(shí)性纳击。

Storm

Handle Five Billion Sessions a Day in Real Time续扔,Twitter的實(shí)時(shí)計(jì)算框架攻臀。所謂流處理框架,就是一種分布式测砂、高容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng)茵烈。Storm令持續(xù)不斷的流計(jì)算變得容易。經(jīng)常用于在實(shí)時(shí)分析砌些、在線機(jī)器學(xué)習(xí)呜投、持續(xù)計(jì)算、分布式遠(yuǎn)程調(diào)用和ETL等領(lǐng)域存璃。

Samza

LinkedIn主推的流式計(jì)算框架仑荐。與其他類似的Spark,Storm做了幾個(gè)比較纵东。跟Kafka集成良好粘招,作為主要的存儲(chǔ)節(jié)點(diǎn)和中介。

Lambda architecture

Nathan寫了文章《如何去打敗CAP理論》How to beat the CAP theorem偎球,提出Lambda Architecture洒扎,主要思想是對(duì)一些延遲高但數(shù)據(jù)量大的還是采用批處理架構(gòu),但對(duì)于即時(shí)性實(shí)時(shí)數(shù)據(jù)使用流式處理框架衰絮,然后在之上搭建一個(gè)服務(wù)層去合并兩邊的數(shù)據(jù)流袍冷,這種系統(tǒng)能夠平衡實(shí)時(shí)的高效和批處理的Scale,看了覺得腦洞大開猫牡,確實(shí)很有效胡诗,被很多公司采用在生產(chǎn)系統(tǒng)中。

Summingbird

Lambda架構(gòu)的問題要維護(hù)兩套系統(tǒng)淌友,Twitter開發(fā)了Summingbird來做到一次編程煌恢,多處運(yùn)行。將批處理和流處理無縫連接震庭,通過整合批處理與流處理來減少它們之間的轉(zhuǎn)換開銷瑰抵。下圖就解釋了系統(tǒng)運(yùn)行時(shí)。

NoSQL

數(shù)據(jù)傳統(tǒng)上是用樹形結(jié)構(gòu)存儲(chǔ)(層次結(jié)構(gòu))器联,但很難表示多對(duì)多的關(guān)系谍憔,關(guān)系型數(shù)據(jù)庫就是解決這個(gè)難題,最近幾年發(fā)現(xiàn)關(guān)系型數(shù)據(jù)庫也不靈了主籍,新型NoSQL出現(xiàn)如Cassandra,MongoDB逛球,Couchbase千元。NoSQL 里面也分成這幾類,文檔型颤绕,圖運(yùn)算型幸海,列存儲(chǔ)祟身,key-value型,不同系統(tǒng)解決不同問題物独。沒一個(gè)one-size-fits-all 的方案袜硫。

Cassandra

大數(shù)據(jù)架構(gòu)中,Cassandra的主要作用就是存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)挡篓。DataStax的Cassandra是一種面向列的數(shù)據(jù)庫婉陷,它通過分布式架構(gòu)提供高可用性及耐用性的服務(wù)。它實(shí)現(xiàn)了超大規(guī)模的集群官研,并提供一種稱作“最終一致性”的一致性類型秽澳,這意味著在任何時(shí)刻,在不同服務(wù)器中的相同數(shù)據(jù)庫條目可以有不同的值戏羽。

SQL on Hadoop

開源社區(qū)業(yè)出現(xiàn)了很多 SQL-on-Hadoop的項(xiàng)目担神,著眼跟一些商業(yè)的數(shù)據(jù)倉庫系統(tǒng)競(jìng)爭(zhēng)。包括Apache Hive, Spark SQL, Cloudera Impala, Hortonworks Stinger, FacebookPresto, Apache Tajo始花,Apache Drill妄讯。有些是基于Google Dremel設(shè)計(jì)。

Impala

Cloudera公司主導(dǎo)開發(fā)的新型查詢系統(tǒng)酷宵,它提供SQL語義亥贸,能夠查詢存儲(chǔ)在Hadoop的HDFS和HBase中的PB級(jí)大數(shù)據(jù),號(hào)稱比Hive快5-10倍忧吟,但最近被Spark的風(fēng)頭給罩住了砌函,大家還是更傾向于后者。

Drill

Apache社區(qū)類似于Dremel的開源版本—Drill溜族。一個(gè)專為互動(dòng)分析大型數(shù)據(jù)集的分布式系統(tǒng)讹俊。

Druid

在大數(shù)據(jù)集之上做實(shí)時(shí)統(tǒng)計(jì)分析而設(shè)計(jì)的開源數(shù)據(jù)存儲(chǔ)。這個(gè)系統(tǒng)集合了一個(gè)面向列存儲(chǔ)的層煌抒,一個(gè)分布式仍劈、shared-nothing的架構(gòu),和一個(gè)高級(jí)的索引結(jié)構(gòu)寡壮,來達(dá)成在秒級(jí)以內(nèi)對(duì)十億行級(jí)別的表進(jìn)行任意的探索分析贩疙。

Berkeley Data Analytics Stack

上面說道Spark,在Berkeley AMP lab 中有個(gè)更宏偉的藍(lán)圖况既,就是BDAS这溅,里面有很多明星項(xiàng)目,除了Spark棒仍,還包括:

Mesos:一個(gè)分布式環(huán)境的資源管理平臺(tái)悲靴,它使得Hadoop、MPI莫其、Spark作業(yè)在統(tǒng)一資源管理環(huán)境下執(zhí)行癞尚。它對(duì)Hadoop2.0支持很好耸三。Twitter,Coursera都在使用浇揩。

Tachyon:是一個(gè)高容錯(cuò)的分布式文件系統(tǒng)仪壮,允許文件以內(nèi)存的速度在集群框架中進(jìn)行可靠的共享,就像Spark和MapReduce那樣胳徽。項(xiàng)目發(fā)起人李浩源說目前發(fā)展非郴快,甚至比Spark當(dāng)時(shí)還要驚人膜廊,已經(jīng)成立創(chuàng)業(yè)公司Tachyon Nexus.

BlinkDB:也很有意思乏沸,在海量數(shù)據(jù)上運(yùn)行交互式 SQL 查詢的大規(guī)模并行查詢引擎。它允許用戶通過權(quán)衡數(shù)據(jù)精度來提升查詢響應(yīng)時(shí)間爪瓜,其數(shù)據(jù)的精度被控制在允許的誤差范圍內(nèi)蹬跃。

Cloudera

Hadoop老大哥提出的經(jīng)典解決方案。

HDP (Hadoop Data Platform)

Hortonworks 提出的架構(gòu)選型铆铆。

Redshift

Amazon RedShift是 ParAccel一個(gè)版本蝶缀。它是一種(massively parallel computer)架構(gòu),是非常方便的數(shù)據(jù)倉庫解決方案薄货,SQL接口翁都,跟各個(gè)云服務(wù)無縫連接,最大特點(diǎn)就是快谅猾,在TB到PB級(jí)別非常好的性能柄慰,我在工作中也是直接使用,它還支持不同的硬件平臺(tái)税娜,如果想速度更快坐搔,可以使用SSD。

Netflix

完全基于AWS的數(shù)據(jù)處理解決方案敬矩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末概行,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子弧岳,更是在濱河造成了極大的恐慌凳忙,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件禽炬,死亡現(xiàn)場(chǎng)離奇詭異涧卵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)腹尖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門柳恐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事胎撤。” “怎么了断凶?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵伤提,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我认烁,道長(zhǎng)肿男,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任却嗡,我火速辦了婚禮舶沛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘窗价。我一直安慰自己如庭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布撼港。 她就那樣靜靜地躺著坪它,像睡著了一般。 火紅的嫁衣襯著肌膚如雪帝牡。 梳的紋絲不亂的頭發(fā)上往毡,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音靶溜,去河邊找鬼开瞭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛罩息,可吹牛的內(nèi)容都是我干的嗤详。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼扣汪,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼断楷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起崭别,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤冬筒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后茅主,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舞痰,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年诀姚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了响牛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖呀打,靈堂內(nèi)的尸體忽然破棺而出矢赁,到底是詐尸還是另有隱情,我是刑警寧澤贬丛,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布撩银,位于F島的核電站,受9級(jí)特大地震影響豺憔,放射性物質(zhì)發(fā)生泄漏额获。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一恭应、第九天 我趴在偏房一處隱蔽的房頂上張望抄邀。 院中可真熱鬧,春花似錦昼榛、人聲如沸境肾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽准夷。三九已至,卻和暖如春莺掠,著一層夾襖步出監(jiān)牢的瞬間衫嵌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國打工彻秆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留楔绞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓唇兑,卻偏偏與公主長(zhǎng)得像酒朵,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扎附,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容