storm local版本本地测试异常汇总

本文解决了两个在使用Apache Storm过程中遇到的问题:一是无法启动多语言子进程的运行时异常,通过配置Python路径及添加multilang目录到类路径解决;二是ShellBolt抛出的IndexError异常,通过对splitsentence.py文件进行代码修正得以解决。

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

1,报错如下:

ava.lang.RuntimeException: Error when launching multilang subprocess
Caused by: java.io.IOException: Cannot run program "python" (in directory "/tmp/eaf0b6b3-67c1-4f89-b3d8-23edada49b04/supervisor/stormdist/word-count-1-1414559082/resources"): error=2, No such file or directory

修复:1,在Eclipse中配置python路径

             2,将:multilang目录加入classpath


2,报错如下:

9688 [Thread-34] INFO  backtype.storm.task.ShellBolt - ShellLog pid:11612, name:split Traceback (most recent call last):
  File "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\bc681c09-ff50-4ec3-808f-158917b93992\supervisor\stormdist\word-count-1-1421735162\resources\storm.py", line 172, in run
    self.process(tup)
  File "splitsentence.py", line 5, in process
    words = tup.values[0].split(" ")
IndexError: list index out of range

修改splitsentence.py即可

 

import storm

class SplitSentenceBolt(storm.BasicBolt):
    def process(self, tup):
        if len(tup.values) != 0:
                words = tup.values[0].split(" ")
                if len(words) != 0:
                    for word in words:
                      storm.emit([word])

SplitSentenceBolt().run()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值