即时大数据流处理=即时风暴
在Ubuntu背后的公司Canonical,每6個(gè)月進(jìn)行一次技術(shù)工作,以第一手測(cè)試我們的工具并向其他人展示新想法。 這次,我創(chuàng)建了一個(gè)即時(shí)大數(shù)據(jù)解決方案,更具體地講是“即時(shí)風(fēng)暴”。
Storm現(xiàn)在是Apache基金會(huì)的一部分,但以前Storm是Nathan Marz在Twitter期間建立的。 Storm是用于實(shí)時(shí)和分布式計(jì)算的流處理引擎。 您可以使用Storm來聚合事件的實(shí)時(shí)流,進(jìn)行機(jī)器學(xué)習(xí),進(jìn)行分析,進(jìn)行分布式ETL等。
Storm由多種服務(wù)構(gòu)建而成,需要Zookeeper。 這是一個(gè)復(fù)雜的解決方案,并且易于部署,集成和擴(kuò)展。 我在Canonical所做的第一個(gè)技術(shù)項(xiàng)目是創(chuàng)建Storm Juju魅力 。 盡管我能夠自動(dòng)化Storm的部署,但是仍然存在一些問題,因?yàn)橛脩羧匀槐仨氶喿x有關(guān)如何實(shí)際使用Storm的信息。
Instant Storm是解決此問題的第一步。 我創(chuàng)建了一個(gè)StormDeployer超級(jí)按鈕 ,可以讀取yaml文件,開發(fā)人員可以在其中指定多個(gè)拓?fù)洹?為每個(gè)名稱指定拓?fù)涞拿Q,jar文件,Github中的位置,如何打包jar文件等。然后,通過將yaml文件上載到Github或任何公共Web服務(wù)器,并給它擴(kuò)展名.storm世界能夠通過兩個(gè)步驟立即重用拓?fù)?#xff1a;
1.通過簡(jiǎn)單地在Juju中拖放,即可部署Storm + Zookeeper + StormDeployer隨附的Storm捆綁包 :
2.獲取風(fēng)暴文件的URL,并將其放入StormDeployer的服務(wù)設(shè)置的deploy字段中:
另外,您可以使用Juju命令行:
juju set stormdeployer "deploy=http://somedomain/somefile.storm" Github上已經(jīng)有幾個(gè)示例可用,但是可以肯定地使用以下示例:
https://raw.githubusercontent.com/mectors/stormdeployer-examples/master/storm-hackaton/storm-hackaton.storm
StormDeployer將從Github下載項(xiàng)目,將jar與Maven打包,然后將jar上傳到Storm。 您可以在日志(/opt/storm/latest/log/deploy.log)中查看進(jìn)度。
這是在任何公共云,私有云上或在任何裸機(jī)服務(wù)器(X86,ARM64和Power 8)上使用Ubuntu的Metal-as-a / Service / MaaS部署Storm的最簡(jiǎn)單方法。 有關(guān)Juju安裝說明,請(qǐng)參見此處。
這是第一個(gè)版本,有一些限制。 要添加的真正不錯(cuò)的功能之一是使用Juju使拓?fù)浜推渌?jí)按鈕之間的集成動(dòng)態(tài)化。 例如,您可以創(chuàng)建連接到Kafka或Cassandra護(hù)身符的噴嘴或螺栓。 Juju可以自動(dòng)告知拓?fù)溥B接信息,并在發(fā)生任何更改時(shí)更新正在運(yùn)行的拓?fù)洹?這將使運(yùn)行長(zhǎng)期運(yùn)行的Storm拓?fù)涓咏选?
我很高興將自己的工作捐贈(zèng)給Apache基金會(huì),并指導(dǎo)任何想要擁有所有權(quán)的人……
翻譯自: https://www.javacodegeeks.com/2014/09/instant-big-data-stream-processing-instant-storm.html
總結(jié)
以上是生活随笔為你收集整理的即时大数据流处理=即时风暴的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 适用于微服务架构的Apache Came
- 下一篇: 乘联会崔东树:今年 92 款新车中燃油车