作者微信 bishe2022

代码功能演示视频在页面下方,请先观看;如需定制开发,联系页面右侧客服

    实例讲解了Storm从外部接入数据源(MetaQ或者数据文件), 见下图MetaqSpout对接外部数据源, 数据接入后, 使用FilterBolt对数据源根据正则表达式进行过滤, 满足条件的数据发送给下面的Bolt(MetaqBolt, MySqlBolt, PrintBolt)

MetaqBolt: 将FilterBolt过滤的数据回写到MetaQ消息队列中

MysqlBolt:  将FilterBolt过滤的数据写到MySql中

PrintBolt:    将FilterBolt过滤的数据打印到日志中

image.png

项目对应的实例代码可以通过【下载实例】按钮获取

开发工具: IntelliJ IDEA2017, JDK1.8, Maven 3.0.2, storm-0.9.6, zookeeper-3.4.12, python 3.6.5, MySql

【项目包含内容】(见下图):   

image.png

导入工程后

image.png


下面的环境在windows单机下进行, zookeeper,storm皆为单机模式 (jdk1.8的安装就省略了)

1. Zookeeper的安装与启动

    在页面右侧下载Zookeeper对应的版本(请保持与本工程一致), 解压下载的tar包, 将 F:\Program Files\zookeeper-3.4.12\conf(此根据自己的安装目录进行配置) 下的 zoo_sample.cfg 改为 zoo.cfg, Zookeeper会使用此配置文件, 其中clientPort为监听端口, dataDir为数据目录, dataLogDir为日志目录

zoo.cfg内容如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=F:\\Program Files\\zookeeper-3.4.12\\data
dataLogDir=F:\\Program Files\\zookeeper-3.4.12\\log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

   双击 F:\Program Files\zookeeper-3.4.12\bin 下的  zkServer.cmd 启动 zookeeper服务

   双击 F:\Program Files\zookeeper-3.4.12\bin 下的  zkCli.cmd 启动zookeeper的客户端命令行连接, 输入 ls / 查询根路径下节点, 能正常访问说明zookeeper启动成功(见下图)

image.png

    配置Zookeeper的环境变量:   ZOOKEEPER_HOME: 安装目录  和 path: %ZOOKEEPER_HOME%\bin


2.  Python 的安装与启动

在页面右侧下载Python对应的版本(请保持与本工程一致), 解压下载zip包并安装,   安装目录: F:\Program Files\Python

在path中配置环境变量:   F:\Program Files\Python;F:\Program Files\Python\Scripts;


3.  Storm 的安装与启动

在页面右侧下载Storm对应的版本(请保持与本工程一致), 解压下载zip包

    配置Storm的环境变量:  STORM_HOME: 安装目录 和 path:%STORM_HOME%\bin

打开cmd窗口, 输入下面三个命令

    storm nimbus

    storm supervisor

    storm ui

image.png

在浏览器中输入  localhost:8080, 如果能访问到相应的页面,则启动成功,见下图

image.png


4. 下载工程项目代码,  打开cmd命令窗口, 切换目录到    F:\storm-example,  输入maven命令进行打包: mvn assembly:assembly, 

生成jar包(此jar包包含其所依赖的其它jar包集)

  进行target目录:  storm jar storm-example-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.blogchong.storm.dataopttopology.Topology domaintest, 由下图可见,已经生成了一个名称为  domaintest的 top


image.png


PrintBolt打印的日志文件信息 如下图

image.png


MysqlBolt存储到Mysql中的数据见下图

image.png



Home