已经碰到的或者将来碰到的关于安装部署方面的问题以及解决方法,先挖个坑

1.提交的topology在admin界面上看emitted始终都是0,查看日志发现有如下错误:

worker [ERROR] Error on initialization of server mk-worker
org.zeromq.ZMQException: 无效的参数(0x16)
        at org.zeromq.ZMQ$Socket.setLongSockopt(Native Method)
        at org.zeromq.ZMQ$Socket.setLinger(ZMQ.java:601)
        at zilch.mq$set_linger.invoke(mq.clj:57)
        at backtype.storm.messaging.zmq.ZMQContext.connect(zmq.clj:62)
        at backtype.storm.daemon.worker$mk_refresh_connections$this__4293$iter__4300__4304$fn__4305.invoke(worker.clj:244)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:60)
        at clojure.lang.RT.seq(RT.java:473)
        at clojure.core$seq.invoke(core.clj:133)
        at clojure.core$dorun.invoke(core.clj:2725)
        at clojure.core$doall.invoke(core.clj:2741)
        at backtype.storm.daemon.worker$mk_refresh_connections$this__4293.invoke(worker.clj:238)
        at...

我的zeromq版本是3.X ,查资料后看到有说法可能是zeromq的版本问题,按照建议下载2.7.1版本,并重新安装zeromq以及jzmq,重启nimbus和supervisor节点,重新commit测试的topology,执行成功,日志也没有错误了。

2. 安装并编译zeromq出错:

make报错:cannot link with -luuid, install uuid-dev.

原来是缺少库,尝试yum install uuid-dev,找不到这个库

bing了一下,原来uuid-dev在不同的平台上名字不同,我用的centos上名字为libuuid-devel

执行yum install libuuid-devel  ...

下载并安装成功!

3. 在eclipse中编译storm-starter示例代码出错:

 import backtype.storm.task.IMetricsContext  找不到.

自己判断是引用的storm.jar版本问题,把我引用的0.8.1版本的jar包换成0.7的,结果错误更多,一查发现搞反了,应该用更新的jar包,于是下载0.8.2版本的编译,错误消除!

4. drpc示例代码调用错误

像服务器上部署了storm-starter的BasicDRPCTopology,

使用客户端代码尝试连接drpc server发送参数并获取结果

DRPCClient client= new DRPCClient("192.168.72.203",3772);

String result = client.execute("basicdprc","goodbye");
System.out.println(result);

192.168.72.203是我在服务端配置的drpc服务器的ip

代码执行到execute以后停住,很长时间都无法执行,到服务端查看drpc.log日志,有如下错误:

TNonblockingServer [WARN] Got an IOException in internalRead!
java.io.IOException: Connection reset by peer 
        at sun.nio.ch.FileDispatcherImpl.read0(Native Method) 
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
        at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
        at sun.nio.ch.IOUtil.read(IOUtil.java:191)
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
        at org.apache.thrift7.transport.TNonblockingSocket.read(TNonblockingSocket.java:141)
        at org.apache.thrift7.server.TNonblockingServer$FrameBuffer.internalRead(TNonblockingServer.java:669)
        at org.apache.thrift7.server.TNonblockingServer$FrameBuffer.read(TNonblockingServer.java:458)
        at org.apache.thrift7.server.TNonblockingServer$SelectThread.handleRead(TNonblockingServer.java:359)
        at org.apache.thrift7.server.TNonblockingServer$SelectThread.select(TNonblockingServer.java:304)
        at org.apache.thrift7.server.TNonblockingServer$SelectThread.run(TNonblockingServer.java:243)

折腾了一天多,最终解决了这个诡异的问题,错误原因出奇的简单:

BasicDRPCTopology代码中声明new LinearDRPCTopologyBuilder("exclamation");

指定了topology的name为exclamation

而我在手动使用./storm jar...参数提交的时候指定的名字是basicdprc,提交topology的时候是正常的,在storm

ui管理界面里看到此topology的名字也是basicdprc,但是DRPCClient调用execute的时候却必须使用代码中指定的名称...  改成  client.execute("exclamation","goodbye");就可以顺利调用了。

神那,怎么会这样!!!既然允许参数指定提交的topology名称,那drpcclient也应该允许使用此名称啊!!这种限制简直要让人撞墙!!

5. storm.yaml配置文件格式错误

yaml配置文件的格式要求比较变态:

配置键值对 的时候,冒号后面需要有一个空格,不能直接跟值,否则解析的时候会报错:

例如  storm.zookeeper.port: 2183   2183和冒号间就需要有一空格

另外行的开头前面也需要有空格...

twitter storm学习 - 安装部署问题汇总的更多相关文章

  1. openstack pike 集群高可用 安装 部署 目录汇总

    # openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ...

  2. Twitter Storm学习笔记

    官方英文文档:http://storm.apache.org/documentation/Documentation.html 本文是学习笔记,转载整合加翻译,主要是为了便于学习. 一.基本概念 参考 ...

  3. Hadoop学习---安装部署

    hadoop框架 Hadoop使用主/从(Master/Slave)架构,主要角色有NameNode,DataNode,secondary NameNode,JobTracker,TaskTracke ...

  4. MongoDB学习 - 安装部署

    1. docker 启动 拉取镜像 docker pull mongo:latest 指定目录启动  docker run -d -p 27017:27017 --name mongo \-v /ho ...

  5. Twitter Storm:单机环境的安装与配置

    Twitter Storm:单机环境的安装与配置 好久没写博客了,这一段时间一直被导师push着做毕业设计.由于目前的方向偏向于图像识别检索,毕设打算做一个基于分布式计算平台的图像检索系统,查阅相关资 ...

  6. Twitter Storm安装配置(Ubuntu系统)单机版

    要使用storm首先要安装以下工具:JDK.Python.zookeeper.zeromq.jzmq.storm (注:各个模块都是独立的,如果安装失败或者卡顿可以单独百度某个模块的安装,都是可以的. ...

  7. Storm集群安装部署步骤【详细版】

    作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息 网址: http://www.cnblogs.com/panfeng412/archive/2012/11/30/how ...

  8. Storm入门教程 第三章Storm集群安装部署步骤、storm开发环境

    一. Storm集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node).其分别对应的角色如下: 主控节点(Master Node)上运行一个被称为N ...

  9. Storm集群安装部署步骤

    本文以Twitter Storm官方Wiki为基础,详细描述如何快速搭建一个Storm集群,其中,项目实践中遇到的问题及经验总结,在相应章节以"注意事项"的形式给出. 1. Sto ...

随机推荐

  1. 新编html网页设计从入门到精通 (龙马工作室) pdf扫描版​

    新编html网页设计从入门到精通共分为21章,全面系统地讲解了html的发展历史及4.0版的新特性.基本概念.设计原则.文件结构.文件属性标记.用格式标记进行页面排版.使用图像装饰页面.超链接的使用. ...

  2. php统计目录大小

    function dirSize($directroy) { $dir_size=0; $dir_handle = @opendir($directroy); if($dir_handle) { wh ...

  3. Kylin存储和查询的分片问题

    本文来自网易云社区 作者:汪胜 相关概念介绍 为了了解Kylin存储和查询的分片问题,需要先介绍两个重要概念:segment和cuboid.相信大数据行业的相关同学都不陌生.Kylin每次提交一个新的 ...

  4. 结对作业-WordCount进阶版

    1.在文章开头给出博客作业要求地址. 博客园地址:https://www.cnblogs.com/happyzm/p/9559372.html 2.给出结对小伙伴的学号.博客地址,结对项目的码云地址. ...

  5. [转]解读Unity中的CG编写Shader系列3——表面剔除与剪裁模式

    在上一个例子中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上.这篇文章将要在此基础上研究片段的擦除(discarding fragments)和前面剪裁.后面 ...

  6. C语言编程基础

    主流C语言编译器介绍 关于GNU规范的语法扩展 用C语言构建一个可执行程序的流程 宏定义(无参宏定义和带参宏定义),C语言宏定义详解 条件编译,C语言条件编译详解 原码.反码.补码及位操作符,C语言位 ...

  7. Cocos Creator 入门

    Cocos Createor 资源 略 场景 节点树 节点与组件 坐标系 脚本 组件声明,生命周期回调 var Component = cc.Class({ // 用于序列化,可省略 name: 's ...

  8. 老司机图文教程教你如何免费下载腾讯视频的视频mp4(直接下载到,不用qlv格式转mp4格式,亲测)

    关于如何下载到腾讯视频的mp4这个问题,大家想必经过多翻搜索,都未必找到满意的答案吧. 下载微信公众号文章中引用的腾讯视频的方法也是一样适用本方法. 因为用腾讯视电脑客户端和手机APP下载到的都是QL ...

  9. 【大数据系统架构师】0.3 MySQL数据库

    1. MySQL的基本操作 2. SQL语句 3. 高级查询 1)聚合函数.分组查询 2)联合查询.连接查询 3)子查询 4. 高级应用 1)视图与索引 2)数据可视化管理 5. 使用JDBC操作数据 ...

  10. HDU6330-2018ACM暑假多校联合训练Problem L. Visual Cube

    就是画个图啦 分三个平面去画orz #include <iostream> #include <cmath> #include <cstring> #include ...