Cascading:創(chuàng)建復(fù)雜和容錯(cuò)數(shù)據(jù)處理工作流
架構(gòu)
Cascading 是一個(gè)架構(gòu)在Hadoop上的API,用來(lái)創(chuàng)建復(fù)雜和容錯(cuò)數(shù)據(jù)處理工作流。它抽象了集群拓?fù)浣Y(jié)構(gòu)和配置來(lái)快速開(kāi)發(fā)復(fù)雜分布式的應(yīng)用,而不用考慮背后的 MapReduce。Cascading目前依賴(lài)于Hadoop提供存儲(chǔ)和執(zhí)行架構(gòu),但是Cascading API為開(kāi)發(fā)者隔離了Hadoop的技術(shù)細(xì)節(jié),提供了不需要改變初始流程工作流定義就可以在不同的計(jì)算框架內(nèi)運(yùn)行的能力
Cascading目前依賴(lài)于Hadoop提供存儲(chǔ)和執(zhí)行架構(gòu),但是Cascading API為開(kāi)發(fā)者隔離了Hadoop的技術(shù)細(xì)節(jié),提供了不需要改變初始流程工作流定義就可以在不同的計(jì)算框架內(nèi)運(yùn)行的能力。
Cascading使用了“pipe and filters”(管道和過(guò)濾)來(lái)定義數(shù)據(jù)處理進(jìn)程。它支持分隔,合并,分組和排序操作,這是開(kāi)發(fā)者唯一需要考慮的操作。Nathan Marz提供了一個(gè)范例:Goodbye MapReduce, Hello Cascading. Cascading對(duì)于使用Hadoop開(kāi)發(fā)復(fù)雜應(yīng)用是一個(gè)不錯(cuò)的解決方案。
發(fā)展
Hadoop是Apache開(kāi)源組織的一個(gè)分布式計(jì)算開(kāi)源框架,在很多大型網(wǎng)站上都已經(jīng)得到了應(yīng)用,如亞馬遜、Facebook和Yahoo等等。它主要由MapReduce的算法執(zhí)行和一個(gè)分布式的文件系統(tǒng)HDFS等兩部分組成。
HDFS:即Hadoop Distributed File System (Hadoop分布式文件系統(tǒng))
HDFS具有高容錯(cuò)性,并且可以被部署在低價(jià)的硬件設(shè)備之上。HDFS很適合那些有大數(shù)據(jù)集的應(yīng)用,并且提供了對(duì)數(shù)據(jù)讀寫(xiě)的高吞吐率。
延伸
MapReduce:MapReduce 是Google 的一項(xiàng)重要技術(shù),它是一個(gè)編程模型,用以進(jìn)行大數(shù)據(jù)量的計(jì)算。對(duì)于大數(shù)據(jù)量的計(jì)算,通常采用的處理手法就是并行計(jì)算。至少現(xiàn)階段而言,對(duì)許多開(kāi)發(fā)人員來(lái) 說(shuō),并行計(jì)算還是一個(gè)比較遙遠(yuǎn)的東西。MapReduce就是一種簡(jiǎn)化并行計(jì)算的編程模型,它讓那些沒(méi)有多少并行計(jì)算經(jīng)驗(yàn)的開(kāi)發(fā)人員也可以開(kāi)發(fā)并行應(yīng)用。