我目前正在使用:
已移至:
我想指定卡夫卡消费者组名称。通过查看storm kafka代码,我遵循了设置id,发现它在处理消费者配置时从未使用过,而是用于创建存储偏移信息的zookeeper路径。在此链接中,我举了一个例子,说明我为什么要这样做:
我说的消费者组名称不能使用代码设置对吗?到目前为止,storm kafka集成是使用kafka的SimpleConsumer API实现的,它在zookeeper中存储消费者偏移量的格式是以自己的方式实现的(JSON格式)
如果您像下面这样编写喷口配
Supervisor节点正常运行几秒钟,然后终止
有人能帮我解决这个问题吗
这是在与主管关联的日志文件中发现的错误
2015-10-10 01:11:23 b.s.d.supervisor[错误]初始化服务器mk supervisor时出错
java.io.IOException:无法创建目录/home/usr/storm/data/supervisor
在org.apache.commons.io.FileUtils.forceMkdir(FileUtils.java:1488)~[commo
风暴管理员停止工作。由于这种拓扑结构停止工作。我们是否有任何机制使zookeep自动启动?您必须定义一些对zookeep的监督。试试看,你说的“动物园管理员停止工作”是什么意思?您是否在可靠的分布式模式下设置Zookeeper?如果是,Zookeeper应始终可用,Storm拓扑应保持运行
但是,如果其中一个ZK节点死亡,则需要手动启动一个新节点
请参阅中的“设置Zookeeper群集”
另见
我有一个风暴群,有1个Nimbus、4个Supervisors和2个Zookeeper节点。我的Storm.yaml如下所示:
storm.zookeeper.servers:
- "storage14"
- "storage15"
nimbus.seeds: ["storage01"]
#storm.local.hostname: "storage05"
supervisor.supervisors:
- "storage02"
- "storage03"
我试图找出风暴1.1和风暴2.0之间的主要区别。
为这两个版本设置集群时有什么不同吗?
(在官方网站上阅读新的基于Java的实现,但有人看到这两个版本之间的任何差异)。除了阅读上的变更日志,您还可以查看一些性能数据。当然,您也可以运行自己的基准测试。请详细描述您正在寻找的答案。我可以将您链接到2.0.0变更日志或发布公告,但我不确定这是否是您所要求的。我必须从storm 1.1转换到storm 2.0,但我被要求确保在时间等方面存在显著差异。
每当我启动(storm)主管时,我都会收到一个错误,上面写着“处理事件时出错”。。如何消除此错误?重复的
只需删除“storm local/supervisor”文件夹,它就会消失。请发布完整的错误堆栈。这是EOFEException吗?
我能够使用标准喷口,螺栓组合做流聚合
当使用滴答元组以一定的间隔持久化数据时,它在令人满意的情况下工作得非常好
利用配料。现在我自己正在做一些故障管理(跟踪未保存的元组等)
但我已经读到三叉戟给了你更高的抽象和更好的失败管理。
我不明白的是trident中是否有tick元组支持。基本上
我想在内存中批处理当前分钟左右的数据,并保存所有聚合的数据
前几分钟使用三叉戟
这里的任何提示或设计建议都会有所帮助
谢谢事实上,微配料是Trident的内置功能。你不需要任何记号元组。当代码中有类似的内容时:
嗨,我创建了一个Storm程序,它使用Spoot类逐行读取文本文件input.txt,并将这些元组发送给bolt,在bolt类中,我想将元组写入output.txt。我几乎完成了,但问题是风暴在输出文件中写入了很多次。查看我的input.txt和output.txt文件
Input.txt
Kaveen,bigdata,29
varadha,cshart,30
vignesh,winrt,21
输出
varadha,cshart,30
vignesh,winrt,21
Kaveen,bigda
我们正在伪模式下执行Storm拓扑
Storm拓扑执行良好,能够连接Storm UI(8080)
但是Storm UI没有显示正在运行的拓扑信息
也重新启动了storm UI进程,但没有使用
storm是否需要特殊配置才能在storm UI中显示正在运行的拓扑?您正在运行哪些版本的storm
检查以确保Nimbus和主管都在运行。我已经看到,如果在没有运行监控程序的情况下部署拓扑,则不会显示任何内容。您只需在storm.yaml中提供port toui.port选项,例如:ui.port:808
我是Storm的初学者,我想知道如果最多一次处理对我有利,我是应该使用BaseRichBolt还是BaseBasicBolt
据我所知,在BaseBasicBolt的情况下,元组会自动锚定和确认,而在BaseRichBolt的情况下,我们必须自己这样做。这是否意味着如果我希望最多处理一次,我应该使用BaseRichBolt
我的逻辑是,锚定和确认将使事情变得更慢,对吗?为了在Storm中实现容错,需要喷口将消息ID分配给它们发出的元组。只要没有分配消息ID,确认和锚定就没有效果
因此,BaseB
有没有办法每秒调用一定次数的nextTuple方法?您可以完成这项工作,但要计算在当前分钟内调用nextTuple()的次数,如果发出了所需的元组数,只需返回而不发出元组。每次在新的一分钟内第一次调用nextTuple(),您只需将计数器重置为零
大概是这样的:
private int counter=0;
私有int currentMinute=0;
私有final int tuplesPerMinute=5;
public void nextTuple(){
if(counter==tupl
我正在storm拓扑中运行许多并行请求,并已将topology.max.spout.pending设置为100。我的一些请求正在超时(不是storm元组超时,而是应用程序为ach请求设置的显式超时)。我使用的是锚定元组,所以它们应该被确认。现在我怀疑,在某个时刻,#个挂起的元组到达topology.max.spout.pending,这会导致其他请求等待。如何实时打印挂起的元组数
检查确定的螺栓是否正在处理,螺栓是否在队列中有要插入的元组或类似的内容,可以满足这一要求。
在简历中,我想知道的是,在任何情况下,拓扑结构是否已经完成了工作。
我知道这听起来很矛盾,因为拓扑永远不应该完成工作,但我用它来做测试,一开始我没有不间断的数据流,但是数据量有限。你可以从storm UI中检查它,我认为这是最简单的方法。要检查正在运行的拓扑及其状态,你可以运行:
{dir/to/storm}/bin/storm list
您还可以导航到正在运行的storm UI并从中检查拓扑/日志
如
因此,ApacheStorm+Trident提供了完全相同的语义。假设我有以下拓扑结构:
TridentSpout -> SumMoneyBolt -> SaveMoneyBolt -> Persistent Storage.
CalculateMoneyBolt对内存中的货币值求和,然后将结果传递给SaveMoneyBolt,后者应将最终值保存到远程存储/数据库
现在非常重要的是,我们计算这些值并只将其存储到数据库中一次。我们不想意外地重复计算这笔钱
那么,当对数据库的写入
如果问题解决了,很抱歉,但我试图找到它,但没有成功。有一些类似的,但我没有找到帮助,我看到的地方。我有下一个问题:
603 [main] WARN b.s.StormSubmitter - Topology submission exception:
Component: [escribirFichero] subscribes from non-existent stream:
[default] of component [buscamosEnK
我已经创建了一个简单的程序来读取文件并生成一个文件。它工作得非常好。我担心如何使其成为实时拓扑。我想知道如果我修改源文件意味着添加了一条新记录,它应该出现在我的目标文件中,我将如何在不在集群上重新部署拓扑的情况下完成它。我还需要配置什么来实现这一点行为。下面是本地提交拓扑的代码:-
Config conf= new Config();
conf.setDebug(false);
conf.put(Config.TOPOLOGY_MAX_SPOUT_PENDING,
我使用Storm 0.8.2运行了WordCountTopology示例,但出现如下错误:
'import site' failed; use -v for traceback
Traceback (most recent call last):
File "storm-0.8.2/bin/storm", line 3, in <module>
import os
ImportError: No module named os
“导入站点”失败;使用-v进行回溯
回溯(
当我尝试在我的storm客户端中运行拓扑时,我得到了一个错误,指向与nimbus的连接失败。
我查看了我的numbus日志,下面显示:
2014-04-25 11:05:03 nimbus [INFO] Uploading file from client to storm-local/nimbus/inbox/stormjar-7106a3e1-fae8-4afe-8028-5c561eeb365e.jar
2014-04-25 11:05:03 nimbus [INFO] Finished
我刚刚学习了storm,并从中测试了WordCount示例代码。它使用setDebugtrue来启用调试日志记录。
但我对这些调试信息感到困惑:
13867 [storm.starter.WordCountTopology.main()] INFO backtype.storm.daemon.nimbus -
Setting new assignment for topology id word-count-1-1403745226:
#backtype.storm.daemon.commo
使用锚定时是否有限制重播次数的选项?
我有一个应该解析json对象的元组,如果它出现异常,我希望它能再重播两次
我试图跟踪storm使用打印回放的次数,但每次输入不可解析的值时,计数器都显示不同的结果
catch{
collector.fail(tuple)
}
BaseRichSpout类中的fail方法为空。这意味着您应该重写相同的方法来处理失败的元组回复策略 BaseRichSpoot类中的fail方法为空。这意味着您应该重写相同的方法来处理失败的元组回复策略 向元组添加一个字段,以保
无法启动apache storm
root@localhost ~]# storm nimbus
File "/home/mahendra/storm/bin/storm", line 51
normclasspath = cygpath if sys.platform == 'cygwin' else identity
^
SyntaxError: invalid syntax
[root@localhost ~]#
[
作为streamparse开发的一部分,我们有一个批处理元组的BatchingBolt。它旨在与数据库之类的东西一起使用,当您成批发送东西时,这些数据库的性能更高
我最近提议将我们的BatchingBolt实现从使用计时器/线程方法切换到使用滴答元组;然而,我的一位开发伙伴指出,使用我们当前的方法,当拓扑关闭(并且处于非活动状态)时,最终的批处理肯定会得到处理,而关于tick元组的任何地方都没有明确的文档记录
因此,我的问题是:Storm是否在发出终止/停用后,在等待/停用期间继续向螺栓发送勾号
(还有几个关于超时和maxSpoutPending的问题)
我在Storm文档中看到很多关于消息被完全处理的参考资料。但是,我的卡夫卡普特如何知道消息何时被完全处理
希望它知道我的螺栓连接的方式,所以当我的流中的最后一个螺栓确认一个元组时,喷口知道我的消息何时被处理
否则,我会设想,在超时期限到期后,检查消息的ack ed状态,如果ack/ARCHING XOR指示,则认为消息已被处理。但我希望不是这样
我还有关于maxTuplesPending和超时配置的相关问题
如果我将maxTuplePe
我在storm集群中使用ShellBolt(PythonMultilang),并且经常出现子进程心跳超时异常。我想找出原因,所以我想知道哪些元组导致超时问题
在我的拓扑结构中,有一小段代码从类路径中的属性加载配置
InputStream is=getClass().getClassLoader().getResourceAsStream("dev.properties");
p.load(is);
当我在本地模式下运行jar时,它工作得很好,但当我在集群模式下尝试它时,它失败了,出现了NullPointerException。
属性文件位于src/main/resources(Maven结构)中,并正确地包含在jar文件中
有什么可能的原因吗
此外
我一直在阅读有关Storm的文档,并在google中搜索我的问题,但我仍然没有找到通过Storm处理我的用例的方法
我的用例:我使用storm作为过滤器,但过滤器的条件将由客户端动态更改,然后storm将输出适合当前过滤器条件的结果
让我困惑的是,客户端如何与storm通信以动态更改过滤条件?还是我只是看错了东西?如果是这样,您对此用例提出了什么替代方案?因为准备好的喷口/螺栓可以存储状态,所以将过滤条件放入其中是一种解决方案
有多种方法可以动态更改它们。例如:
将一些特殊的元组发送到拓扑中,指
我希望有人能给我解释一下这种行为,因为这似乎很出乎意料
我看到,超时元组除了在壶嘴上调用失败之外,什么都没有。元组本身仍将通过拓扑进行处理,除非确认/失败无效。另一个问题是,挂起的元组数量将增加-超时元组不算作挂起,即使它们将流经拓扑。除非我遗漏了什么,否则这两个组合问题最多只能构成超时元组。完全没有意义,而且最坏的情况下是非常有问题的,因为它只会将更多的元组扔进已经最大化的拓扑中
以下是我的拓扑结构:
我有一个壶嘴。在nextTuple上,它或者重新发出一个失败的元组,如果不存在,则创建一个新
下面我将尝试在AmazonWeb服务上使用带有Ubuntu14.04LTS的虚拟机EC2配置ApacheStorm远程集群
我的主节点是10.0.0.230,从节点是10.0.0.79。我的zookeeper位于我的主节点中。当我在主节点中使用storm jar storm-starter-0.9.4-jar-with-dependencies.jar storm.starter.RollingTopWords生产拓扑远程时,会出现以下消息,表示已成功提交:
339 [main] INFO
我写了一个关于三叉戟的演示。
在演示中,我想在事务喷口中生成一系列批数据,然后对它们执行persistentAggregate操作
正常处理如下所示:
步骤1:txid=1,{“aaa 3”,“bbb 2”}==>持久化到DB(OK)
步骤2:txid=2,{“CCC6”,“DDD7”}==>持久化到DB(OK)
在步骤1中,如果persist to DB的操作异常,我认为该过程应该是
步骤1:txid=1,{“aaa 3”,“bbb 2”}==>持久化到DB(NG)
步骤2:txid=1,{“
我只是想知道在storm中使用任务与输出或性能的实际相关性是什么,因为它不必与并行性有任何关系,因此为组件选择多个任务会对输出产生任何变化吗?或者,如果我在tasks>executors中选择no,那么流程或输出会有什么不同呢。
如果有人能给我解释一下,不管有没有例子,都会很有帮助
比如说-
我有一个带有3个螺栓和1个喷嘴的拓扑结构,我只提到了2个工人端口,这意味着所有这4个组件(1个点和3个螺栓将仅在这些工人身上运行)现在我提到了第一个螺栓的2个执行器,这意味着该螺栓的2个螺纹将并行运行。现在
我有以下问题。我有一个Apache Storm拓扑,如下所示:
A->B->C
是一个喷口,从数据库中得到了一些序列
B:正在分裂这个序列并发射n个长序列
C:计算子序列是否在所有序列中
现在,如果c发现一个子序列不在所有序列中,它应该向B发送一条指令消息,B可以删减一些序列,并且不能发送比不在所有列表中的子序列长的所有元组
我的问题是如何在b的消息队列中转发此指令元组。您只需定义一个循环图:
TopologyBuilder=new TopologyBuilder();
建筑商:addSpout
我最近开始使用Storm,但在网上找不到任何关于全局分组选项容错的资源
根据我对文件的理解;当使用使用全局分组的螺栓(螺栓a)运行拓扑时,将从螺栓B的任务接收元组到螺栓a的任务。由于使用全局分组选项,拓扑中只有螺栓a的一个任务
问题如下:如果我们在Bolt A中存储流的一些历史数据,并且包含Bolt A任务的工作进程死亡,那么会发生什么?这意味着存储在该螺栓中的数据会丢失吗
提前感谢一旦所有下游任务都确认了元组,这意味着它们已经成功地处理了消息,如果出现关闭,则不需要重播消息。如果要在内存中保留
我现在正在尝试对storm 1.0.1进行一些测试。我使用了使用storm 0.9.5编译的拓扑,并使用向后兼容模式client.jartransformer.class:“org.apache.storm.hack.StormShadeTransformer”,但我在报告中遇到了以下异常:
> java.lang.NoSuchMethodError:
> org.apache.storm.spout.MultiScheme.deserialize([B)Ljava/lang/Ite
我部署了一个版本为1.0.2的storm集群。有一种情况如下:
创建拓扑并在集群上提交,以对一个客户机/客户进行分析。当另一个客户端也需要相同的分析时,正如我所想,可以创建类似的螺栓,并在拓扑中附加喷口。我想知道是否有可能在拓扑运行时创建这样的螺栓。这意味着无法中断第一个客户端的运行分析。可能吗
谢谢你的评论。
Max无法更改正在运行的拓扑。您需要终止拓扑并使用新添加的螺栓重新提交它。不可能更改正在运行的拓扑。您需要终止拓扑并使用新添加的螺栓重新提交它。明白了。我会为这个箱子改变我的设计。谢谢,
我试图了解在元组处理超时的情况下拓扑的状态(不是在Trident模式下)
让我们假设在某个螺栓中处理元组的过程中达到了超时阈值。在这种情况下,喷口再次发出初始元组(与我理解的消息id相同)。现在让我们假设Bolt完成了对元组的处理,并发射和确认元组。
在这种情况下:
即使喷口发出一个新的初始元组,失败的元组仍将继续由拓扑处理吗
如果是这样的话,acker的元组DAG会是什么样子(因为有一个新的DAG是用相同的初始元组id创建的)上一个原始DAG会怎么样
当应答器接收到应答并使用锚发出时会发生什么
我正在由2个节点组成的Storm集群中运行wordcount拓扑。一个节点是带有Nimbus、UI和Logviewer的主节点,然后两个节点都是主管,每个节点有一个工作节点。换句话说,我的主节点也是一个主管,而第二个节点只是一个主管。正如我所说,每个主管有一名工人
我使用的拓扑配置为使用这2个worker setNumWorkers 2。具体而言,拓扑结构有1个带2个螺纹的喷嘴、1个对开螺栓和1个计数螺栓。当我使用默认调度程序部署拓扑时,第一个监控程序有1个喷口螺纹和对开螺栓,第二个监控程序有1
我只是在学习风暴。我遇到了一个情况,我需要评估Storm群集上是否存在错误配置
我的问题是:如果我看到喷口上排放的数字远高于确认的数字,是否存在明显的问题?此外,没有故障
我想知道在什么情况下会发生类似的事情
显示拓扑的Storm UI的图像,在该图像中,您将看到喷口的发射和确认之间的差异
Nimbus和Supervisor在同一台机器上。我正在storm上用“bin/storm XX.jar XX.XX”运行我的jar,stdout显示这个拓扑运行良好
但是,当我使用“bin/storm list”时,我的拓扑结构没有显示任何信息。您使用的是storm UI吗?它显示了什么?我已经解决了这个问题。我根据教程在本地集群中运行拓扑。在我更改为群集模式后,storm ui显示拓扑状态。@然后回答下面的问题并接受回答,这样我们就可以认为这个问题已解决。您是否使用storm activat
我需要轮询一个表,并为每一行创建一个元组,以便在ApacheStorm中进行流式处理
在哪里可以找到示例?根据您的要求,它与storm没有太大关系。这是一个与数据库相关的问题
由于您没有关于要使用的数据库、表结构等的信息,因此我将简要介绍以下步骤:
假设表具有上次更新的时间戳或增量ID,将其用作提取数据的标记。以身份证为例
1) 每100ms执行一次sqlselect*from myyable,其中id>${last retrieved id}order by id limit 100${las
嗨,我正在运行一个拓扑,并使用风暴信号一次又一次地向拓扑发送消息。但日志文件中有错误
ClassDefNotFound:backtype.storm.contrib.signals.spout.BaseSignalsSpout
有人能告诉我找不到班级的原因吗
更新:代码文件更新
我的喷口课:
@SuppressWarnings("serial")
public class NumberSpout extends BaseSignalSpout
{
public NumberSpout(S
我正在使用storm处理一些数据流
在开始的时候,我阅读了一个xml文件,在其中我找到了ESPERBolts中使用的语句。在我定义拓扑并在集群上运行它之后不久。
现在,如果我想更改bolt中的语句,我必须修改xml,停止集群,然后从头开始重新启动它
在集群运行时,是否有一个场景可以看到一个线程来检查我的xml,并在找到定义的新语句时使用新语句更新Esper Bolt
我对Esper螺栓的定义如下:
String statement = "select count(*) as userPe
我想知道我的拓扑结构是否仍在运行或崩溃,我想使用java代码来实现这一点,那么除了编写一个与拓扑结构并行运行并发送心跳的线程之外,还有什么方法可以找到相同的方法吗?Storm为您的需求提供rest api,您可以使用它实现并运行另一个进程
请参阅:Storm为您的需求提供rest api,您可以使用它实现并运行另一个进程
请参阅:Storm为您的需求提供rest api,您可以使用它实现并运行另一个进程
请参阅:Storm为您的需求提供rest api,您可以使用它实现并运行另一个进程
参考:
我想知道在ApacheStorm中处理以下问题的最佳实践是什么
我有一个喷口,它生成一个带有显式时间戳的整数值流。目标是在此流上使用三个滑动窗口执行最小/最大聚合:
最后一小时
最后一天,即最后24小时
最后一个小时很简单:
topology.setBolt("1h", ...)
.shuffleGrouping("spout")
.withWindow(Duration.hours(1), Duration.seconds(10))
.withTimestampFi
我的问题是:在Apache Storm topology的喷口中,谁专门调用了nextTuple()方法
在一些资料来源中,有人写道,斯托姆本人就是这样做的,但这并不具体,也不清楚
风暴在什么条件下导致这种方法?预定的
有没有办法影响这个过程,比如说,减慢它的速度?它在这里被调用(Storm 2.0,对于1.x来说,它是一些clojure代码,做了类似的事情)
是的,暴风雪打了下三次电话。更准确地说,它是由喷口执行器线程调用的。我链接的方法在循环中调用。如果已到达topology.max.spo
我正在尝试设置一个3节点集群(nimbus/supervisor/supervisor),但在运行bin/storm nimbus时,无法解析我的conf/storm.yaml文件
conf/storm.yaml:
storm.zookeeper.servers:
- "192.168.1.202"
- "192.168.1.203"
- "192.168.1.204"
storm.local.dir: "/opt/storm-1.2.1”
nimbus.seeds: ["192.1
我们已经完成了在Windows上运行Apache Storm的url中提到的所有步骤。但是我们没有获得单词计数拓扑的输入和输出。请帮助我如何提供输入和查找输出
谢谢,
索米娅
Priya拓扑结构将一个映射(map counts=new HashMap();)保存在内存中,该映射将单词存储为键,将计数存储为值
您是否能够在系统中运行EquiremationTopology?有什么问题、异常和日志?您是如何运行拓扑的?吊牌上有什么?如果可能,请共享一些代码,这并不能清楚地解释实际问题。我们已成功部署
我们使用的是使用Kryo 2.17的Storm 0.9.1,我们有一个模块,该模块将数据插入titan graph数据库,该数据库内部使用Kryo 2.21,导致以下问题:
java.lang.RuntimeException:com.esotericsoftware.kryo.KryoException:java.lang.IllegalArgumentException:无法将com.thinkaurelius.titan.graphdb.types.TypeAttributeType字段c
如果comment builder.setBolt正确运行,请告诉我哪里出错了
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("words", new TestWordSpout(), 3);
//Calling setBolt
builder.setBolt("exc", new ExclaimBolt(),3)
.allGrouping("words");
我想知道用什么方法来获取任务信息,而不是执行者信息。我可以让执行者编号>任务编号,似乎任务编号是无用的
我在Topologycontext中使用了getComponentTasks(),但我只能获取执行器
有人能帮我吗?你可以用
List taskIds=context.getComponentTasks(context.getThisComponentId());
接收当前组件的所有任务ID。如果要获取整个拓扑中的所有任务ID,需要按组件收集它们并将它们放在一起:
List taskIds=
我的代码中有两个命名流,希望使用FieldsGroup将两个流中的元组发送到一个bolt。两条溪流的源头相同。
因此,如果我的源螺栓是previousBolt,目标螺栓是nextBolt,并且流被命名为stream1和stream2,这就是我想要实现的目标-
topologybuilder.setbolt(nextBolt, IRichBolt, parallelism_hint)
.fieldsGrouping(previousBolt,"stream1",new Fields(somefie
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 15 页