samza是新興的流式處理框架示弓,相比storm,samza是基于hadoop呵萨,使用自家的kafka實(shí)現(xiàn)分布式消息系統(tǒng)奏属,任務(wù)提交到y(tǒng)arn集群進(jìn)行調(diào)度,粒度更細(xì)潮峦。下面就結(jié)合一個(gè)案例來說下samza程序的開發(fā)囱皿。
當(dāng)剛開始使用samza勇婴,想要了解如何開發(fā)samza程序時(shí),可參考官網(wǎng)的hello-samza例子嘱腥。麻雀雖小五臟俱全咆耿,搞懂這個(gè)例子后就可以自己開始用samza處理實(shí)時(shí)數(shù)據(jù)了。
簡單說下hello-samza代碼爹橱。
1.checkout[首先電腦上已安裝好git]
git clone git://git.apache.org/samza-hello-samza.git hello-samza
2.進(jìn)入工程
cd hello-samza
3.執(zhí)行g(shù)rid萨螺,grid腳本是用來安裝samza依賴的系統(tǒng),如kafka愧驱、zookeeper慰技、yarn,如果想單機(jī)測試组砚,執(zhí)行以下命令
bin/grid bootstrap
4.利用maven打包 [首先電腦安裝配置好mvn]
cd hello-samza
mvn clean package
......漫長的等待....
5.解壓打包好的zip
mkdir -p deploy/samza
tar -xvf ./target/hello-samza-0.9.1-dist.tar.gz -C deploy/samza
6.執(zhí)行job
1.deploy/samza/bin/run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-feed.properties 生產(chǎn)數(shù)據(jù)到kafka topic
2.deploy/samza/bin/run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-parser.properties 消費(fèi)job1產(chǎn)生的數(shù)據(jù)
3.deploy/samza/bin/run-job.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-stats.properties 消費(fèi)job2產(chǎn)生的數(shù)據(jù)
4.這時(shí)查看topic就會(huì)有數(shù)據(jù)打印
deploy/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic wikipedia-edits
SUCC
到這就完成了hello-samza的編譯吻商、運(yùn)行
samza的每個(gè)job對應(yīng)一個(gè)properties文件,文件定義了輸入糟红、輸出艾帐、輸入格式、輸出格式盆偿、窗口時(shí)間柒爸、本地存儲(chǔ)等等信息,所以這個(gè)properties文件是關(guān)鍵事扭,也是重點(diǎn)要介紹的一塊捎稚。
未完待續(xù)....困了。