Storm实时流处理Hello World

近来在看Storm的相关资料,以下总结一下配置过程和Hello World例子。

Storm是分布式的实时计算系统。详细文档可参考Storm网站,也可以参阅《Getting started with storm》,以下程序示例即来自于这本书。

先看配置(可参考这里):

配置文件在下载安装包中的conf文件夹,名字为storm.yaml

########### These MUST be filled in for a storm configuration
storm.zookeeper.servers:
     - "server1"
#     - "server2"
# 
nimbus.host: "server1"
storm.local.dir: "/storm/data"  
supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703
# 
# ##### These may optionally be filled in:
#    
## List of custom serializations
# topology.kryo.register:
#     - org.mycompany.MyType
#     - org.mycompany.MyType2: org.mycompany.MyType2Serializer
#
## List of custom kryo decorators
# topology.kryo.decorators:
#     - org.mycompany.MyDecorator
#
## Locations of the drpc servers
# drpc.servers:
#     - "server1"
#     - "server2"

## Metrics Consumers
# topology.metrics.consumer.register:
#   - class: "backtype.storm.metrics.LoggingMetricsConsumer"
#     parallelism.hint: 1
#   - class: "org.mycompany.MyMetricsConsumer"
#     parallelism.hint: 1
#     argument:
#       - endpoint: "metrics-collector.mycompany.org"
其中nimbus.host: "server1"指定storm集群中master的主机名为server1,storm.zookeeper.servers指定storm所需要的zookeeper服务器主机名为server1(装在同一服务器上),supervisor.slots.ports指定storm集群中worker使用的socket端口。

其中storm的命令如下所示,分别对应启动master,worker和ui,zookeeper服务请参考zookeeper介绍。

#storm nimbus

#storm spuervisor

#storm ui

ui可以通过浏览器访问以下网址:http://server1:8080/,如下图所示:


从ui可以监测系统运行情况,可以手动控制topology的运行。

再看一下如果编译运行计算任务程序,以下例子来自于《Getting started with storm》,可以从这里下载源代码。示例程序通过maven编译,对应的编译配置文件为pom.xml,为了适配storm新版本。做了如下修改(调依赖整storm的版本为0.8.0):


编译的命令为(不编译测试脚本):

#mvn compile -Dmaven.test.skip=true

打包:

#mvn package

打包文件放置在target目录,共有两个,一个包含依赖,一个不包含依赖。storm限制storm库相关jar文件不能打包到最终jar文件,所以将storm依赖项配置修改为如下内容(当然可以直接使用jar命令打包):

                <dependency>
                        <groupId>storm</groupId>
                        <artifactId>storm</artifactId>
                        <version>0.8.0</version>
                        <!-- keep storm out of the jar-with-dependencies -->
                        <scope>provided</scope>
                </dependency>

<scope>provided</scope>限定最终包含依赖的jar文件不会包含storm。


示例中的TopologyStarter.java文件做如下修改,即将LocalCluster.submitTopology调用替换为StormSubmitter.submitTopology,将计算以集群方式提交。

命令如下所示:

#storm jar mypackage-with-dependencies.jar storm.analytics.TopologyStarter

任务提交后,可以从ui监控其执行状态。


storm涉及的相关理论在后续文章中整理,以上文字作为随笔记录备做后续参考,以防重复劳动。


以上使用storm 0.9.1

转载于:https://www.cnblogs.com/hanhuilee/p/5221281.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值