Storm常见问题处理

错误1发布topologies到远程集群时,出现Nimbus host is not set异常。异常内容如下所示:

[[email protected] bin]# ./storm jar /home/clx/storm-starter.jar storm.starter.WordCountTopology wordcount

Running: export STORM_JAR=/home/clx/storm-starter.jar; java -client -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib  -cp /home/clx/storm-0.5.4/storm-0.5.4.jar:/home/clx/storm-0.5.4/lib/log4j-1.2.16.jar:/home/clx/storm-0.5.4/lib/tools.macro-0.1.0.jar:/home/clx/storm-0.5.4/lib/jline-0.9.94.jar:/home/clx/storm-0.5.4/lib/commons-lang-2.5.jar:/home/clx/storm-0.5.4/lib/core.incubator-0.1.0.jar:/home/clx/storm-0.5.4/lib/junit-3.8.1.jar:/home/clx/storm-0.5.4/lib/compojure-0.6.4.jar:/home/clx/storm-0.5.4/lib/zookeeper-3.3.2.jar:/home/clx/storm-0.5.4/lib/clojure-contrib-1.2.0.jar:/home/clx/storm-0.5.4/lib/httpcore-4.0.1.jar:/home/clx/storm-0.5.4/lib/commons-logging-1.1.1.jar:/home/clx/storm-0.5.4/lib/commons-io-1.4.jar:/home/clx/storm-0.5.4/lib/ring-core-0.3.10.jar:/home/clx/storm-0.5.4/lib/httpclient-4.0.1.jar:/home/clx/storm-0.5.4/lib/commons-codec-1.3.jar:/home/clx/storm-0.5.4/lib/jzmq-2.1.0.jar:/home/clx/storm-0.5.4/lib/jvyaml-1.0.0.jar:/home/clx/storm-0.5.4/lib/commons-fileupload-1.2.1.jar:/home/clx/storm-0.5.4/lib/slf4j-log4j12-1.5.8.jar:/home/clx/storm-0.5.4/lib/servlet-api-2.5.jar:/home/clx/storm-0.5.4/lib/json-simple-1.1.jar:/home/clx/storm-0.5.4/lib/ring-jetty-adapter-0.3.11.jar:/home/clx/storm-0.5.4/lib/slf4j-api-1.5.8.jar:/home/clx/storm-0.5.4/lib/jetty-util-6.1.26.jar:/home/clx/storm-0.5.4/lib/joda-time-1.6.jar:/home/clx/storm-0.5.4/lib/libthrift7-0.7.0.jar:/home/clx/storm-0.5.4/lib/commons-exec-1.1.jar:/home/clx/storm-0.5.4/lib/clojure-1.2.0.jar:/home/clx/storm-0.5.4/lib/ring-servlet-0.3.11.jar:/home/clx/storm-0.5.4/lib/clj-time-0.3.0.jar:/home/clx/storm-0.5.4/lib/hiccup-0.3.6.jar:/home/clx/storm-0.5.4/lib/clout-0.4.1.jar:/home/clx/storm-0.5.4/lib/jetty-6.1.26.jar:/home/clx/storm-0.5.4/lib/servlet-api-2.5-20081211.jar:/home/clx/storm-starter.jar:/root/.storm:/home/clx/storm-0.5.4/bin storm.starter.WordCountTopology wordcount

0    [main] INFO  backtype.storm.StormSubmitter  - Jar not uploaded to master yet. Submitting jar...

Exception in thread "main" java.lang.IllegalArgumentException: Nimbus host is not set

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 storm.starter.WordCountTopology.main(WordCountTopology.java:81)

解决方法:在~/.storm/目录新建storm.yaml文件,~代表用户主目录。storm.yaml文件内容:nimbus.host: "10.0.0.24"。重启nimbus后台程序,异常消失。

 

错误2启动Supervisor时,出现java.lang.UnsatisfiedLinkError: /usr/local/lib/libjzmq.so.0.0.0: libzmq.so.1: cannot open shared object file: No such file or directory异常。异常内容如下所示:

2011-12-01 11:58:47 worker [ERROR] Error on initialization of server mk-worker

java.lang.UnsatisfiedLinkError: /usr/local/lib/libjzmq.so.0.0.0: libzmq.so.1: cannot open shared object file: No such file or directory

at java.lang.ClassLoader$NativeLibrary.load(Native Method)

at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)

at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)

at java.lang.Runtime.loadLibrary0(Runtime.java:823)

at java.lang.System.loadLibrary(System.java:1028)

at org.zeromq.ZMQ.<clinit>(ZMQ.java:34)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:169)

at zilch.mq__init.load(Unknown Source)

at zilch.mq__init.<clinit>(Unknown Source)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:247)

at clojure.lang.RT.loadClassForName(RT.java:1578)

at clojure.lang.RT.load(RT.java:399)

at clojure.lang.RT.load(RT.java:381)

at clojure.core$load$fn__4511.invoke(core.clj:4905)

at clojure.core$load.doInvoke(core.clj:4904)

at clojure.lang.RestFn.invoke(RestFn.java:409)

at clojure.core$load_one.invoke(core.clj:4729)

at clojure.core$load_lib.doInvoke(core.clj:4766)

at clojure.lang.RestFn.applyTo(RestFn.java:143)

at clojure.core$apply.invoke(core.clj:542)

at clojure.core$load_libs.doInvoke(core.clj:4800)

at clojure.lang.RestFn.applyTo(RestFn.java:138)

at clojure.core$apply.invoke(core.clj:542)

at clojure.core$require.doInvoke(core.clj:4869)

at clojure.lang.RestFn.invoke(RestFn.java:422)

at backtype.storm.messaging.zmq$loading__4410__auto__.invoke(zmq.clj:1)

at backtype.storm.messaging.zmq__init.load(Unknown Source)

at backtype.storm.messaging.zmq__init.<clinit>(Unknown Source)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:247)

at clojure.lang.RT.loadClassForName(RT.java:1578)

at clojure.lang.RT.load(RT.java:399)

at clojure.lang.RT.load(RT.java:381)

at clojure.core$load$fn__4511.invoke(core.clj:4905)

at clojure.core$load.doInvoke(core.clj:4904)

at clojure.lang.RestFn.invoke(RestFn.java:409)

at clojure.core$load_one.invoke(core.clj:4729)

at clojure.core$load_lib.doInvoke(core.clj:4766)

at clojure.lang.RestFn.applyTo(RestFn.java:143)

at clojure.core$apply.invoke(core.clj:542)

at clojure.core$load_libs.doInvoke(core.clj:4800)

at clojure.lang.RestFn.applyTo(RestFn.java:138)

at clojure.core$apply.invoke(core.clj:542)

at clojure.core$require.doInvoke(core.clj:4869)

at clojure.lang.RestFn.invoke(RestFn.java:409)

at backtype.storm.messaging.loader$mk_zmq_context.doInvoke(loader.clj:8)

at clojure.lang.RestFn.invoke(RestFn.java:437)

at backtype.storm.daemon.worker$fn__3074$exec_fn__858__auto____3075.invoke(worker.clj:109)

at clojure.lang.AFn.applyToHelper(AFn.java:187)

at clojure.lang.AFn.applyTo(AFn.java:151)

at clojure.core$apply.invoke(core.clj:540)

at backtype.storm.daemon.worker$fn__3074$mk_worker__3216.doInvoke(worker.clj:78)

at clojure.lang.RestFn.invoke(RestFn.java:513)

at backtype.storm.daemon.worker$_main.invoke(worker.clj:247)

at clojure.lang.AFn.applyToHelper(AFn.java:174)

at clojure.lang.AFn.applyTo(AFn.java:151)

at backtype.storm.daemon.worker.main(Unknown Source)

解决方法1export LD_LIBRARY_PATH=/usr/local/lib

解决方法2编辑/etc/ld.so.conf文件,增加一行:/usr/local/lib。再执行sudo ldconfig命令,重启Supervisor,异常消失。

错误3发布drpc类型的topologies到远程集群时,出现空指针异常,连接drpc服务器失败。

解决方法:在conf/storm.yaml文件中增加drpc服务器配置,启动配置文件中指定的所有drpc服务。内容如下所示:

drpc.servers:

- "drpc服务器ip"

错误4客户端调用drpc服务时,worker的日志中出现Failing message,而bolt都未收到数据。日志如下所示:

2011-12-02 09:59:16 task [INFO] Failing message [email protected]: source: 1:27, stream: 1, id: {-5919451531315711689=-5919451531315711689}, [foo.com/blog/1, {"port":3772,"id":"5","host":"10.0.0.24"}]

解决方法:主机名,域名,hosts文件配置不正确会引起这类错误。检查并修改storm相关机器的主机名,域名,hosts文件。重启网络服务:service network restart。重启storm,再次调用drpc服务,成功。Hosts文件中必须包含如下内容:

【nimbus主机ip】 【nimbus主机名】 【nimbus主机别名】

【supervisor主机ip】 【supervisor主机名】 【supervisor主机别名】

【zookeeper主机ip】 【zookeeper主机名】 【zookeeper主机别名】

错误5发布topologies时,出现不能序列化log4j.Logger的异常。

解决方法:使用slf4j代替log4j。

错误6bolt在处理消息时,worker的日志中出现Failing message。

解决方法:提交Topology时设置适当的消息的超时时间,比消息原本的超时时间更长,如下所示:

conf.setMessageTimeoutSecs(60);//默认为30秒。

时间: 2024-10-06 16:05:42

Storm常见问题处理的相关文章

#研发解决方案介绍#Recsys-Evaluate(推荐评测)

郑昀 基于刘金鑫文档 最后更新于2014/12/1 关键词:recsys.推荐评测.Evaluation of Recommender System.piwik.flume.kafka.storm.redis.mysql 本文档适用人员:研发 推荐系统可不仅仅是围着推荐算法打转 先明确一下,我们属于工业领域.很多在学术论文里行之有效的新特奇算法,在工业界是行不通的.当年我们做语义聚合时,分词.聚类.相似性计算.实体词识别.情感分析等领域最终还都采用了工业界十几年前乃至于几十年前就流行的成熟算法.

Storm实战常见问题及解决方案

文档说明 该文档包涵了storm实战中经常遇到一些问题,及对应解决方案.这个文档是群里一个朋友在学习storm,并实战storm中遇到的一些问题,及和群里其他朋友一起交流给出的对应解决方案,并由他整理好,委托我发布出来(也算是交流者之一),供大家参考,希望能对大家有所帮助. 感谢 某某(哈哈 鉴于部分原因,不便透露名字~~~~!)… 问题锦集 1 关于Storm集群 1.1 关于storm集群的环境变量配置问题 安装好JDK后,需要配置环境变量,通常情况下出于经验,我们往往会修改/etc/pro

转载文档:Storm实战常见问题及解决方案

该文档为实实在在的原创文档,转载请注明: http://blog.sina.com.cn/s/blog_8c243ea30101k0k1.html 类型 详细 备注 该文档是群里几个朋友在storm实战中遇到的一些问题,及其对应解决办法.     相关描述 ²  其他相关文档请参考新浪博客http://blog.sina.com.cn/huangchongyuan ²  有任何其他想法,可以邮件[email protected] ² 文档及相关资料下载请个人360云盘http://yunpan.

Storm入门(八)Storm实战常见问题总结

一.本地环境log级别设置问题 storm-core-1.1.0.jar下面有个log4j2.xml文件,默认log级别是info. <configuration monitorInterval="60"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%-4r [%t] %-5p

Maven安装及使用中的常见问题

环境:win7  +    eclipse mars版本 一.安装maven 1.安装maven插件 1).下载maven并解压到指定目录,到该目录下复制当前路径path 2).在eclipse的dropins目录下编辑maven.link,将maven所在的path填写进去: path=D:/Program Files/DevTools/apache-maven-3.3.9 然后启动eclipse,在Window-->Prefrence窗口看到Maven的选项说明maven插件安装成功. 2.

Storm 0.9安装指南

Storm 0.9.2安装指南 0 Storm0.9的亮点 引用网上的描述: "Storm 0.9.0.1版本的第一亮点是引入了netty transport.Storm网络传输机制实现可插拔形式,当前包含两种方式:原来的0mq传输,以及新的netty实现:在早期版本中(0.9.x之前的版本),Storm只支持0mq传输,由于0MQ是一个本地库(native library),对平台的依赖性较高,要完全正确安装还是有一定挑战性.而且版本之间的差异也比较大:Netty Transport提供了纯J

Apache Storm 1.1.0 中文文档 | ApacheCN

前言  Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ApacheCN 最近组织了翻译 Storm 1.1.0 中文文档 的活动,整体 翻译进度 为 96%. 感谢大家参与到该活动中来 感谢无私奉献的 贡献者,才有了这份 Storm 1.1.0 中文文档 感谢一路有你的陪伴,我们才可以做的更好,走的更快,走的更远,我们一直在努力 ... 网页地址:

PHP常见问题及解答

当作PHP学习时,总是会在baidu上查很多的例如开发环境的选择呀,PHP好不好呀!或者是不是转学JAVA,或是.NET等: 首先本人是从2010年下半年开始报名学的PHP(IN Guangzhou),每周一天学了近6个月左右,从最基础的HTML,CSS,DIV,JAVASCRIPT,AJAX,PHP,然后学二次开发:闲暇之余还开通了一个个人blog( PHP wordpress); 由于个人工作原因,这几年放了一段时间未动PHP了,今年开始又自学了.NET; ---目的就想业余做一份兼职,锻炼

微信JS-SDK说明文档及常见问题处理

概述 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 此文档面向网页开发者介绍微信JS-SDK如何使用及相关注意事项. 使用说明 在使用微信JS-SDK对应的JS接口前,需确保公众号已获得使用对应JS接口的权限,可登录微信公众平台进入“开发者中心”查看对应的接口权限. 注意: