DataTorrent流式處理和分析平臺(tái)
DataTorrent是一個(gè)實(shí)時(shí)的流式處理和分析平臺(tái),它每秒可以處理超過(guò)10億個(gè)實(shí)時(shí)事件。
與Twitter平均每秒大約6000條微博相比,最近發(fā)布的DataTorrent 1.0似乎已經(jīng)超出了需求,它每秒可以處理超過(guò)10億個(gè)實(shí)時(shí)事件。他們在一個(gè)包含37個(gè)節(jié)點(diǎn)的集群上進(jìn)行了測(cè)試,每個(gè)節(jié)點(diǎn)256GB內(nèi)存、12核超線程CPU。在CPU達(dá)到飽和之前,DataTorrent聲稱已經(jīng)實(shí)現(xiàn)了線性擴(kuò)展,而CPU達(dá)到飽和時(shí)處理速度為每秒16億個(gè)事件。Phu Hoang是DataTorrent的聯(lián)合創(chuàng)始人和CEO,他告訴InfoQ,在同樣的硬件上,他們的解決方案在性能上比Apache Spark要高“好幾個(gè)數(shù)量級(jí)”。
DataTorrent基于Hadoop 2.x構(gòu)建,是一個(gè)實(shí)時(shí)的、有容錯(cuò)能力的數(shù)據(jù)流式處理和分析平臺(tái),它使用本地Hadoop應(yīng)用程序,而這些應(yīng)用程序可以與執(zhí)行其它任務(wù),如批處理,的應(yīng)用程序共存。該平臺(tái)的架構(gòu)如下圖所示:
StrAM(Streaming Application Master)是一個(gè)本地的YARN Application Master,負(fù)責(zé)管理將要在Hadoop集群上執(zhí)行的邏輯DAG(Directed Acyclic Graph),包括資源分配、分區(qū)、擴(kuò)展、調(diào)度、Web服務(wù)、運(yùn)行時(shí)更改、統(tǒng)計(jì)、SLA執(zhí)行、安全等等。
在架構(gòu)示意圖的上層,用戶應(yīng)用程序作為已連接的算子和/或應(yīng)用程序模板存在。算子的示例有InputReceiver(模擬接收輸入數(shù)據(jù))、Average(針對(duì)指定維度的鍵計(jì)算數(shù)據(jù)平均值)、RedisAverageOutput(將計(jì)算好的平均值寫入Redis數(shù)據(jù)存儲(chǔ))、SmtpAvgOperator(發(fā)送電子郵件警報(bào))。這些算子是Malhar庫(kù)的一部分,該庫(kù)包含了超過(guò)400個(gè)這樣的算子,并在GitHub上開(kāi)源。用戶可以根據(jù)需要編寫其它算子。
