快捷搜索:  汽车  科技

storm为什么能实现流计算(Storm精华问答如何理解spout)

storm为什么能实现流计算(Storm精华问答如何理解spout)用zookeeper的zkCli.sh清理一下,直接重装了zookeeper。但是据说在storm0.6.1中已经解决了该bug。A:因为没有先killtopology,所以在启动nimbus时,zookeeper中依然保留了上次运行着的topology的信息,解决办法如下:2) 删除了配置中"storm.local.dir"的文件夹内的内容3) 启动storm nimbus系统报错,如何解决?

戳蓝字“CSDN云计算”关注我们哦!

storm为什么能实现流计算(Storm精华问答如何理解spout)(1)

Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统等, 大数据实时处理解决方案的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。

1

Q:在使用了storm一段时间后,需要重新部署storm的集群,主要是想将storm部署在其它机器上。做了以下错误操作:

1) 没有kill 正在运行的topology,kill nimbus和supervisor的storm进程

2) 删除了配置中"storm.local.dir"的文件夹内的内容

3) 启动storm nimbus

系统报错,如何解决?

A:因为没有先killtopology,所以在启动nimbus时,zookeeper中依然保留了上次运行着的topology的信息,解决办法如下:

用zookeeper的zkCli.sh清理一下,直接重装了zookeeper。但是据说在storm0.6.1中已经解决了该bug。

2

Q:在配置文件storm.yaml中,有:

# to nimbus
nimbus.childopts: "-Xmx1024m"
# to supervisor
supervisor.childopts: "-Xmx1024m"
# to worker
worker.childopts: "-Xmx768m"

那么,如何配置JVM参数呢?

A:如果worker在运行时,需要用指定的JVM参数,那么可以像这样配置:

worker.childopts: "-Dworker=worker -Xmx768m -Xdebug –Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket address=8111 suspend=y server=y"

3

Q:如何理解spout/bolt的生命周期?

A:一般来说spout/bolt的生命周期如下:

1 、在提交了一个topology之后(在nimbus所在的机器) 创建spout/bolt实例(spout/bolt在storm中统称为component)并进行序列化;

2、将序列化的component发送给所有的任务所在的机器;

3、在每一个任务上反序列化component;

4、在开始执行任务之前 先执行component的初始化方法(bolt是prepare spout是open);

因此component的初始化操作应该在prepare/open方法中进行 而不是在实例化component的时候进行。

4

Q:如何将Storm与Spring框架集成?

A:在进行Storm与Spring集成时,需要对Storm的spout和bolt的生命周期按照上个问题那样理解清楚。这样的话就会知道,component的初始化操作应该在prepare/open方法中进行 而不是在实例化component的时候进行.按照这种说法进行改造,结构该问题消失了。但接下来可能会有新的问题:

Caused by: org.xml.sax.SAXParseException: Content is not allowedin prolog.

这个异常是由于*.xml文件编码的问题。原因是在从其他项目里或者编辑工具编辑时,在文件编码中加入了BOM头的原因,于是用notePad 打开xml文件选择去掉BOM头信息,重新进行保存即可。

5

Q“java.lang.NoClassDefFoundError: clojure.core.protocols$”故障如何解决?

A:故障的原因是因为jdk版本不匹配,安装虚拟机时系统会自带一个jdk.1.5.0。解决办法是检查JDK版本,卸载系统自带的JDK,使用自己安装的JDK版本。

#rpm –qa | grep java
# rpm –e –nodeps java-*

配置环境变量

vi /etc/profile

重新执行一遍即可。

storm为什么能实现流计算(Storm精华问答如何理解spout)(2)

小伙伴们冲鸭,后台留言区等着你!

关于Storm,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~

福利

1、扫描添加小编微信,备注“姓名 公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

推荐阅读:

  • IEEE 回应禁止华为系审稿人;WiFi联盟、蓝牙联盟已恢复华为成员资格;中国计算机学会:暂时中止与IEEE通信学会合作……

  • ARM 发布新一代 CPU 和 GPU,实现 20% 性能提升!

  • 前端开发 20 年变迁史

  • 北漂杭漂的程序员,是如何买到第一套房子?

  • “爱装X”开源组织:“教科书级”AI知识树究竟长什么样?

  • 500行Python代码打造刷脸考勤系统

  • 权游播完了 你在骂烂尾 有人却悄悄解锁了新操作……

storm为什么能实现流计算(Storm精华问答如何理解spout)(3)

真香,朕在看了!

猜您喜欢: