使用Storm实时处理交通大数据(数据源:kafka,集群管理:zookeeper)
使用storm接入交通数据,实时计算速度流量等交通模型
说明:告警后的通知功能不在该项目范围内,通知功能应作为单独的微服务部署并提供相应的接口。
Storm cluster 使用zookeeper来管理集群,同时由于kafka也使用zookeeper来进行分布式协调, 简化起见,我们对storm和kafka使用同一套zookeeper,作为开发环境,我们不考虑zookeeper 的单点故障,所以不搭建zookeeper的集群
下载 storm release并解压
安装文件:downloads
注意:不要下载源码,源码中在storm的根目录下缺少lib文件夹,storm命令无法运行。
环境变量设置
Storm配置
Storm配置文件为%STORM_HOME%\conf\storm.yaml
, 打开该文件修改配置如下:
# zookeeper集群地址列表,如果zookeeper不是使用的默认端口,
# 还需要配置storm.zookeeper.ports
storm.zookeeper.servers:
- "localhost"
# nimbus所在主机名称
nimbus.host: "localhost"
# nimbus和supervisor的数据存放路径
storm.local.dir: "/storm_local"
# supervisor所在机器的所有工作进程可用的端口列表
supervisor.slots.ports:
- 6700
- 6701
zkServer
storm numbus
storm supervisor
storm ui
[zk: localhost:2181(CONNECTED) 14] ls2 /storm/nimbuses
[HIH-D-8204.hz.ntes.domain:6627]
cZxid = 0xcb
ctime = Fri Oct 27 10:11:04 CST 2017
mZxid = 0xcb
mtime = Fri Oct 27 10:11:04 CST 2017
pZxid = 0x460
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 1
[zk: localhost:2181(CONNECTED) 15] ls2 /storm/nimbuses/HIH-D-8204.hz.ntes.domain:6627
[]
cZxid = 0x460
ctime = Fri Oct 27 11:13:57 CST 2017
mZxid = 0x460
mtime = Fri Oct 27 11:13:57 CST 2017
pZxid = 0x460
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x15f5b97a5af000d
dataLength = 79
numChildren = 0
KAFKA_HOME
以及将%KAFKA_HOME%\bin\windows
加入到系统PATH
%KAFKA_HOME%\config\server.properties
,
注意其中的zookeeper的配置如zookeeper.connect=localhost:2181
要根据实际的情况配置。kafka-server-start.bat %KAFKA_HOME%\config\server.properties
kafka-console-consumer.bat --zookeeper localhost --topic mytopic
kafka-console-producer.bat --broker-list localhost:9092 --topic mytopic