Samza使用入门
本文基于Samza-0.10
Samza及相关环境
Samza依赖于kafka、zookeeper、Hadoop。运行samza之前需要先配置好相关环境。
如果对他们不熟悉的话也不要害怕,Hello Samza中集成了这三者,对于新手及其友好。本文依据于此进行介绍的。但熟悉之后强烈建议自己配置相关环境,管理相关环境的版本。
本文针对已经完整执行Hello Samza
提供的所有例子后,想自己编写代码并运行的情况。
Samza运行
Samza运行前首先要将kafka、zookeeper、Yarn(分布式运行时)启动。
运行代码为:
samza/bin/run-job.sh \
--config-factory=org.apache.samza.config.factories.PropertiesConfigFactory \
--config-path=file://$PWD/samza/config/config.properties
运行时需要配置好config.properties
。
Samza Job配置文件
一个简单的运行配置文件为:
#Job
#指定运行环境,本地测试使用ThreadJobFactory或ProcessJobFactory
#job.factory.class=org.apache.samza.job.yarn.YarnJobFactory
job.factory.class=org.apache.samza.job.local.ThreadJobFactory
job.name=CountLatancy
#YARN
#本地运行时可以省略
yarn.package.path=file://{tmp}/filename.tar.gz
#Task
#主类名,包名.主类名
task.class=samza.CountLatancy
#使用kafka作为输入流时,字段含义为kafka.topic
task.inputs=kafka.clickevent
#windowable job 必须配置,单位为ms
task.window.ms=60000
#Serializers
#定义序列化与反序列化类
serializers.registry.json.class=org.apache.samza.serializers.JsonSerdeFactory
serializers<