首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

最近碰到的一些storm有关问题总结(不断更新)

2012-07-15 
最近碰到的一些storm问题总结(不断更新)目前使用的是storm.0.6.0这个版本. 至于其他版本有没有这问题, 不

最近碰到的一些storm问题总结(不断更新)
目前使用的是storm.0.6.0这个版本. 至于其他版本有没有这问题, 不做研究.

★ yaml跟我们一般用的属性配置文件有所不同, 它的要求更严格一些, 因此在往conf/storm.yaml中添加配置的时候必须注意.

比如必须注意开始位置和冒号后面的空格, 否则配置不会生效. 关于yaml相关的资料, 网上有很多资料可以参考

如何检查配置是否生效, 可以使用命令: storm localconfvalue 配置关键字
但是这个命令只能在nimbus上生效, 在supervisor看到的还是默认值. 不知道为什么

★ 在部署storm节点的时候需要安装jzmq和0qm, 在安装这两个依赖包之后, 需要执行sudo -u root ldconfig. 否则会出现异常:
<dependencySets><dependencySet><outputDirectory>/</outputDirectory><unpack>true</unpack><excludes><exclude>storm:storm</exclude></excludes></dependencySet></dependencySets>

wiki上说可以用<scope>compile</scope>. 然后将storm依赖设置为runtime, 貌似不行. 另外就是所有的依赖包将全部解压, 然后将所有依赖的配置和class文件生成一个文件. 这个是通过<unpack>true</unpack>参数来控制的.

★ 有时候supervisor的conf/storm.yaml参数设置不合理, 会导致worker无法起来的现象, 比如我碰到的一个例子是. 定义了worker.childopts(给了一个不合理的jvm参数). 结果导致worker反复启动, 而均不成功, 这里的日志信息也不明确, 只是说无法start, 但是没有给更详细的上下文信息. 
        at backtype.storm.utils.NimbusClient.<init>(NimbusClient.java:30)
        at backtype.storm.utils.NimbusClient.getConfiguredClient(NimbusClient.java:17)
        at backtype.storm.StormSubmitter.submitJar(StormSubmitter.java:78)
        at backtype.storm.StormSubmitter.submitJar(StormSubmitter.java:71)
        at backtype.storm.StormSubmitter.submitTopology(StormSubmitter.java:50)
        at com.taobao.kaleidoscope.storm.IcdbTopology.main(IcdbTopology.java:59)

但是启动nimbus是没有问题的, 这个主要以为内conf_dir路径设置不正确, 在bin/storm脚本中需要加上这样一句:

CONF_DIR = STORM_DIR + "/conf"


★Q:如何知道一个tuple的来源?
A:tuple.getSourceStramId()


Update:
刚看到淘宝技术沙龙上@爱的马斯特提到storm 0.6.x版本有内存泄露的坑, 而0.7.0这个版本已经解决了, 貌似目前我们这边还没有碰到,  在考虑是否要升级到最新版本?<dependency><groupId>storm</groupId><artifactId>storm</artifactId><version>0.6.2</version><!-- keep storm out of the jar-with-dependencies --><scope>provided</scope></dependency>

所以我使用了compile来做过滤<dependency><groupId>storm</groupId><artifactId>storm</artifactId><version>0.6.2</version><!-- keep storm out of the jar-with-dependencies --><scope>provided</scope></dependency>

所以我使用了compile来做过滤
compile做过滤???没有明白你的意思。 4 楼 TonyLee0329 2012-03-14   你好,请问怎么解决多个spout线程一起读一个数据源呢,重要的是每个线程间数据不能重复
不知道storm可不可以解决这样的问题 5 楼 macrochen 2012-03-15   TonyLee0329 写道你好,请问怎么解决多个spout线程一起读一个数据源呢,重要的是每个线程间数据不能重复
不知道storm可不可以解决这样的问题
能否将数据源sharding?
然后启动多个spout去对应每一个sharding.
6 楼 TonyLee0329 2012-03-16   macrochen 写道TonyLee0329 写道你好,请问怎么解决多个spout线程一起读一个数据源呢,重要的是每个线程间数据不能重复
不知道storm可不可以解决这样的问题
能否将数据源sharding?
然后启动多个spout去对应每一个sharding.

现在数据还没做分区,不知道您有没有具体的办法呢?数据是存在mysql中的 7 楼 macrochen 2012-03-17   TonyLee0329 写道macrochen 写道TonyLee0329 写道你好,请问怎么解决多个spout线程一起读一个数据源呢,重要的是每个线程间数据不能重复
不知道storm可不可以解决这样的问题
能否将数据源sharding?
然后启动多个spout去对应每一个sharding.

现在数据还没做分区,不知道您有没有具体的办法呢?数据是存在mysql中的

那就引入一个中间件, 比如先将数据取模, 放到多个队列, 然后一个spout对应一个队列进行处理 8 楼 badqiu 2012-04-15   想问你下一下。

storm worker进程timeout重启怎么办? 异常:

2012-04-15 22:02:05 supervisor [INFO] Shutting down and clearing state for id bffa83a9-c289-4bbb-a768-d3d3a6ac72e1. State: :timed-out, Heartbeat: #:backtype.storm.daemon.common.WorkerHeartbeat{:time-secs 1334498404, :storm-id "action_log-6-1334307292", :task-ids (3 35 19), :port 6701}
2012-04-15 22:02:05 supervisor [INFO] Shutting down 19553f3b-94f1-4892-aca0-c573677138b4:bffa83a9-c289-4bbb-a768-d3d3a6ac72e1
2012-04-15 22:02:05 supervisor [INFO] Shut down 19553f3b-94f1-4892-aca0-c573677138b4:bffa83a9-c289-4bbb-a768-d3d3a6ac72e1
2012-04-15 22:02:05 supervisor [INFO] Launching worker with assignment #:backtype.storm.daemon.supervisor.LocalAssignment{:storm-id "action_log-6-1334307292", :task-ids (3 35 19)} for this supervisor 19553f3b-94f1-4892-aca0-c573677138b4 on port 6701 with id d074bcb3-d5af-4887-9651-5fd0eae8ec01

这里有讲到解决办法,还没有尝试:

http://groups.google.com/group/storm-user/browse_thread/thread/37ca589d04877652/753ded4eaa4b9fab?lnk=gst&q=Shutting+down+and+clearing+state++for+id#753ded4eaa4b9fab 9 楼 badqiu 2012-04-20   ... storm内存泄露的坑被我踩到了。 10 楼 macrochen 2012-04-22   badqiu 写道... storm内存泄露的坑被我踩到了。
啥场景?

热点排行