分布式的实时计算系统,能够可信任的处理大量的流式数据,就好比Hadoop对于批量数据进行的处理一样;通常来说,Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的作用。
1
Q:在打包toplogy工程的时候,如果采用assembly方式,相关依赖如何配置?
A:对于相关的依赖的配置一般要这样:
wiki上说可以用<scope>compile</scope>。然后将storm依赖设置为runtime,貌似不行。 另外就是所有的依赖包将全部解压,然后将所有依赖的配置和class文件生成一个文件。这个是通过<unpack>true</unpack>参数来控制的。
2
Q:在提交topology的时候有时可能出现如下异常: 如何解决?
A:这个主要因为conf_dir路径设置不正确,在bin/storm脚本中需要加上这样一句: Python代码
3
Q:发布drpc 类型的topologies 到远程集群时,出现空指针异常,连接drpc服务器失败。
A:原因是未正确配置drpc 服务器地址。解决方法如下:
在conf/storm.yaml 文件中增加drpc 服务器配置,启动配置文件中指定的所有drpc 服务。内容如下:
4
Q:客户端调用drpc 服务时,worker 的日志中出现Failing message,而bolt都未收到数据
错误日志如下所示:
A:原因是主机名,域名,hosts 文件配置不正确会引起这类错误。解决方法如下:
检查并修改storm 相关机器的主机名,域名,hosts 文件。重启网络服务:service networkrestart。重启storm,再次调用drpc 服务,成功。Hosts 文件中必须包含如下
内容:
5
Q:Storm 启动时报no jzmq in java.library.path 错误
A:原因是找不到jzmq,默认情况下在执行install_zmq.sh 时,那些.so 文件安装路径在/usr/local/lib,但是实际安装时可能装在其他的路径下了。解决方法如下:
在storm.yaml 中添加: