storm开发遇到的问题

本文介绍了如何使用Storm 0.9.1版本搭建消息队列环境,包括配置文件详细解析及启动过程。同时,分享了在开发过程中遇到的两个典型问题及其解决方法:nimbus或supervisor进程意外崩溃和拓扑初次部署错误。通过调整配置和方法调用,确保了Storm集群稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中需要使用到storm,所以临时抱佛脚找了本英文书看了看就进入开发了

(一)搭建环境

我使用的是storm-0.9.1版本,这个版本有个好处就是底层用纯java实现了消息队列,不需要像以前的版本还需要本地编译zeroMQ等一大堆依赖,只需要安装JDK然后在storm.yaml文件中指定

storm.messaging.transport: "backtype.storm.messaging.netty.Context"
storm.messaging.netty.server_worker_threads: 1
storm.messaging.netty.client_worker_threads: 1
storm.messaging.netty.buffer_size: 5242880
storm.messaging.netty.max_retries: 100
storm.messaging.netty.max_wait_ms: 1000
storm.messaging.netty.min_wait_ms: 100

就可以使用netty了。非常方便。至于zookeeper集群肯定还是需要安装的。

下面贴上整个配置文件信息

storm.zookeeper.servers:
     - "192.168.137.100"
     - "192.168.137.101"
     - "192.168.137.102"
#
nimbus.host: "192.168.137.100"


storm.local.dir: "/var/storm"

storm.messaging.transport: "backtype.storm.messaging.netty.Context"
storm.messaging.netty.server_worker_threads: 1
storm.messaging.netty.client_worker_threads: 1
storm.messaging.netty.buffer_size: 5242880
storm.messaging.netty.max_retries: 100
storm.messaging.netty.max_wait_ms: 1000
storm.messaging.netty.min_wait_ms: 100

supervisor.slots.ports:
  - 6700
  - 6701
  - 6702
  - 6703

(二)开发遇到的问题

(1)有时候在启动storm集群的时候,发现nimbus或则supervisor进程总是无缘无故的挂掉,其实我也不清楚原因,也没有报错,属于毫无征兆的。但只要我清理了storm.local.dir所指定的目录下的所有文件再启动就好了。这个问题以后研究,这里只给出解决方法。

(2)第一次写的topology总是报错,发现在spout组件中的nextTuple()方法中把信息抛出去的时候需要调用的emit(new Values(str),str)这个重写的方法,才能够正常运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值