文 | Justin Ellingwood ,譯者 大愚若智
簡介
大數(shù)據(jù)是收集、整理、處理懲罰大容量數(shù)據(jù)集,并從中得到看法所需的非傳統(tǒng)計謀和技能的總稱。固然處理懲罰數(shù)據(jù)所需的計較本領(lǐng)或存儲容量早已高出一臺計較機(jī)的上限,但這種計較范例的普遍性、局限,以及代價在最近幾年才經(jīng)驗(yàn)了大局限擴(kuò)展。
在之前的文章中,我們曾經(jīng)先容過有關(guān)大數(shù)據(jù)系統(tǒng)的通例觀念、處理懲罰進(jìn)程,以及各類專門術(shù)語,本文將先容大數(shù)據(jù)系統(tǒng)一個最根基的組件:處理懲罰框架。處理懲罰框架認(rèn)真對系統(tǒng)中的數(shù)據(jù)舉辦計較,譬喻處理懲罰從非易失存儲中讀取的數(shù)據(jù),或處理懲罰方才攝入到系統(tǒng)中的數(shù)據(jù)。數(shù)據(jù)的計較則是指從大量單一數(shù)據(jù)點(diǎn)中提取信息和看法的進(jìn)程。
下文將先容這些框架:
僅批處理懲罰框架:
Apache Hadoop
僅流處理懲罰框架:
Apache Storm Apache Samza
殽雜框架:
Apache Spark Apache Flink 大數(shù)據(jù)處理懲罰框架是什么?
處理懲罰框架和處理懲罰引擎認(rèn)真對數(shù)據(jù)系統(tǒng)中的數(shù)據(jù)舉辦計較。固然“引擎”和“框架”之間的區(qū)別沒有什么權(quán)威的界說,但大部門時候可以將前者界說為實(shí)際認(rèn)真處理懲罰數(shù)據(jù)操縱的組件,后者則可界說為包袱雷同浸染的一系列組件。
譬喻Apache Hadoop可以看作一種以MapReduce作為默認(rèn)處理懲罰引擎的處理懲罰框架。引擎和框架凡是可以彼此替換或同時利用。譬喻另一個框架Apache Spark可以納入Hadoop并代替MapReduce。組件之間的這種互操縱性是大數(shù)據(jù)系統(tǒng)機(jī)動性如此之高的原因之一。
固然認(rèn)真處理懲罰生命周期內(nèi)這一階段數(shù)據(jù)的系統(tǒng)凡是都很巨大,但從廣義層面來看它們的方針長短常一致的:通過對數(shù)據(jù)執(zhí)行操縱提高領(lǐng)略本領(lǐng),展現(xiàn)出數(shù)據(jù)蘊(yùn)含的模式,并針對巨大互動得到看法。
為了簡化這些組件的接頭,我們會通過差異處理懲罰框架的設(shè)計意圖,憑據(jù)所處理懲罰的數(shù)據(jù)狀態(tài)對其舉辦分類。一些系統(tǒng)可以用批處理懲罰方法處理懲罰數(shù)據(jù),一些系統(tǒng)可以用流方法處理懲罰持續(xù)不絕流入系統(tǒng)的數(shù)據(jù)。另外尚有一些系統(tǒng)可以同時處理懲罰這兩類數(shù)據(jù)。
在深入先容差異實(shí)現(xiàn)的指標(biāo)和結(jié)論之前,首先需要對差異處理懲罰范例的觀念舉辦一個簡樸的先容。
批處理懲罰系統(tǒng)
批處理懲罰在大數(shù)據(jù)世界有著悠久的汗青。批處理懲罰主要操縱大容量靜態(tài)數(shù)據(jù)集,并在計較進(jìn)程完成后返回功效。
批處理懲罰模式中利用的數(shù)據(jù)集凡是切合下列特征…
有界:批處理懲罰數(shù)據(jù)集代表數(shù)據(jù)的有限薈萃 耐久:數(shù)據(jù)凡是始終存儲在某種范例的耐久存儲位置中 大量:批處理懲罰操縱凡是是處理懲罰極為海量數(shù)據(jù)集的獨(dú)一要領(lǐng)
批處理懲罰很是適合需要會見全套記錄才氣完成的計較事情。譬喻在計較總數(shù)僻靜均數(shù)時,必需將數(shù)據(jù)集作為一個整體加以處理懲罰,而不能將其視作多筆記錄的薈萃。這些操縱要求在計較舉辦進(jìn)程中數(shù)據(jù)維持本身的狀態(tài)。
需要處理懲罰大量數(shù)據(jù)的任務(wù)凡是最適適用批處理懲罰操縱舉辦處理懲罰。無論直接從耐久存儲設(shè)備處理懲罰數(shù)據(jù)集,或首先將數(shù)據(jù)集載入內(nèi)存,批處理懲罰系統(tǒng)在設(shè)計進(jìn)程中就充實(shí)思量了數(shù)據(jù)的量,可提供富裕的處理懲罰資源。由于批處理懲罰在應(yīng)對大量耐久數(shù)據(jù)方面的表示極為精彩,因此常常被用于對汗青數(shù)據(jù)舉辦闡明。
大量數(shù)據(jù)的處理懲罰需要支付大量時間,因此批處理懲罰不適合對處理懲罰時間要求較高的場所。
Apache Hadoop
Apache Hadoop是一種專用于批處理懲罰的處理懲罰框架。Hadoop是首個在開源社區(qū)得到極大存眷的大數(shù)據(jù)框架。基于谷歌有關(guān)海量數(shù)據(jù)處理懲罰所頒發(fā)的多篇論文與履歷的Hadoop從頭實(shí)現(xiàn)了相關(guān)算法和組件倉庫,讓大局限批處理懲罰技能變得更易用。
新版Hadoop包括多個組件,即多個層,通過共同利用可處理懲罰批數(shù)據(jù):
HDFS:HDFS是一種漫衍式文件系統(tǒng)層,可對集群節(jié)點(diǎn)間的存儲和復(fù)制舉辦協(xié)調(diào)。HDFS確保了無法制止的節(jié)點(diǎn)妨礙產(chǎn)生后數(shù)據(jù)依然可用,可將其用作數(shù)據(jù)來歷,可用于存儲中間態(tài)的處理懲罰功效,并可存儲計較的最終功效。
YARN:YARN是Yet Another Resource Negotiator(另一個資源打點(diǎn)器)的縮寫,香港主機(jī)租用 香港高防服務(wù)器,可充當(dāng)Hadoop倉庫的集群協(xié)調(diào)組件。該組件認(rèn)真協(xié)調(diào)并打點(diǎn)底層資源和調(diào)治功課的運(yùn)行。通過充當(dāng)集群資源的接口,YARN使得用戶能在Hadoop集群中利用比以往的迭代方法運(yùn)行更多范例的事情負(fù)載。
MapReduce:MapReduce是Hadoop的原生批處理懲罰引擎。
批處理懲罰模式
Hadoop的處理懲罰成果來自MapReduce引擎。MapReduce的處理懲罰技能切合利用鍵值對的map、shuffle、reduce算法要求。根基處理懲罰進(jìn)程包羅:
從HDFS文件系統(tǒng)讀取數(shù)據(jù)集
將數(shù)據(jù)集拆分成小塊并分派給所有可用節(jié)點(diǎn)
針對每個節(jié)點(diǎn)上的數(shù)據(jù)子集舉辦計較(計較的中間態(tài)功效會從頭寫入HDFS)
從頭分派中間態(tài)功效并憑據(jù)鍵舉辦分組
通過對每個節(jié)點(diǎn)計較的功效舉辦匯總和組合對每個鍵的值舉辦“Reducing”
將計較而來的最終功效從頭寫入 HDFS
優(yōu)勢和范圍