storm 日志进程 storm查看输出日志_解决方法

分布式的实时计算系统,能够可信任的处理大量的流式数据,就好比Hadoop对于批量数据进行的处理一样;通常来说,Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的作用。



storm 日志进程 storm查看输出日志_storm 日志进程_02

1


Q:在打包toplogy工程的时候,如果采用assembly方式,相关依赖如何配置?


A:对于相关的依赖的配置一般要这样: 

storm 日志进程 storm查看输出日志_微服务_03

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



storm 日志进程 storm查看输出日志_storm 日志进程_02

2

Q:在提交topology的时候有时可能出现如下异常: 如何解决?

storm 日志进程 storm查看输出日志_数据_05


A:这个主要因为conf_dir路径设置不正确,在bin/storm脚本中需要加上这样一句: Python代码  

storm 日志进程 storm查看输出日志_解决方法_06



storm 日志进程 storm查看输出日志_storm 日志进程_02

3


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


A:原因是未正确配置drpc 服务器地址。解决方法如下:

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

storm 日志进程 storm查看输出日志_微服务_08



storm 日志进程 storm查看输出日志_storm 日志进程_02

4



Q:客户端调用drpc 服务时,worker 的日志中出现Failing message,而bolt都未收到数据

错误日志如下所示:

storm 日志进程 storm查看输出日志_数据_10



A:原因是主机名,域名,hosts 文件配置不正确会引起这类错误。解决方法如下:









检查并修改storm 相关机器的主机名,域名,hosts 文件。重启网络服务:service networkrestart。重启storm,再次调用drpc 服务,成功。Hosts 文件中必须包含如下



内容:



storm 日志进程 storm查看输出日志_微服务_11






storm 日志进程 storm查看输出日志_storm 日志进程_02

5


Q:Storm 启动时报no jzmq in java.library.path 错误


A:原因是找不到jzmq,默认情况下在执行install_zmq.sh 时,那些.so 文件安装路径在/usr/local/lib,但是实际安装时可能装在其他的路径下了。解决方法如下:

在storm.yaml 中添加:

storm 日志进程 storm查看输出日志_解决方法_13