49彩票集团首页-49彩票集团官网|官网首页

49彩票集团让大家拥有最好的账号使用功能,49彩票集团是为大家带来更加方便的使用途径,是因为在49彩票集团娱乐的玩家们越来越多,发展成为最受欢迎的网上体育娱乐公司。

1.2 关于zookeeper集群安装问题...,1.1关于storm集群

2019-11-01 作者:计算机网络   |   浏览(59)

故而component的开始化操作应该在prepare/open方法中开展,并非在实例化component的时候实行.

2.7在提交topology的时候一时大概现身如下至极: 

Exception in thread "main"java.lang.IllegalArgumentException: Nimbus host is notset 
       atbacktype.storm.utils.NimbusClient.<init>(NimbusClient.java:30) 
       atbacktype.storm.utils.NimbusClient.getConfiguredClient(NimbusClient.java:17) 
       atbacktype.storm.StormSubmitter.submitJar(StormSubmitter.java:78) 
       atbacktype.storm.StormSubmitter.submitJar(StormSubmitter.java:71) 
       atbacktype.storm.StormSubmitter.submitTopology(StormSubmitter.java:50) 
       atcom.taobao.kaleidoscope.storm.IcdbTopology.main(IcdbTopology.java:59)

 

然而运行nimbus是未曾难点的, 那些第风度翩翩因为conf_dir路线设置不科学,在bin/storm脚本中须要增添那样一句: 

Python代码  

1. CONF_DIR = STORM_DIR + "/conf"  

 

 

难题锦集

11关于spout/bolt的生命周期

 

雷同的话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的时候进行。

 

加scope能够使打jar包时,不分包storm。如若含有了storm,那么提交到storm集群,会运营出错。官方必要打jar包时,要删减storm的依赖。

1.6关于task与executor的涉及难题

在storm的求学进度中,有这个人问到task与executor的涉及难点。

在大家设置配置storm的时候,不知大家是或不是首要到了八个主题素材,正是我们在配置的时候会加多少个worker的端口(supervisor.slots.ports:),比如众多文书档案中提到的6700/6701之类肖似的事物。对的,那正是大家定义了该supervisor最多的worker数,worker中实践一个bolt也许spout线程,大家就称之为task,而executor是大要上的线程概念,咱们得以将其称为执行线程;而task更加多是逻辑概念上的,不常候bolt与spout的task会共用叁个executor,极度是在系统负荷相比高的时候。

在pom中加入:

1.6关于task与executor的涉嫌难点

在storm的读书进程中,有数不完人问到task与executor的涉嫌难题。

在大家设置配备storm的时候,不知我们是或不是主要到了一个主题素材,就是大家在布局的时候会加多少个worker的端口(supervisor.slots.ports:),举例众多文书档案中涉嫌的6700/6701等等近似的东西。没有错,那正是我们定义了该supervisor最多的worker数,worker中进行一个bolt或许spout线程,大家就称之为task,而executor是大意上的线程概念,我们能够将其誉为实行线程;而task越来越多是逻辑概念上的,有时候bolt与spout的task会共用一个executor,特别是在系统负荷相比较高的时候。

现身原因:windows上写的本子,直接拷贝到Linux系统上运转由于格式不相称导致。

1.9有关IRichBolt与IBasicBolt接口的区分

第风姿罗曼蒂克从类的构成上开展解析能够见见,IBasicBolt接口独有execute方法和declareOutputFields方法,而IRichBolt接口三巳了以上多少个主意还大概有prepare方法和cleanup及map方法。并且内部execute方法是有个别不相同样的,其参数列表不一样。

总体来讲Rich方法相比较完备,大家可以利用prepare方法实行该Bolt类的起初化专门的学业,比方咱们链接数据库时,供给开展一回数据库连接操作,大家就能够把该操作放入prepare中,只必要推行一回就能够了。而cleanup方法能在这里类调用甘休时开展扫尾职业,往往在管理数据的时候使用,比方在写hdfs(Hadoop的文件系统)数据的时候,在终止时索要进行数量clear,则须求开展多少截至。当然,依据官方网站及实际的考察,该办法往往是实行破产的。

 

                          <mainClass>com.path.to.main.Class</mainClass>

1关于Storm集群

 

消除措施:检查并修改storm 相关机器的主机名,域名,hosts 文件。重启互连网服务:service networkrestart。重启storm,再一次调用drpc 服务,成功。Hosts 文件中必需带有如下

17 关于shell脚本编码格式难点... 13

(2)使用第三方集中积攒来过滤,例如利用MySQL、MemCached 恐怕Redis 依据逻辑主键来去重。

13关于java.lang.NoClassDefFoundError: clojure.core.protocols$

 

缘由:JDK版本不相配,安装设想机时系统自带一个jdk.1.5.0。

消除办法:检查jdk版本,卸载系统自带的JDK,使用本人安装的JDK版本。

        # rpm –qa | grep java

        #  rpm –e –nodeps java-*

陈设处境变量,vi /etc/profile

双重执行一遍试试,貌似难点解决了。

 

6关闭storm相关进度

9.1 Stormnimbus运行战败

在动用了storm生机勃勃段时间后,要求重新计划storm的集群,主若是想将storm安顿在其他机器上。做了以下错误操作:

        1) 未有kill 正在运营的topology,kill nimbus和supervisor的storm进度

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

        3) 启动storm nimbus

报错:
backtype.storm.daemon.nimbus 
$fn__2692$exec_fn__945__auto____2693$this__2731@62135133 
java.io.FileNotFoundException: File'/opt/apps-install/storm/ 
storm_local/nimbus/stormdist/appFailed-6-1325065153/stormconf.ser' 
does not exist 
       at 
org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:137) 
       at 
org.apache.commons.io.FileUtils.readFileToByteArray(FileUtils.java: 
1135) 
       atbacktype.storm.daemon.nimbus 
$read_storm_conf.invoke(nimbus.clj:128) 
       atbacktype.storm.daemon.nimbus 
$compute_new_task__GT_node_PLUS_port.invoke(nimbus.clj:244) 
       atbacktype.storm.daemon.nimbus 
$mk_assignments.invoke(nimbus.clj:288) 
       atbacktype.storm.daemon.nimbus 
$fn__2692$exec_fn__945__auto____2693$this__2731.invoke(nimbus.clj:460) 
       atbacktype.storm.event$event_manager 
$fn__2068$fn__2069.invoke(event.clj:25) 
       atbacktype.storm.event$event_manager 
$fn__2068.invoke(event.clj:22) 
       atclojure.lang.AFn.run(AFn.java:24) 
       atjava.lang.Thread.run(Thread.java:662) 
2011-12-29 16:15:02 util [INFO] Halting process: ("Errorwhen 
processing an event") 
报错原因:因为还未先killtopology,所以在运维nimbus时,zookeeper中照旧保存了上次运作着的topology的音讯。

消除办法:用zookeeper的zkCli.sh清理一下,小编一贯重装了zookeeper。但是据书上说在storm0.6.1中消弭了该bug。而自个儿用的是storm 0.6.0。

 

解决措施:在conf/storm.yaml 文件中追加drpc 服务器配置,运维配置文件中

11 关于spout/bolt的性命周期... 11

3)      若要改善log的等第,是debug依旧info等,在storm安装路线/log4j下有个布局文件,按须求改正就可以。

2.5 bolt 在管理信息时,worker 的日记中冒出Failing message. 5

 首先声诺优能(Nutrilon)(Nutrilon)(Beingmate)下,这么些难题是马上有思索到是否能够将storm与spring集成时,在英特网看见的一点介绍,只是为着未来做参照他事他说加以考查。

2.2发表topology到长途集群时,现身AlreadyAliveException(msg: xxx is alreadyactive)分外

缘由是提供的topology 与已经在运转的topology 重名。

解决方法:宣布时换二个拓扑名称就能够。

很五人在刚刚学习Storm 的时候都会有其一难题:storm管理后的结果保存在哪个地方? 内部存款和储蓄器中?照旧别的地点?

6.1 关闭nimbus相关进度: 8

案由是未正确配置drpc 服务器地址。

8.2用到maven插件,在打jar包时,包括正视。

在pom中加入:

<plugin>

      <artifactId>maven-assembly-plugin</artifactId>

      <configuration>

             <descriptorRefs>

                    <descriptorRef>jar-with-dependencies</descriptorRef>

             </descriptorRefs>

             <archive>

                    <manifest>

                           <mainClass>com.path.to.main.Class</mainClass>

                    </manifest>

             </archive>

      </configuration>

</plugin>

打jar包时使用命令:mvn assembly:assembly

布局情状变量,vi /etc/profile

目录

秒)更长。比如:

4.4  在配备storm节点的时候须要设置jzmq和zeromq, 在设置那多少个依据包之后,须要奉行sudo -u root ldconfig. 不然会现身十分: 7

        2) 删除了配备中"storm.local.dir"的文件夹内的原委

4.3 安装jzmq 时遇到cannot access org.zeromq.ZMQ 的make 错误... 7

cd src

3.1宣布drpc 类型的topologies 到长途集群时,现身空指针格外,连接drpc服务器失利

案由是未准确配置drpc 服务器地址。

缓慢解决方式:在conf/storm.yaml 文件中扩展drpc 服务器配置,运转配置文件中

点名的持有drpc 服务。内容如下:

drpc.servers:

- "drpc 服务器ip"

Storm在Ubuntu条件下的单机安排 http://www.linuxidc.com/Linux/2016-03/129060.htm

文档表明

该文书档案包含了storm实战中日常遇到一些难题,及对应解决方案。那一个文书档案是群里二个仇人在读书storm,并实战storm中相遇的局地标题,及和群里其余朋友合伙沟通给出的照看解决方案,并由他收拾好,委托笔者揭橥出来(也算是沟通者之生机勃勃),供大家参谋,希望能对大家有着帮忙。

多谢 某某(哈哈 鉴于有个别原因,不便表露名字~~~~!)…

 

5.            <excludes> 

1.7 关于Storm UI呈现内容的标题... 3

缘由是找不到jzmq,默许情形下在施行install_zmq.sh 时,那些.so 文件

4关于jzmq安装

 

内容:

1.5关于Storm如什么地点理重复的tuple难题

有人问到Storm 是怎么管理重复的tuple?

因为Storm 要保管tuple 的笃定管理,当tuple 管理失败大概逾期的时候,spout 会fail一视同仁新发送该tuple,那么就能有tuple 重复总括的难点。那么些难题是很难解决的,storm也从没提供体制扶持你清除。不过也许有部分一蹴而就的战术:

(1)不管理,那也终于种政策。因为实时总计常常并不必要极高的精确度,后

续的批处理总结会校勘实时计算的固有误差。

(2)使用第三方聚集积攒来过滤,比如动用MySQL、MemCached 或者Redis 依据逻辑主键来去重。

(3)使用bloom filter 做过滤,简单神速。

2.7在交付topology的时候不时也许现身如下卓殊:

1.2关于zookeeper集群安装难点

记得刚刚接触storm,在安装zookeeper集群的时候有那样的思量:为啥不得以把zookeeper只设置在nimbus上,然后让别的的supervisor来它这里读取职分?假如在每台机械上都安装zookeeper,那nimbus分配职责的时候,是每台机械上的zookeeper都接到如出一辙份的职分,依旧只是将分配给各类supervisor节点的那某个写到同意气风发节点上的zookeeper中?

 

有心上人解答说:ZK也是以集群的艺术职业的,ZK集群内部有他自身的后生可畏套相互通讯机制,而storm就是要依赖其报导机制,举例任务下发等,往往在实施叁个任务的时候,storm会把任务及连锁实行的代码通过系列化之后发送到各种ZK节点供supervisor去下载,然后才会分别施行自身有个其余代码恐怕任务。说的平昔一点就是每一个ZK节点收到的职务是同等的,而supervisor只要求下载属于自个儿的天职就可以。

备注:那是在英特网见到的,没有通超过实际际测量检验,有意思味的意中人能够自身测量试验一下。

8.2使用maven插件,在打jar包时,包含正视。

在pom中加入:

<plugin>

      <artifactId>maven-assembly-plugin</artifactId>

      <configuration>

             <descriptorRefs>

                    <descriptorRef>jar-with-dependencies</descriptorRef>

             </descriptorRefs>

             <archive>

                    <manifest>

                           <mainClass>com.path.to.main.Class</mainClass>

                    </manifest>

             </archive>

      </configuration>

</plugin>

打jar包时使用命令:mvn assembly:assembly

"/opt/storm/jzmq/lib:/opt/storm/zeromq/lib:/usr/local/lib:/opt/local/

14关于storm连接Mysql

 

连续几日远程mysql是报如下错误:

message from server:"Host FILTER" is not allowed to connect tothis MySQL server

解决方案:

很恐怕是你未曾给其余IP访谈你数据库的权杖,你能够尝试:

在MySql数据库的主机上,在mysql命令行中输入以下命令:

grant all on *.* to root@'%' identified by "111111" ;

那般,给其余IP都赋予了访谈的权力,

任何IP都能以,用户名:root ,密码:111111

来举香港行政局域网的访问!

(命令中*.*是通配任何IP,你也足以内定IP)

 

12有关storm与spring框架集成难题

4.1 storm 运行时报no jzmq in java.library.path 错误... 6

4.3安装jzmq 时遇到cannot access org.zeromq.ZMQ 的make 错误

4.3安装jzmq 时遇到cannot access org.zeromq.ZMQ 的make 错误

实际的make 错误音信:

error: cannot access org.zeromq.ZMQ class file fororg.zeromq.ZMQ not found

javadoc: error - Class org.zeromq.ZMQ not found.

消除措施:手动编写翻译,然后再一次make 就可以通过。

cd src

javac -d . org/zeromq/*.java

cd ..

解决格局:使用slf4j 代替log4j。

6.2干掉supervisor上的兼具storm进度: 

kill `ps aux | fgrep storm | fgrep -v 'fgrep' | awk '{print$2}'` 

49彩票集团,备考:那是在互连网来看的,未有经超过实际际测量试验,有意思味的意中人能够协调测量试验一下。

 

# to nimbus
nimbus.childopts: "-Xmx1024m"

1.6 关于task与executor的涉及难题... 3

由来是未找到zmq 动态链接库。

5 关于Storm的布置难题... 7

[foo.com/blog/1, {"port":3772,"id":"5","host":"10.0.0.24"}]

1.3关于Storm中tuple 的可靠管理难题

Storm 为了保证tuple 的可相信管理,供给保存tuple 音信,那样会不会产生内部存款和储蓄器泄漏?

关于那么些标题,其实互连网是有资料举行了详实的演说的。这里只是差不离将刹那间,假设还不精晓,能够上网搜搜“storm可相信管理”。Storm为了保障tuple 的保障管理,acker 会保存该节点创造的tuple id的xor (异或)值,那些值称为ackvalue,那么每ack 叁次,就将tuple id 和ack value做异或(xor)。当有着发生的tuple 都被ack的时候,ack value 必定为0。这是个十分轻松的政策,对于每二个tuple 也只要占用约贰十一个字节的内部存款和储蓄器。对于100万tuple,也才20M 左右,所以日常景况下是不用思量内部存款和储蓄器泄漏难点的。

1.7有关Storm UI展现内容的标题

12关于storm与spring框架集成难题

 

 首先声爱他美(Aptamil)(Aptamil)下,这些难题是即时有思量到是还是不是能够将storm与spring集成时,在互连网来看的某个介绍,只是为了以后做参谋。

在展开storm与spring集成时,本来想着二次就能够学有所成,抱着一点都不小的希望然则运转时依旧报了个java.io.NotSerializableException的足够。该非常必要被依赖注入的jar包完成种类化接口,但那个jar包都以人家付出的您不可能贰个二个都改掉源码技能用到项目里。

再互连网找一下还真有人蒙受相似的标题,具体原因是对storm的spout和bolt的生命周期掌握的非常不够浓重。

貌似的话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的时候举办.

规行矩步这种说法开展改动,结构该难题未有了。但接下去又有了新的难点:

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

本条可怜网络检索之后开采原本是由于*.xml文件编码的难点。原因是在从别的品类里只怕编辑工具编辑时,在文书编码中投入了BOM头的来头,于是用notePad++展开xml文件选择去掉BOM头音信,重新举行封存就可以。

 

                  </dependency>

9关于nimbus的开发银行难题

 

1.8关于Storm的ack和fail问题

2关于Topology发布

 

2011-12-02 09:59:16 task [INFO] Failing message

报错:
backtype.storm.daemon.nimbus
fn__2692fn__2692exec_fn__945__auto____2693this__2731@62135133  java.io.FileNotFoundException: File'/opt/apps-install/storm/  storm_local/nimbus/stormdist/appFailed-6-1325065153/stormconf.ser'  does not exist        at  org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:137)        at  org.apache.commons.io.FileUtils.readFileToByteArray(FileUtils.java:  1135)        atbacktype.storm.daemon.nimbusthis__2731@62135133  java.io.FileNotFoundException: File'/opt/apps-install/storm/  storm_local/nimbus/stormdist/appFailed-6-1325065153/stormconf.ser'  does not exist        at  org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:137)        at  org.apache.commons.io.FileUtils.readFileToByteArray(FileUtils.java:  1135)        atbacktype.storm.daemon.nimbusread_storm_conf.invoke(nimbus.clj:128)
      atbacktype.storm.daemon.nimbus
compute_new_task__GT_node_PLUS_port.invoke(nimbus.clj:244)        atbacktype.storm.daemon.nimbuscompute_new_task__GT_node_PLUS_port.invoke(nimbus.clj:244)        atbacktype.storm.daemon.nimbusmk_assignments.invoke(nimbus.clj:288)
      atbacktype.storm.daemon.nimbus
fn__2692fn__2692exec_fn__945__auto____2693this__2731.invoke(nimbus.clj:460)        atbacktype.storm.eventthis__2731.invoke(nimbus.clj:460)        atbacktype.storm.eventevent_manager
fn__2068fn__2068fn__2069.invoke(event.clj:25)
      atbacktype.storm.eventevent m anager eventmanagerfn__2068.invoke(event.clj:22)
      atclojure.lang.AFn.run(AFn.java:24)
      atjava.lang.Thread.run(Thread.java:662)
2011-12-29 16:15:02 util [INFO] Halting process: ("Errorwhen
processing an event")
报错原因:因为还未有先killtopology,所以在起步nimbus时,zookeeper中依旧保留了上次运作着的topology的信息。

5关于Storm的布署难点

 

1.       yaml跟我们日常用的性质配置文件有所区别, 它的须求更严谨一些,由此在往conf/storm.yaml中加多配置的时候必需小心,例如必得注意起首地方和冒号前边的空格, 不然布置不会卓有功用。

2.       怎么样检查铺排是或不是见效?

能够运用命令: storm localconfvalue 配置关键字

 不过那几个命令只可以在nimbus上生效, 在supervisor看见的仍旧暗中认可值.不明了干什么 。

 

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

2.1公布topologies 到长途集群时,现身Nimbus host is not set 万分

案由是Nimbus 未有被准确运维起来,大概是storm.yaml 文件并未有配置,也许配备至极。

化解办法:展开storm.yaml 文件精确配置:nimbus.host: "xxx.xxx.xxx.xxx",重启nimbus后台程序就可以。

在扩充storm与spring集成时,本来想着一遍就能够打响,抱着超级大的企盼但是运转时以至报了个java.io.NotSerializableException的特别。该非常必要被重视注入的jar包完结类别化接口,但那个jar包都以旁人付出的你无法二个多少个都改掉源码本领用到花色里。

1.9 关于IRichBolt与IBasicBolt接口的分化... 4

cd ..

3.1宣布drpc 类型的topologies 到长途集群时,现身空指针卓殊,连接drpc服务器战败

原因是未正确配置drpc 服务器地址。

缓和格局:在conf/storm.yaml 文件中追加drpc 服务器配置,运行配置文件中

点名的兼具drpc 服务。内容如下:

drpc.servers:

- "drpc 服务器ip"

3.2顾客端调用drpc 服务时,worker 的日记中冒出Failing message,而bolt都未接到数量

4.2安装jzmq 时遇到No rule to make target ‘classdist_noinst.stamp’的make错误

实际的make 错误音讯:

make[1]: *** No rule to make target`classdist_noinst.stamp',needed by `org/zeromq/ZMQ.class'.Stop.

清除方法:手动创立classdist_noinst.stamp 空文件。

touch src/classdist_noinst.stamp

日常的话spout/bolt的生命周期如下:

16 关于topology的spout与bolt. 13

这么,给其余IP都予以了拜见的权能,

1关于Storm集群

 

8.        </dependencySet> 

2.2宣布topology到长途集群时,现身AlreadyAliveException(msg: xxx is alreadyactive)至极

原因是提供的topology 与已经在运维的topology 重名。

缓慢解决方式:公布时换贰个拓扑名称就能够。

由来:JDK版本不包容,安装设想机时系统自带二个jdk.1.5.0。

12  关于storm与spring框架集成难题... 11

1      在交付了八个topology之后(在nimbus所在的机器),创设spout/bolt实例(spout/bolt在storm中执会考查总括局称为component)并扩充类别化;

1.3 关于Storm中tuple 的笃定管理难题... 2

据此component的开头化操作应该在prepare/open方法中实行,并非在实例化component的时候举办。

4.2 安装jzmq 时遇到No rule to make target ‘classdist_noinst.stamp’的make错误... 7

官方解释说: Storm是不担当保存总计结果的,这是应用程序里供给担任的政工,假如数额相当的小,你可以归纳地保留在内部存款和储蓄器里,也足以每便都更新数据库,也能够利用NoSQL存款和储蓄。storm并不曾像s4 那样提供一个PersistAPI,依照时间大概体积来做存款和储蓄输出。那部分业务完全交由客商。数据存款和储蓄之后的展现,也是你需求团结管理的,storm UI只提供对topology 的监督和总计。

2.1 发表topologies 到长途集群时,现身Nimbus host is not set 十分... 4

2.      咋样检查安排是不是见到效果?

6 关闭storm相关进度... 8

  1. <dependencySets> 

16 关于topology的spout与bolt

 

事先有问到,一个topology中可不得以有八个spout?这些标题日常很天真啊,呵呵。关于那些主题素材,笔者是这么思量的:实际接受中,如若大家每一条利用都创设叁个topology的话,未免也太夸大了。假诺是同贰个采纳,同叁个数量来源,不过你想分两种办法对这一个数目做拍卖的话,那个时候就应该是建三个spout了,让那些spout并行去读数据,然后交由订阅那个spout的bolt去管理就行,没需求生机勃勃种管理方式建二个topology。

 

touch src/classdist_noinst.stamp

12有关storm与spring框架集成难题

 

 首先声明一下,这一个难点是及时有牵记到是否足以将storm与spring集成时,在英特网看见的少数介绍,只是为着以往做参照他事他说加以考察。

在进行storm与spring集成时,本来想着二次就能够打响,抱着非常大的梦想可是运转时竟然报了个java.io.NotSerializableException的百般。该极其供给被注重注入的jar包完结系列化接口,但那几个jar包都是人家付出的你无法三个八个都改掉源码手艺用到项目里。

再网络找一下还真有人遇到近似的标题,具体原因是对storm的spout和bolt的生命周期理解的远远不够浓郁。

日常的话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的时候举办.

根据这种说法举行改变,结构该难点未有了。但接下去又有了新的标题:

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

以此可怜英特网寻觅之后开掘原来是出于*.xml文件编码的难点。原因是在从其余项目里或许编辑工具编辑时,在文书编码中参加了BOM头的原故,于是用notePad++展开xml文件接收去掉BOM头新闻,重新实行封存就可以。

 

点名的具有drpc 服务。内容如下:

13 关于java.lang.NoClassDefFoundError: clojure.core.protocols$.12

2.6在打包toplogy工程的时候, 如果选用assembly格局,对于相关的依据的安插平时要如此:

4关于jzmq安装

 

grant all on *.* to root@'%' identified by "111111" ;

2.6 在打包toplogy工程的时候, 假诺采纳assembly情势, 对于有关的依靠的配置日常要这么: 5

1.5关于Storm如什么地方理重复的tuple难题

13关于java.lang.NoClassDefFoundError: clojure.core.protocols$

 

缘由:JDK版本不协作,安装设想机时系统自带二个jdk.1.5.0。

解决办法:检查jdk版本,卸载系统自带的JDK,使用自个儿设置的JDK版本。

        # rpm –qa | grep java

        #  rpm –e –nodeps java-*

安插情状变量,vi /etc/profile

再度试行一遍试试,貌似难点消除了。

 

Python代码 

 

有意中人解答说:ZK也是以集群的章程行事的,ZK集群内部有她和煦的风姿洒脱套互相通讯机制,而storm正是要信任其电视发表机制,比方职责下发等,往往在进行三个任务的时候,storm会把职分及有关实施的代码通过连串化之后发送到种种ZK节点供supervisor去下载,然后才会独家推行自个儿有个别的代码或许职分。说的第一手一点正是各样ZK节点收到的职务是均等的,而supervisor只须求下载属于本身的职分就能够。

6.2 干掉supervisor上的富有storm进程: 8

8.1率先maven的pom文件中的storm注重,要么加excludestorm的连带语句(github有表明),要么加<scope>,如下:

15关于metaq运行的面世服务推却连接的主题素材

 

化解办法:在metaq安装目录下,删掉在此以前的日记文件,测量检验互联网是还是不是正规连接。将事先的劳务的metaq进度kill掉,然后重启。

 

9.1 Stormnimbus运转失利

2.6在打包toplogy工程的时候, 若是选拔assembly格局,对于有关的依靠的配置日常要这么: 

Xml代码  

1. <dependencySets>  

2.         <dependencySet>  

3.             <outputDirectory>/</outputDirectory>  

4.             <unpack>true</unpack>  

5.             <excludes>  

6.                 <exclude>storm:storm</exclude>  

7.             </excludes>  

8.         </dependencySet>  

9.     </dependencySets>  

 

wiki上说能够用<scope>compile</scope>。然后将storm重视设置为runtime,貌似不行。 其它便是享有的依附包将总体解压,然后将有所注重的安插和class文件生成一个文书。那个是经过<unpack>true</unpack>参数来支配的。

file: No such file or directory 异常。

7关于Topology宣布之后的log

 

1)       用storm jar...将项目交付给storm集群后,想查看本项指标log音讯,要到supervisor机器的:storm安装路线/logs/worker-number.log(在那之中的number视实情而定)中查看。

2)       若是是用daemontools运转的storm,daemontools监察和控制的目录是/service/storm,那么到/service/storm/logs中查阅worker-number.log日志。

3)       若要转移log的等第,是debug依旧info等,在storm安装路线/log4j下有个布局文件,按要求改进就可以。

4)       Storm的debug情势下,它本人的log非常宏大,所以自个儿以为自个儿的代码中约莫根本的音讯,用info比较好,那样将storm的log等级调解为info比较方便查看。

 

指鹿为马日志如下所示:

3.2顾客端调用drpc 服务时,worker 的日记中冒出Failing message,而bolt都未接到数额

错误日志如下所示:

2011-12-02 09:59:16 task [INFO] Failing message

backtype.storm.drpc.DRPCSpout$DRPCMessageId@3770bdf7: source:1:27,

stream: 1, id: {-5919451531315711689=-5919451531315711689},

[foo.com/blog/1, {"port":3772,"id":"5","host":"10.0.0.24"}]

 

原因是主机名,域名,hosts 文件配置不正确会滋生那类错误。

不留余地办法:检查并订正storm 相关机器的主机名,域名,hosts 文件。重启互联网服务:service networkrestart。重启storm,再一次调用drpc 服务,成功。Hosts 文件中必得含宛如下

内容:

[nimbus 主机ip] [nimbus 主机名] [nimbus 主机别名]

[supervisor 主机ip] [supervisor 主机名] [supervisor 主机小名]

[zookeeper 主机ip] [zookeeper 主机名] [zookeeper 主机外号]

 

4.在最早推行职务早先, 先推行component的起初化方法(bolt是prepare, spout是open).

2.3 启动Supervisor 时,出现java.lang.UnsatisfiedLinkError. 4

4)      Storm的debug形式下,它本人的log极其庞大,所以本人感到本身的代码中有个别根本的音讯,用info比较好,那样将storm的log品级调治为info相比方便查看。

15 关于metaq运转的面世服务拒绝连接的主题素材... 13

8.3信任的jar冲突难题

1 关于Storm集群... 2

文书档案表达

17.1缓慢解决方案(一):

  1. 例如说文件名称叫myshell.sh,vim myshell.sh

  2. 进行vim中的命令 : set ff?查看文件格式,假如呈现fileformat=dos,注明文件格式非常。

  3. 奉行vim中的命令 :set fileformat=unix将文件格式改进来就足以了,然后:wq保存退出就能够了。

8.2应用maven插件,在打jar包时,包括正视。

6关闭storm相关进度

 

2.        <dependencySet> 

14 关于storm连接Mysql 13

49彩票集团 1

1.8关于Storm的ack和fail问题

在学习storm的长河中,有好多少人对storm的Spout组件中的ack及fail相关的难点存在困惑,这里做一个总结的概述。

Storm保险每贰个数额都赢得管用处理,那是怎么保险的吗?正是ack及fail机制确定保障数据都拿走管理的承接保险,不过storm只是提须求我们贰个接口,而现实的法子得由我们友好来促成。举例在spout下一个拓扑节点的bolt上,大家定义某种意况下为数据管理失利,则调用fail,则大家能够在fail方法中开展多少重发,那样就确认保证了多少都拿走了管理。其实,通过读storm的源码,里面有讲到,某个类(BaseBasicBolt?)是会活动调用ack和fail的,没有必要大家程序员去ack和fail,可是其余Bolt就从未这种作用了。

大约地说,complete latency 表示了tuple 从emit 到被acked 经过的小运,能够以为是tuple甚至该tuple 的承继子孙(产生后生可畏棵树)整个拍卖时间。其次spout 的emit 和transfered 还总结了spout和acker 之间内部的通讯新闻,举例对于保障管理的spout 来讲,会在emit 的时候还要发送一个_ack_init给acker,记录tuple id 到task id 的照耀,以便ack 的时候能找到科学的acker task。

6.1关门nimbus相关进度: 

kill `ps aux | egrep '(daemon.nimbus)|(storm.ui.core)' |fgrep -v egrep | awk '{print $2}'` 

备考:那是在英特网来看的,未有通超过实际际测量试验,有乐趣的爱人能够自身测量检验一下。

4.4 在布署storm节点的时候需求安装jzmq和zeromq, 在装置那五个依赖包之后,必要实践sudo -u root ldconfig. 不然会现身非常:

1.5 关于Storm如什么地点理重复的tuple难题... 3

减轻格局:手动创造classdist_noinst.stamp 空文件。

1.1关于storm集群的情形变量配置难题

安装好JDK后,必要配置境况变量,平日状态下是因为经验,大家频频会校订/etc/profile的值实行景况变量配置,但那在设置JDK以至背后安装的storm集群、zookeeper集群以致metaq集群时会出标题,这时我们供给在/etc/.bashrc文件中投进入国蒙受变量,不然安装的Java和ZK集群等就不能够利用,特别这几个标题在本人用shell写调治脚本去运行storm集群的时候就碰见过,若无将java的景况变量配置在/etc/.bashrc文件中,就能够报一个错,这些标题在背后作者会提到。

8关于maven打包难点

8.3依赖的jar冲突难点

只要本地依赖的jar与storm的lib下的jar有冲突,即都用了叁个jar,然而版本不一样,那么日常前段时间只得改为跟storm保持统意气风发。官方的探讨组是这么说的。

 

3.1揭露drpc 类型的topologies 到长途集群时,现身空指针非凡,连接drpc服务器失利

9关于nimbus的开发银行难题

 

首先从类的三结合上海展览中心开剖释能够看来,IBasicBolt接口独有execute方法和declareOutput菲尔德s方法,而IRichBolt接口重三了以上多少个法子还或许有prepare方法和cleanup及map方法。何况内部execute方法是有些不相符的,其参数列表分裂。

9 关于nimbus的开发银行难题... 10

17有关shell脚本编码格式难点

2.4宣布topologies 时,现身不能够类别化log4j.Logger 的要命

原因是日记系统无法精确支付连串化。

缓和方式:使用slf4j 替代log4j。

3.            <outputDirectory>/</outputDirectory> 

1.5关于Storm如哪管理重复的tuple难点

有人问到Storm 是怎么管理重复的tuple?

因为Storm 要确认保障tuple 的保证管理,当tuple 管理战败也许逾期的时候,spout 会fail不分厚薄复发送该tuple,那么就能够有tuple 重复总括的主题素材。那个题目是很难消除的,storm也绝非提供体制支持你解决。不过也许有大器晚成部分卓有效率的大旨:

(1)不管理,那也究竟种政策。因为实时总结平时并不必要超高的正确度,后

续的批管理计算会校正实时计算的相对误差。

(2)使用第三方集中积累来过滤,譬喻选取MySQL、MemCached 或者Redis 依据逻辑主键来去重。

(3)使用bloom filter 做过滤,轻松便捷。

13关于java.lang.NoClassDefFoundError: clojure.core.protocols$

6.1关门nimbus相关进度: 

kill `ps aux | egrep '(daemon.nimbus)|(storm.ui.core)' |fgrep -v egrep | awk '{print $2}'` 

备注:那是在英特网看看的,未有通过实际测量试验,有意思味的情人能够自个儿测量试验一下。

连天远程mysql是报如下错误:

1.9有关IRichBolt与IBasicBolt接口的差别

率先从类的结缘上进展解析能够见到,IBasicBolt接口独有execute方法和declareOutputFields方法,而IRichBolt接口上巳了上述几个措施还应该有prepare方法和cleanup及map方法。况兼里面execute方法是某个不一样等的,其参数列表差异。

全部来讲Rich方法相比较康健,大家能够行使prepare方法开展该Bolt类的初叶化专门的职业,比如大家链接数据库时,必要展开三回数据库连接操作,大家就足以把该操作放入prepare中,只要求试行二次就能够了。而cleanup方法能在那类调用甘休时张开扫尾工作,往往在拍卖数量的时候使用,举个例子在写hdfs(Hadoop的文件系统)数据的时候,在停止时索要开展多少clear,则要求打开数据停止。当然,依据官方网址及实际的考试,该格局往往是推行破产的。

 

关于这几个主题素材,其实英特网是有质地进行了详尽的表达的。这里只是只怕将刹那间,如若还不明了,能够上网搜搜“storm可相信管理”。Storm为了保障tuple 的保险管理,acker 会保存该节点创制的tuple id的xor (异或)值,这一个值称为ackvalue,那么每ack 贰次,就将tuple id 和ack value做异或(xor)。当有着发生的tuple 都被ack的时候,ack value 必定为0。那是个非常轻巧的攻略,对于每二个tuple 也只要占用约19个字节的内存。对于100万tuple,也才20M 左右,所以日常景色下是决不思虑内部存款和储蓄器泄漏难点的。

6关闭storm相关进度

 

error: cannot access org.zeromq.ZMQ class file fororg.zeromq.ZMQ not found

17.2减轻方案(二)

要么选择最笨的办法:将windows下编写制定好的剧本通过txt文本格式转换,然后在拷贝到linux下。

倘使是接纳Notepad编辑器举行编写制定的话,能够在菜单栏上选用“编辑”—“档案格式调换”—“调换为 UNIX 格式”。

 

终极验明正身一下,那几个难点只是storm应用进程中相见的一小部分主题材料,其实还会有比非常多题材是涉嫌到实际项目标设想的,譬喻集群硬件供给,参数配置,日志处理等等,具体难题具体分析吧,也希望哪些在实际项目中用到storm的大神们,能多多和大家享受你们的实际经历,终归施行出真知,任何新手艺,独有经超过实际际运用和骨子里检查,分享出去的东西才有说服力。

该文书档案为确实的原创文书档案,转发请申明:

类型

详细

备注

该文档是群里几个朋友在storm实战中遇到的一些问题,及其对应解决办法。

 

 

相关描述

²  其他相关文档请参考新浪博客http://blog.sina.com.cn/huangchongyuan

²  有任何其他想法,可以邮件874450476@qq.com

² 文档及相关资料下载请个人360云盘http://yunpan.cn/QGf2GDaRFpcDt及百度文库、新浪爱问搜索。

²  部分文档涉及到源码,有需要的博客留言,关注我的博客。

² 欢迎加入storm-分布式-IT技术交流群(191321336,群中有详细的资料),一起讨论技术,一起分享代码,一起分享设计。

 

 

目录

文书档案表明... 2

难题锦集... 2

1 关于Storm集群... 2

1.1 关于storm集群的情形变量配置难题... 2

1.2 关于zookeeper集群安装难点... 2

1.3 关于Storm中tuple 的可相信管理难题... 2

1.4 关于storm计算结果的存放难题... 3

1.5 关于Storm如哪个地方理重复的tuple难点... 3

1.6 关于task与executor的涉及难题... 3

1.7 关于Storm UI突显内容的主题材料... 3

1.8 关于Storm的ack和fail问题... 3

1.9 关于IRichBolt与IBasicBolt接口的差别... 4

2 关于Topology发布... 4

2.1 宣布topologies 到长途集群时,现身Nimbus host is not set 非凡... 4

2.2 揭橥topology到长途集群时,现身AlreadyAliveException(msg: xxx is alreadyactive)分外    4

2.3 启动Supervisor 时,出现java.lang.UnsatisfiedLinkError. 4

2.4 公布topologies 时,现身不可能连串化log4j.Logger 的非常... 4

2.5 bolt 在拍卖音信时,worker 的日记中冒出Failing message. 5

2.6 在打包toplogy工程的时候, 假设选择assembly方式, 对于有关的依赖的铺排平常要那样: 5

2.7 在付给topology的时候偶尔恐怕现身如下格外: 5

3 关于DRPC. 6

3.1 公布drpc 类型的topologies 到长途集群时,现身空指针非常,连接drpc服务器退步... 6

3.2 客商端调用drpc 服务时,worker 的日志中现身Failingmessage,而bolt都未采用数额    6

4 关于jzmq安装... 6

4.1 storm 运维时报no jzmq in java.library.path 错误... 6

4.2 安装jzmq 时遇到No rule to make target ‘classdist_noinst.stamp’的make错误... 7

4.3 安装jzmq 时遇到cannot access org.zeromq.ZMQ 的make 错误... 7

4.4  在陈设storm节点的时候需求安装jzmq和zeromq, 在安装那三个依赖包之后,必要履行sudo -u root ldconfig. 不然会现身极度: 7

5 关于Storm的布局难点... 7

6 关闭storm相关进程... 8

6.1 关闭nimbus相关进度: 8

6.2 干掉supervisor上的有所storm进度: 8

7 关于Topology公布之后的log. 8

8 关于maven打包难点... 9

8.1 首先maven的pom文件中的storm信任,要么加excludestorm的连带语句(github有认证),要么加<scope>,如下:    9

8.2 使用maven插件,在打jar包时,富含依赖。... 9

8.3 信赖的jar矛盾难点... 10

9 关于nimbus的运转难点... 10

9.1 Storm nimbus运营退步... 10

10 Storm使用JVM参数... 11

11 关于spout/bolt的性命周期... 11

12  关于storm与spring框架集成难点... 11

13 关于java.lang.NoClassDefFoundError: clojure.core.protocols$.12

14 关于storm连接Mysql 13

15 关于metaq运营的现身服务拒却连接的主题材料... 13

16 关于topology的spout与bolt. 13

17 关于shell脚本编码格式难题... 13

17.1 技术方案(一):... 13

17.2 应用方案(二)... 13 

 

以此足够网络搜寻之后发现原先是出于*.xml文件编码的主题素材。原因是在从别的品种里只怕编辑工具编辑时,在文书编码中出席了BOM头的由来,于是用notePad++张开xml文件选拔去掉BOM头消息,重新开展封存就可以。

1.4关于storm总结结果的存放难题

广大人在刚刚学习Storm 的时候都会有其生龙活虎主题素材:storm管理后的结果保存在哪个地方? 内部存款和储蓄器中?照旧此外地方?

官方表达说: Storm是不担当保存计算结果的,那是应用程序里必要承当的事务,借使数据相当小,你能够归纳地保存在内部存储器里,也能够每一遍都更新数据库,也能够利用NoSQL存款和储蓄。storm并不曾像s4 这样提供三个PersistAPI,依照时间如故体积来做存款和储蓄输出。那部分业务完全交由顾客。数据存款和储蓄之后的表现,也是你须要团结管理的,storm UI只提供对topology 的监察和控制和总结。

2      将体系化的component发送给全部的天职所在的机器;

8.1 首先maven的pom文件中的storm正视,要么加excludestorm的连带语句(github有证实),要么加<scope>,如下:    9

事先有问到,八个topology中可不得以有多少个spout?那个难点平时很天真啊,呵呵。关于那几个主题素材,小编是这么思考的:实际运用中,借使大家每一条采取都创建二个topology的话,未免也太夸张了。尽管是同贰个行使,同一个数目来源于,可是你想分两种办法对这一个数额做拍卖的话,那个时候就相应是建三个spout了,让那么些spout并行去读数据,然后提交订阅这一个spout的bolt去管理就行,没须要风姿罗曼蒂克种管理方式建一个topology。

2.7 在付给topology的时候有时恐怕现身如下格外: 5

Xml代码 

8有关maven打包难点

 

Exception in thread "main"java.lang.IllegalArgumentException: Nimbus host is notset
      atbacktype.storm.utils.NimbusClient.<init>(NimbusClient.java:30)
      atbacktype.storm.utils.NimbusClient.getConfiguredClient(NimbusClient.java:17)
      atbacktype.storm.StormSubmitter.submitJar(StormSubmitter.java:78)
      atbacktype.storm.StormSubmitter.submitJar(StormSubmitter.java:71)
      atbacktype.storm.StormSubmitter.submitTopology(StormSubmitter.java:50)
      atcom.taobao.kaleidoscope.storm.IcdbTopology.main(IcdbTopology.java:59)

2.5bolt 在拍卖音信时,worker 的日志中冒出Failing message

缘由:大概是因为Topology 的音信管理超时所致。

消灭净尽办法:提交Topology 时设置适当的新闻超时时间,比暗中认可音信超时时间(30

秒)更长。比如:

conf.setMessageTimeoutSecs(60);

6.                <exclude>storm:storm</exclude> 

1.4 关于storm总计结果的寄存难点... 3

续的批管理总计会更正实时总结的固有误差。

8 关于maven打包难点... 9

能够应用命令: storm localconfvalue 配置关键字

14关于storm连接Mysql

 

接连几天来远程mysql是报如下错误:

message from server:"Host FILTER" is not allowed to connect tothis MySQL server

化解方案:

很大概是您未曾给其它IP访谈你数据库的权柄,你能够试试:

在MySql数据库的主机上,在mysql命令行中输入以下命令:

grant all on *.* to root@'%' identified by "111111" ;

如此,给其余IP都授予了访谈的权位,

任何IP都能以,用户名:root ,密码:111111

来展开局域网的走访!

(命令中*.*是通配任何IP,你也得以内定IP)

 

3      在每三个职务上反系列化component;

17.2 解决方案(二)... 13 

wiki上说能够用<scope>compile</scope>。然后将storm注重设置为runtime,貌似不行。 其它正是统筹的借助包将整个解压,然后将持有信任的配备和class文件生成三个文书。这么些是经过<unpack>true</unpack>参数来支配的。

1.2有关zookeeper集群安装问题

记念刚刚接触storm,在安装zookeeper集群的时候宛如此的设想:为何不能把zookeeper只设置在nimbus上,然后让此外的supervisor来它这里读取职分?借使在每台机器上都安装zookeeper,那nimbus分配职分的时候,是每台机械上的zookeeper都吸取如出一辙份的职责,照旧只是将分配给每种supervisor节点的那有个别写到同生龙活虎节点上的zookeeper中?

 

有对象解答说:ZK也是以集群的法子行事的,ZK集群内部有她和煦的生龙活虎套互相通讯机制,而storm便是要依据其广播发表机制,举例职责下发等,往往在执行三个任务的时候,storm会把职务及连锁实行的代码通过连串化之后发送到各样ZK节点供supervisor去下载,然后才会独家施行自个儿某个的代码只怕义务。说的第一手一点就是各种ZK节点收到的职分是相同的,而supervisor只必要下载属于本人的天职就能够。

drpc.servers:

2.3启动Supervisor 时,出现java.lang.UnsatisfiedLinkError

现实信息:运维Supervisor 时,现身java.lang.UnsatisfiedLinkError:

/usr/local/lib/libjzmq.so.0.0.0: libzmq.so.1: cannot open sharedobject

file: No such file or directory 异常。

原因是未找到zmq 动态链接库。

消除措施1:配置景况变量 export LD_LIBRARY_PATH=/usr/local/lib

焚薮而田办法2:编辑/etc/ld.so.conf 文件,扩张少年老成行:/usr/local/lib。再实行

sudo ldconfig 命令,重启Supervisor。

杀鸡取卵方案:

2.4 宣布topologies 时,现身无法种类化log4j.Logger 的分外... 4

/usr/local/lib/libjzmq.so.0.0.0: libzmq.so.1: cannot open sharedobject

6.2干掉supervisor上的全数storm进程: 

kill `ps aux | fgrep storm | fgrep -v 'fgrep' | awk '{print$2}'` 

备注:那是在英特网来看的,未有通超过实际际测验,有野趣的对象可以本身测量检验一下。

 

1.3关于Storm中tuple 的保证管理难题

主题材料锦集... 2

[supervisor 主机ip] [supervisor 主机名] [supervisor 主机外号]

文书档案表明... 2

消灭净尽办法1:配置情况变量 export LD_LIBRARY_PATH=/usr/local/lib

4.1storm 运行时报no jzmq in java.library.path 错误

由来是找不到jzmq,默许情状下在施行install_zmq.sh 时,那些.so 文件

设置路线在/usr/local/lib,但是实际上安装时可能装在此外的不二秘技下了。

抽薪止沸办法:在storm.yaml 中加上:

java.library.path:

"/opt/storm/jzmq/lib:/opt/storm/zeromq/lib:/usr/local/lib:/opt/local/

lib:/usr/lib"

消除方法:发表时换二个拓扑名称就能够。

17.1缓慢解决方案(生机勃勃):

  1. 比方文件名叫myshell.sh,vim myshell.sh

  2. 实行vim中的命令 : set ff?查看文件格式,借使展现fileformat=dos,评释文件格式有标题。

  3. 实施vim中的命令 :set fileformat=unix将文件格式改进来就足以了,然后:wq保存退出就能够了。

在我们设置配置storm的时候,不知我们是或不是首要到了三个标题,就是我们在陈设的时候会加多少个worker的端口(supervisor.slots.ports:),比如众多文书档案中关系的6700/6701之类相近的事物。对的,这便是大家定义了该supervisor最多的worker数,worker中实践多个bolt或许spout线程,我们就称之为task,而executor是情理上的线程概念,大家得以将其誉为施行线程;而task更加多是逻辑概念上的,偶然候bolt与spout的task会共用叁个executor,极度是在系统负荷相比较高的时候。

2.2 发表topology到长途集群时,现身AlreadyAliveException(msg: xxx is alreadyactive)极度    4

16 关于topology的spout与bolt

9.1 Storm nimbus运营战败... 10

1.6有关task与executor的涉嫌难点

2关于Topology发布

 

再网络找一下还真有人蒙受形似的标题,具体原因是对storm的spout和bolt的生命周期通晓的非常不足深远。

1.3有关Storm中tuple 的笃定管理难题

Storm 为了确认保证tuple 的可信管理,须要保存tuple 消息,这样会不会导致内部存储器泄漏?

关于这几个主题素材,其实英特网是有材料实行了详尽的解说的。这里只是大约将须臾间,借使还不知情,能够上网搜搜“storm可信赖管理”。Storm为了保险tuple 的保险管理,acker 会保存该节点创立的tuple id的xor (异或)值,这些值称为ackvalue,那么每ack 贰次,就将tuple id 和ack value做异或(xor)。当有着发生的tuple 都被ack的时候,ack value 必定为0。那是个比较轻松的计策,对于每三个tuple 也假若占用约十八个字节的内部存款和储蓄器。对于100万tuple,也才20M 左右,所以经常景观下是并非思考内存泄漏难题的。

在计划文件storm.yaml中,有:

8.1第生机勃勃maven的pom文件中的storm信任,要么加excludestorm的相关语句(github有认证),要么加<scope>,如下:

                  <dependency>

                           <groupId>storm</groupId>

                           <artifactId>storm</artifactId>

                           <scope>test</scope>

                  </dependency>

加scope能够使打jar包时,不包罗storm。假诺含有了storm,那么提交到storm集群,会运作出错。官方需求打jar包时,要去除storm的正视。

kill `ps aux | egrep '(daemon.nimbus)|(storm.ui.core)' |fgrep -v egrep | awk '{print $2}'`

10 Storm使用JVM参数... 11

1.      yaml跟我们平时用的属性配置文件有所不相同, 它的渴求更严刻一些,因而在往conf/storm.yaml中丰裕配置的时候必需注意,比如必得注意起先地点和冒号前面包车型客车空格, 不然铺排不会收效。

15有关metaq启动的面世服务回绝连接的难题

 

消亡办法:在metaq安装目录下,删掉此前的日记文件,测量检验互连网是或不是健康连接。将事先的劳务的metaq进度kill掉,然后重启。

 

2关于Topology发布

8.3 正视的jar冲突难题... 10

切实的make 错误音讯:

10Storm使用JVM参数

 

在配备文件storm.yaml中,有:

# to nimbus 
nimbus.childopts: "-Xmx1024m" 

# to supervisor 
supervisor.childopts: "-Xmx1024m" 

# to worker 
worker.childopts: "-Xmx768m" 
借使worker在运营时,须要用钦定的JVM参数,那么能够像那样安顿:
worker.childopts: "-Dworker=worker -Xmx768m -Xdebug –Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,address=8111,suspend=y,server=y" 

 

17.1消除方案(后生可畏):

17.2解决方案(二)

依旧利用最笨的不二法门:将windows下编写制定好的本子通过txt文本格式调换,然后在拷贝到linux下。

假如果应用Notepad编辑器实行编辑的话,能够在菜单栏上接纳“编辑”—“档案格式调换”—“转换为 UNIX 格式”。

 

最终证实一下,那么些主题素材只是storm应用进程中碰着的一小部分标题,其实还可能有众多难题是关系到骨子里项指标思念的,比如集群硬件需要,参数配置,日志处理等等,兵来将挡水来土掩吧,也目的在于哪些在事实上项目中用到storm的大神们,能多多和大家大饱眼福你们的实在经验,毕竟施行出真知,任何新本领,只有由此实际利用和实在核查,共享出去的东西才有说服力。

make[1]: *** No rule to make target`classdist_noinst.stamp',needed by `org/zeromq/ZMQ.class'.Stop.

文档表明

该文书档案包含了storm实战中常常境遇有的标题,及对应应用方案。那么些文书档案是群里多个爱人在上学storm,并实战storm中碰着的后生可畏对标题,及和群里别的朋友合伙调换给出的附和应用方案,并由他收拾好,委托我发表出来(也终于交换者之意气风发),供我们参照他事他说加以考察,希望能对大家享有助于。

多谢 某某(哈哈 鉴于有些原因,不便表露名字~~~~!)…

 

Storm 为了保险tuple 的保证管理,供给保存tuple 音信,那样会不会形成内部存款和储蓄器泄漏?

1.1关于storm集群的蒙受变量配置难题

设置好JDK后,供给配备遇到变量,平时景况下是因为经验,大家往往会更正/etc/profile的值举办遇到变量配置,但那在安装JDK以至背后安装的storm集群、zookeeper集群以至metaq集群时会出标题,这个时候大家要求在/etc/.bashrc文件中投进入国境遇变量,不然安装的Java和ZK集群等就不能运用,越发这一个题材在自身用shell写调整脚本去运营storm集群的时候就碰着过,若无将java的情况变量配置在/etc/.bashrc文件中,就能报贰个错,那么些题材在背后小编会提到。

解决办法:检查jdk版本,卸载系统自带的JDK,使用本身安装的JDK版本。

2.3启动Supervisor 时,出现java.lang.UnsatisfiedLinkError

现实音讯:运行Supervisor 时,现身java.lang.UnsatisfiedLinkError:

/usr/local/lib/libjzmq.so.0.0.0: libzmq.so.1: cannot open sharedobject

file: No such file or directory 异常。

案由是未找到zmq 动态链接库。

不留余地措施1:配置景况变量 export LD_LIBRARY_PATH=/usr/local/lib

毁灭方法2:编辑/etc/ld.so.conf 文件,扩张后生可畏行:/usr/local/lib。再施行

sudo ldconfig 命令,重启Supervisor。

            <archive>

3.2顾客端调用drpc 服务时,worker 的日记中冒出Failing message,而bolt都未收到数量

荒诞日志如下所示:

2011-12-02 09:59:16 task [INFO] Failing message

backtype.storm.drpc.DRPCSpout$DRPCMessageId@3770bdf7: source:1:27,

stream: 1, id: {-5919451531315711689=-5919451531315711689},

[foo.com/blog/1, {"port":3772,"id":"5","host":"10.0.0.24"}]

 

案由是主机名,域名,hosts 文件配置不正确会引起这类错误。

清除方法:检查并修正storm 相关机器的主机名,域名,hosts 文件。重启网络服务:service networkrestart。重启storm,再一次调用drpc 服务,成功。Hosts 文件中必得带犹如下

内容:

[nimbus 主机ip] [nimbus 主机名] [nimbus 主机小名]

[supervisor 主机ip] [supervisor 主机名] [supervisor 主机别称]

[zookeeper 主机ip] [zookeeper 主机名] [zookeeper 主机外号]

 

实际消息:运行Supervisor 时,现身java.lang.UnsatisfiedLinkError:

3关于DRPC

 

2.5bolt 在拍卖音讯时,worker 的日志中冒出Failing message

1.8关于Storm的ack和fail问题

在就学storm的经过中,有许多少人对storm的Spout组件中的ack及fail相关的难点存在困惑,这里做三个简便的概述。

Storm有限援救每一个数额都赢得管用管理,那是何等保障的吧?就是ack及fail机制保证数据都拿走管理的承接保险,但是storm只是提供给大家一个接口,而实际的法子得由我们温馨来落到实处。举个例子在spout下一个拓扑节点的bolt上,大家定义某种意况下为数据管理失利,则调用fail,则大家得以在fail方法中开展多少重发,那样就确定保证了数码都拿走了管理。其实,通过读storm的源码,里面有讲到,有些类(BaseBasicBolt?)是会活动调用ack和fail的,不要求我们技师去ack和fail,可是别的Bolt就从不这种意义了。

1)      用storm jar...将品种交付给storm集群后,想查看本项目标log消息,要到supervisor机器的:storm安装路线/logs/worker-number.log(个中的number视实际情形而定)中查阅。

9.1 Stormnimbus运转失败

在使用了storm生机勃勃段时间后,要求重新计划storm的集群,主借使想将storm安排在此外机器上。做了以下错误操作:

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

        2) 删除了配置中"storm.local.dir"的文书夹内的剧情

        3) 启动storm nimbus

报错:
backtype.storm.daemon.nimbus 
$fn__2692$exec_fn__945__auto____2693$this__2731@62135133 
java.io.FileNotFoundException: File'/opt/apps-install/storm/ 
storm_local/nimbus/stormdist/appFailed-6-1325065153/stormconf.ser' 
does not exist 
       at 
org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:137) 
       at 
org.apache.commons.io.FileUtils.readFileToByteArray(FileUtils.java: 
1135) 
       atbacktype.storm.daemon.nimbus 
$read_storm_conf.invoke(nimbus.clj:128) 
       atbacktype.storm.daemon.nimbus 
$compute_new_task__GT_node_PLUS_port.invoke(nimbus.clj:244) 
       atbacktype.storm.daemon.nimbus 
$mk_assignments.invoke(nimbus.clj:288) 
       atbacktype.storm.daemon.nimbus 
$fn__2692$exec_fn__945__auto____2693$this__2731.invoke(nimbus.clj:460) 
       atbacktype.storm.event$event_manager 
$fn__2068$fn__2069.invoke(event.clj:25) 
       atbacktype.storm.event$event_manager 
$fn__2068.invoke(event.clj:22) 
       atclojure.lang.AFn.run(AFn.java:24) 
       atjava.lang.Thread.run(Thread.java:662) 
2011-12-29 16:15:02 util [INFO] Halting process: ("Errorwhen 
processing an event") 
报错原因:因为还没有先killtopology,所以在运转nimbus时,zookeeper中依然保存了上次运作着的topology的新闻。

搞定办法:用zookeeper的zkCli.sh清理一下,小编一贯重装了zookeeper。不过听闻在storm0.6.第11中学扫除了该bug。而本身用的是storm 0.6.0。

 

假如地点正视的jar与storm的lib下的jar有冲突,即都用了叁个jar,可是版本分化,那么平日前段时间只得改为跟storm保持统黄金时代。官方的探讨组是这么说的。

4.4 在配置storm节点的时候供给设置jzmq和zeromq, 在装置那多个依靠包之后,须求举办sudo -u root ldconfig. 不然会现身极度: 

2012-02-24 16:30:30 worker [ERROR] Error oninitialization of server mk-worker 
java.lang.UnsatisfiedLinkError: /usr/local/lib/libjzmq.so.0.0.0:libzmq.so.1: cannot open shared object file: No such fileor 
directory 
       at java.lang.ClassLoader$NativeLibrary.load(NativeMethod) 
       atjava.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803) 
       atjava.lang.ClassLoader.loadLibrary(ClassLoader.java:1728) 
       atjava.lang.Runtime.loadLibrary0(Runtime.java:823) 
       atjava.lang.System.loadLibrary(System.java:1028) 
       atorg.zeromq.ZMQ.<clinit>(ZMQ.java:34)

 

本文由49彩票集团发布于计算机网络,转载请注明出处:1.2 关于zookeeper集群安装问题...,1.1关于storm集群

关键词:

  • 上一篇:没有了
  • 下一篇:没有了