storm问题总结(持续更新)
1. yaml跟我们一般用的属性配置文件有所不同, 它的要求更严格一些, 因此在往conf/storm.yaml中添加配置的时候必须注意.
比如必须注意开始位置和冒号后面的空格, 否则配置不会生效. 关于yaml相关的资料, 网上有很多资料可以参考
如何检查配置是否生效, 可以使用命令: storm localconfvalue 配置关键字
但是这个命令只能在nimbus上生效, 在supervisor看到的还是默认值. 不知道为什么
2. 在部署storm节点的时候需要安装jzmq和0qm, 在安装这两个依赖包之后, 需要执行sudo -u root ldconfig. 否则会出现异常:
2012-02-24 16:30:30 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)
这里有相关的讨论:
http://groups.google.com/group/storm-user/browse_thread/thread/656fb21d7166574d
3. 关闭nimbus相关进程:
kill `ps aux | egrep '(daemon\.nimbus)|(storm\.ui\.core)' | fgrep -v egrep | awk '{print $2}'`
4. 干掉supervisor上的所有storm进程:
kill `ps aux | fgrep storm | fgrep -v 'fgrep' | awk '{print $2}'`
5. 目前storm貌似不支持动态加载log4j配置文件, 每一个supervisor节点需要修改log4j/storm.log.properties文件来调整日志输出.
发布topologies时,出现不能序列化log4j.Logger的异常
原因是日志系统无法正确支付序列化。
解决方法:使用slf4j代替log4j。
6. 在打包toplogy工程的时候, 如果采用assembly方式, 对于相关的依赖的配置一般要这样:
<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>参数来控制的.
7. 有时候supervisor的conf/storm.yaml参数设置不合理, 会导致worker无法起来的现象,
比如我碰到的一个例子是. 定义了worker.childopts(给了一个不合理的jvm参数). 结果导致worker反复启动, 而均不成功, 这里的日志信息也不明确, 只是说无法start, 但是没有给更详细的上下文信息.
backtype.storm.daemon.worker mytoplogy-12-1330051497 fdd0effd
-0611-427a-8e23-84fe25047dbd 6701 d7f8354d-9ec0-4272-aa0d-9260f7b0042f
2012-02-24 14:24:27 supervisor [INFO]
a17ff23e-00b2-4e51-9001-74664413d2dd still hasn't started
2012-02-24 14:24:28 supervisor [INFO]
a17ff23e-00b2-4e51-9001-74664413d2dd still hasn't started
2012-02-24 14:24:28 supervisor [INFO]
a17ff23e-00b2-4e51-9001-74664413d2dd still hasn't started
2012-02-24 14:24:29 supervisor [INFO]
a17ff23e-00b2-4e51-9001-74664413d2dd still hasn't started
8. 有问题直接上storm-user搜索相关帖子或者问Storm的作者Nathan Marz. 此人回答问题非常热心. 从提问人的id来看, 貌似中国人在上面问问题的非常多^_^
9. 发布topologies到远程集群时,出现Nimbus host is not set异常
原因是Nimbus没有被正确启动起来,可能是storm.yaml文件没有配置,或者配置有问题。
解决方法:打开storm.yaml文件正确配置:nimbus.host: "xxx.xxx.xxx.xxx",重启nimbus后台程序即可。
在提交topology的时候有时可能出现如下异常:
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 com.taobao.kaleidoscope.storm.IcdbTopology.main(IcdbTopology.java:59)
但是启动nimbus是没有问题的, 这个主要以为内conf_dir路径设置不正确, 在bin/storm脚本中需要加上这样一句:
CONF_DIR = STORM_DIR + "/conf"
10. 如何知道一个tuple的来源?
A:tuple.getSourceStramId()
11. 看到淘宝技术沙龙上@爱的马斯特提到storm 0.6.x版本有内存泄露的坑, 而0.7.0这个版本已经解决了, 貌似目前我们这边还没有碰到, 在考虑是否要升级到最新版本?
12. 发布topologies到远程集群时,出现AlreadyAliveException(msg: xxx is already active)异常
原因是提供的topology与已经在运行的topology重名。
解决方法:发布时换一个拓扑名称即可
13. 发布drpc类型的topologies到远程集群时,出现空指针异常,连接drpc服务器失败
原因是未正确配置drpc服务器地址。
解决方法:在conf/storm.yaml文件中增加drpc服务器配置,启动配置文件中指定的所有drpc服务。内容如下:
drpc.servers:
- "drpc服务器ip"
13. 客户端调用drpc服务时,worker的日志中出现Failing message,而bolt都未收到数据
错误日志如下所示:
2011-12-02 09:59:16 task [INFO] Failing message backtype.storm.drpc.DRPCSpout$DRPCMessageId@3770bdf7: 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主机别名]
14. bolt在处理消息时,worker的日志中出现Failing message
原因可能是因为Topology的消息处理超时所致。
解决方法:提交Topology时设置适当的消息超时时间,比默认消息超时时间(30秒)更长。
conf.setMessageTimeoutSecs(60);
15. storm启动时报no jzmq in java.library.path错误
原因是找不到jzmq,默认情况下在执行install_zmq.sh时,那些.so文件安装路径在/usr/local/lib,但是实际安装时可能装在其他的路径下了。
解决方法:在storm.yaml中添加:
java.library.path: "/opt/storm/jzmq/lib:/opt/storm/zeromq/lib:/usr/local/lib:/opt/local/lib:/usr/lib"
16. 安装jzmq时遇到No rule to make target `classdist_noinst.stamp'的make错误
具体的make错误信息:
make[1]: *** No rule to make target `classdist_noinst.stamp',
needed by `org/zeromq/ZMQ.class'. Stop.
解决方法:手动创建classdist_noinst.stamp空文件。
touch src/classdist_noinst.stamp
17. 安装jzmq时遇到cannot access org.zeromq.ZMQ的make错误
具体的make错误信息:
error: cannot access org.zeromq.ZMQ
class file for org.zeromq.ZMQ not found
javadoc: error - Class org.zeromq.ZMQ not found.
解决方法:手动编译,然后重新make即可通过。
cd src
javac -d . org/zeromq/*.java
cd ..
相关推荐
前馈神经网络求解XOR问题
摘要 前馈神经网络是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层之间没有反馈。是目前应用最广泛、发展最迅速的人工神经网络之一。研究从20世纪60年代开始,目前理论研究和实际应用达到了很高的水平[1]。本节通过设计包含输入层、一个隐含层和输出层的前馈神经网络,实现XOR运算,并基于计算数据或实验数据分析隐含层决策面的特点,进而总结前馈神经网络隐含层的作用。 1.1 神经网络结构设计 1.1.1 XOR问题描述 ...
storm简介、原理、概念
1.什么是storm Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统(高频交易、股票)等等,大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。 ...
车载监控系统升级指南:如何用XS9950A替换TP9950实现高清视频解码(附配置代码)
本文提供了从TP9950升级至XS9950A车载视频解码芯片的完整实战指南。详细解析了硬件设计调整、PCB布局要点,并重点分享了通过I2C配置寄存器实现高清HDCCTV视频解码与同轴音频集成的软件驱动代码与调试技巧,助力工程师平滑完成系统升级。
Storm简介
所以如果你在做一个计数应用, 那么你每次更新到总数里面的是整个batch里面的tuple数量。将topology发布到Storm集群,将预先打包成jar文件的topology和配置信息提交到nimbus服务器上,一旦nimbus接收到topology的压缩包,会将jar包分发到足够数量的supervisor节点上,当supervisor节点接收到了topology压缩文件,nimbus就会指派task到每个supervisor并且发送信号指示supervisor生成足够的worker来执行指派的task。
Ansys Zemax实战:5步搞定衍射光学元件(DOE)设计,附赠超透镜(metalens)避坑指南
本文详细介绍了使用Ansys Zemax进行衍射光学元件(DOE)和超透镜(metalens)设计的5步实战流程。从基础光学系统搭建到相位面设计验证,再到制造准备与实测对比,全面解析了OpticStudio中的关键技巧和常见避坑指南,帮助工程师高效完成复杂光学元件设计。
【Creo】关于Creo一换网络就报错许可证丢失问题解决方案
依照我的个人理解,Creo只要一更换网络,则其许可证里面的网卡参数和现在的网络就对不上了,所以就会出现报错,并且有可能是报错代码(-9),提示许可证激活有问题。
Storm详细总结
学习缘由: Apache Storm是一个免费的开源的分布式实时计算系统。Storm使得可靠的实时处理无边界的数据量变得很容易,就如同Hadoop做批处理那样。Storm很简单,可以用任意的编程语言。 Storm有许多使用案例:实时分析、在线机器学习、持续的计算、分布式RPC、ETL等等。Storm很快速:每个节点每秒钟可以处理一百万个元组。它是可伸缩的、容错的,保证你的数据将会被处理,并且很...
开源大模型推理GPU资源评估以及优化
随着大模型的火热很多项目中都使用到了开源大模型,这时候准确评估大模型的GPU资源非常重要,主要有下面几个方面:GPU是昂贵的资源。高估内存需求可能导致在硬件上的不必要支出,而低估则可能导致系统故障或性能下降。:适当的内存管理确保模型高效运行,能够更快地响应用户并处理更多并发请求。:随着需求的增长,理解内存需求对于在不牺牲性能或产生高昂成本的情况下扩展服务至关重要。尽管其重要性显而易见,但计算用于服务大型语言模型(LLM)的GPU内存并不简单。
storm使用中遇到的问题
1、异常:Caused by: java.util.jar.JarException:file:/home/data/storm/supervisor/stormdist/testtest22-38-1408443230/stormjar.jarhas unsigned entries - 。。。 at javax.crypto.JarVerifier.verifySingleJar(Jar
经典烧脑算法逻辑题--高楼扔鸡蛋:最少次数测出鸡蛋摔碎临界点。
如果在第2层没碎,换到第3层扔.......如果第59层没碎,换到第60层扔;有2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层。因此,我们尝试每10层扔一次,第一次从10层扔,第二次从20层扔,第三次从30层......一直扔到100层。如果第一枚鸡蛋,在50层碎了,第二枚鸡蛋,就从第1层开始扔,一层一层增长,一直扔到第49层。如果第一枚鸡蛋在50层没碎了,则继续使用二分法,在剩余楼层的一半(75层)往下扔。
YOLOv8全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题
DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。
storm 问题
Unable to access file:///log4j2/cluster.xml java.io.FileNotFoundException 2016-12-13 Storm 0.10.2 启动的时候日志配置出错 ERROR StatusLogger Invalid URL C:/Users/xyzabc/apache-storm-0.10.0-beta/log4j2/
一键熄火:在 SAP ABAP 平台停用 OAuth 2.0 Client 的正确姿势
本文是一篇面向SAP ABAP平台运维与开发团队的实战指南,重点讲解了OAuth 2.0客户端的停用操作。文章首先阐述了停用的必要性——当客户端存在泄漏风险或配置错误时,停用能在阻断访问的同时保留配置。随后详细介绍了通过SOAUTH2事务码执行停用的具体步骤,并区分了"停用"、"删除"和"撤销令牌"三个关键概念及其适用场景。 文章提供了两个真实案例:一个是怀疑客户端泄漏后的紧急处置流程,另一个是合规审计期间的冻结与恢复操作。最后总结了一份验证清单,
关于storm版本的问题
java文件中有一处代码:import backtype.storm.task.OutputCollector; eclipse一直提示找不到这个包,而lib中已经导入了storm-core-1.1.1.jar包,这是为什么呢?查阅storm官网后看到下面一段话: In the latest version, the class packages have been changed from
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
storm 使用过程中遇到的问题
1 bolt不停重启,excutor无法启动。 nimbus日志类似如下(), 2014-03-12 10:55:06 b.s.d.nimbus [INFO] Executor MITAS3-74-1394565794:[34 34] not alive 2014-03-12 10:55:06 b.s.d.nimbus [INFO] Executor MITAS3-74-1394565794
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
Storm安装问题总结
安装Storm需要一些依赖软件: 1. uuid-dev 2. ZeroMQ 2.1.7 - Note that you should not install version 2.1.10, as that version has some serious bugs that can cause strange issues for a Storm cluster. In some rare
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
Storm问题
1.1、died backtype.storm.generated.InvalidTopologyException 解决方法: 参考https://blog.csdn.net/BigData_Mining/article/details/79894435 1)检查Spout和Bolt代码中的declareOutputFields方法 2)declare的Field数量 等于 collect...
Storm问题集
一、storm重复消费kafka中的数据 Storm未启用安全模式,因此当kafka中没有新数据时,会默认重复消费已有的数据。此时只需要bolt继承的BaseRichBolt改为BaseBasicBolt即可。 二、storm提交Topology出现如下错误:“Caused by: java.lang.RuntimeException: java.io.IOException:
Storm实战常见问题及解决方案
博客公告:(1)本博客所有博客文章搬迁至《博客虫》http://www.blogchong.com/ (2)文章对应的源码下载链接参考博客虫网站首页的“代码GIT”直通车; (3)更多的相关文章更新,以及代码等,请关注博客虫网站,网站中有技术Q群,以及代码共享链接。 该文档为实实在在的原创文档,转载请注明: http://blog.sina.com.cn/s/blog_8c243ea30
Apache Storm提交Topology时的默认CLASSPATH问题
曾经在使用Storm时碰到一个问题:向集群提交一个新的Topology Jar包,在线运行的却是旧代码。自己百思不得其解,后来发现Storm的安装目录下(也可以说是Storm的HOME目录)有一个同名的旧Jar包,删除后问题解决。。。总结下自己的分析,请路过高手指正: 首先猜测问题出在Java CLASSPATH上,于是阅读Storm源代码去研究,终于在 bin/storm 这个可
storm开发遇到的问题
项目中需要使用到storm,所以
Storm 问题记录
[size=large][b]四、在storm上发布应用[/b][/size] 1、主类传递参数形式 c:\project\storm\conf.yaml是传递到主类main方法的参数值 [code="java"] storm jar c:\project\storm\testjstorm-0.1-jar-with-dependencies.jar com.TestParseTopolo...
storm DRPC问题
一、配置集群storm.yaml文件,配置drpc.server。 二、开启drpc服务,storm drpc。 三、编写DrpcTopology程序。如下: import org.apache.storm.Config; import org.apache.storm.LocalCluster; import org.apache.storm.LocalDRPC; import org.a
2358



被折叠的 条评论
为什么被折叠?



