storm学习(三):storm0.9.0版本试用
来源:互联网 发布:社交网络的影响 编辑:程序博客网 时间:2024/05/21 08:00
这个版本中storm增加了很多新的实用的特性,其中几个比较重要的改变如下:
1.使用两种数据传输方式分别是zeroMQ/0MQ和netty
之前的版本只能使用0MQ一种传输方式,不过0MQ有一些不尽人意的地方。因为0MQ由C开发所以依赖与平台,安装也比较麻烦。而jvm调用native库也不能进行控制。
0mq的版本差异比较大,不能保证所有的版本和storm都能兼容。目前的验证可以运行的版本只有2.1.7
而使用netty比较方便不用安装由于nettty是java开发兼容性可以得到保证。另外netty的性能可以达到0mq的两倍。所以非常推荐使用netty这种方式。
在storm.yaml中加入
storm.messaging.transport: "backtype.storm.messaging.netty.Context"storm.messaging.netty.server_worker_threads: 1storm.messaging.netty.client_worker_threads: 1storm.messaging.netty.buffer_size: 5242880storm.messaging.netty.max_retries: 100storm.messaging.netty.max_wait_ms: 1000storm.messaging.netty.min_wait_ms: 100
另外也提供可以用户自定义的传输方式,只要实现 backtype.storm.messaging.IContext 接口即可
2.增加Log viewer UI
这个版本增加了一个log viewer的守护进程,可以通过ui 直接查看worker的执行日志。 查看日志非常方便。
3. 增加window 版本
4. log的组件修改为slf4j+logback
下载后切换到netty模式,直接就可以使用确实方便许多。不过在使用的过程中还是发现了一些问题。
问题1.使用时storm0.9.0.1发现日志报错
java.lang.IllegalArgumentException: timeout value is negative at java.lang.Thread.sleep(Native Method) at backtype.storm.messaging.netty.Client.reconnect(Client.java:78) at backtype.storm.messaging.netty.StormClientHandler.exceptionCaught(StormClientHandler.java:108) at org.jboss.netty.handler.codec.frame.FrameDecoder.exceptionCaught(FrameDecoder.java:377) at org.jboss.netty.channel.Channels.fireExceptionCaught(Channels.java:525) at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.connect(NioClientSocketPipelineSink.java:124) at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.eventSunk(NioClientSocketPipelineSink.java:69) at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:54) at org.jboss.netty.channel.Channels.connect(Channels.java:634) at org.jboss.netty.channel.AbstractChannel.connect(AbstractChannel.java:207) at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:229) at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:182) at backtype.storm.messaging.netty.Client.reconnect(Client.java:80) at backtype.storm.messaging.netty.StormClientHandler.exceptionCaught(StormClientHandler.java:108) at org.jboss.netty.handler.codec.frame.FrameDecoder.exceptionCaught(FrameDecoder.java:377) at org.jboss.netty.channel.Channels.fireExceptionCaught(Channels.java:525) at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.connect(NioClientSocketPipelineSink.java:124) at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.eventSunk(NioClientSocketPipelineSink.java:69) at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:54) at org.jboss.netty.channel.Channels.connect(Channels.java:634)其中查找资料可能是之前的一个bug重现了。 我决定降一个版本0.9.0-rc3来代替。因为rc3版本的changelog中明确说明已经解决了该问题
问题2:降版本之后发现报错情况出现connection failed
2014-02-17 15:45:41 b.s.m.n.StormClientHandler [INFO] Connection failed:
java.nio.channels.UnresolvedAddressException: null
怀疑可能是地址有问题,最后发现使用netty链接并没有链接服务器的ip而是使用域名。原因在/etc/sysconfig/network中配置了服务器的名称。
而在/etc/hosts中没有将服务器名称对应到ip的配置,所以程序链接不上。最后在/etc/hosts中增加了对应配合后。 重新运行程序。一切正常。问题解决
- storm学习(三):storm0.9.0版本试用
- storm学习(三)
- Storm0.9.0发布
- storm学习三 drpc学习
- Apache Storm0.92版本集群搭建
- 从storm0.8.1升级到storm0.9.0.1实践
- storm0.9.0.1升级安装
- Storm0.9.0.1升级安装
- storm版本
- Kafka学习三:Flumeng+Kafka+Storm
- storm学习小结三:编写拓扑实践
- storm的学习与使用(三)
- Kafka学习三:Flumeng+Kafka+Storm
- VS2008 试用版本破解
- Storm学习
- Storm学习
- storm学习
- Storm学习
- iTALC 网络教室平台 编译及使用简介
- 森纵培训第二十五天课程总结
- 字节对齐
- android
- 访问数据库连接字符串(sql连接)
- storm学习(三):storm0.9.0版本试用
- Matlab判断图像类型
- Wooden Sticks
- POJ 2400 Supervisor, Supervisee KM +dfs回溯
- IOS中欢迎界 Default.png 详解
- 电路板中的各种“地”
- wifi热点-ubuntu
- NGUI控件说明(中文) UIRoot
- RQNOJ - PID34 紧急援救 (BFS)