samza实时处理数据案例一

samza是新兴的流式处理框架,相比storm,samza是基于hadoop,使用自家的kafka实现分布式消息系统,任务提交到yarn集群进行调度,粒度更细。下面就结合一个案例来说下samza程序的开发。
当刚开始使用samza,想要了解如何开发samza程序时,可参考官网的hello-samza例子。麻雀虽小五脏俱全,搞懂这个例子后就可以自己开始用samza处理实时数据了。

简单说下hello-samza代码。
1.checkout[首先电脑上已安装好git]
git clone git://git.apache.org/samza-hello-samza.git hello-samza
2.进入工程
cd hello-samza
3.执行grid,grid脚本是用来安装samza依赖的系统,如kafka、zookeeper、yarn,如果想单机测试,执行以下命令
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.执行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 生产数据到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 消费job1产生的数据
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 消费job2产生的数据
4.这时查看topic就会有数据打印
deploy/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic wikipedia-edits

SUCC
到这就完成了hello-samza的编译、运行

samza的每个job对应一个properties文件,文件定义了输入、输出、输入格式、输出格式、窗口时间、本地存储等等信息,所以这个properties文件是关键,也是重点要介绍的一块。

未完待续....困了。

你可能感兴趣的:(samza实时处理数据案例一)