将BoltA和BoltB的输出发送到BoltC的最简单方法是什么。我是否必须使用联接,或者是否有更简单的解决方案。A和B具有相同的字段(ts、度量单位名称、度量单位计数)
这可能吗 是的。只需将流id(“下面的stream1”和“stream2”)添加到FieldsGroup调用:
BoltDeclarer bd = builder.setBolt(AGGREGATE_BOLT_ID, aggregateBolt, 5);
bd.fieldsGrouping((COUNT_BOLT_ID),
我很好奇在什么情况下需要使用setNumTasks函数。文档中说,默认情况下,每个执行者有一个任务
如果我有一个“昂贵”的db任务(调用外部dbs需要时间),在任何一方都有“快速”任务的情况下运行,我是否应该为此添加额外的任务
或者这是那种“试试看会发生什么”的情景吗?
任务数始终>=执行者数
可以更改执行器的数量(不终止拓扑),但必须遵守约束num tasks>=num executors。也就是说,如果您有比执行器更多的任务,您可以重新平衡您的拓扑,并给它更多的执行器
如何确定您需要多
我只是想知道我们是否能在暴风雨中写条件螺栓。
如果我有三个螺栓,第一个螺栓将工作,第二个螺栓将检查螺栓1执行是否正确,如果执行正确,则只有第三个螺栓应开始工作。我们可以尝试一下吗,如果是,请告诉我如何操作,如果不是,请说明原因。您尝试的操作不能通过使用不同的流id将螺栓链接在一起并在完成时从一个螺栓向另一个螺栓发送到该流id来完成吗
e、 g。
螺栓1从接收数据的任何位置接收数据。
螺栓2也从任何接收到数据的地方接收数据,但不开始工作。
螺栓1已完成工作,并向螺栓2发出一个表示“已完成”的元组。
java.lang.NoSuchMethodError:org.apache.curator.framework.api.CreateBuilder.creatingParentsIfNeeded()Lorg/apache/curator/framework/api/protectACLCreateModestratPathAndByteTable;在org.apache.storm.eventhubs.spout.ZookeeperStateStore.saveData(ZookeeperSt
我在玩Storm,我想知道Storm在聚合时在哪里指定(翻滚/滑动)窗口大小。例如,如果我们想在Twitter上找到前一小时的热门话题。我们如何指定螺栓应每小时返回一次结果?是否在每个螺栓内按程序进行?或者指定一个“窗口”是某种方式吗?添加一个并行度为1的新喷口,并让它发出一个空信号,然后使用Utils.sleep直到下一次(所有操作都在nextTuple中完成)。然后,使用所有分组将所有相关螺栓链接到该喷口,以便它们的所有实例都将收到相同的信号。免责声明:我用引用的Storm文章编写了趋势主题
这不是一个错误。当主管正在启动或主管试图生成工作进程以启动拓扑时,会记录此消息。您的主管流程最终将开始。如果未启动,则应该有其他日志消息来描述流程未启动的原因。ur主管日志中应该有错误。如果在主管日志中未看到错误,请检查stormUI以查看主管是否处于启用状态。如果不是这种情况,请检查我们的nimbus logscan,您可以在这方面提供帮助
2013-04-04 14:02:39 b.s.d.supervisor [INFO] 07a06309-95f5-423b-999b-f5913388
我正在尝试使用ApacheStorm解决一个问题。我有以下疑问
除了像execute()?如果可能,如何从execute()调用这样的函数
也可以在螺栓中添加“递归函数”类型的逻辑吗
当然,您可以向bolt添加任何方法,是的,它也可以是递归的。我不知道你所说的“如何从execute()调用这样一个函数”是什么意思——从那里调用它——这是一个常规方法:
public类MyBolt扩展了IRichBolt{
void prepare(Map stormConf、TopologyContext上下文、
如上所述,我希望一个螺栓只在一台主机上运行。因此,如果我将它的执行器编号设置为1,我可以实现我的目标吗?它在一台主机上运行,但如果工作进程崩溃,它很可能在另一台主机上运行。只是一般性的评论。你最近问了很多问题,但从未接受任何答案。如果您能将答案标记为已接受(如果合适)或澄清为什么答案不能解决您的问题,那将是一件好事。声誉也是如此,只有在给予信用的情况下才有效。
我在使用ApacheStorm和HDFS时遇到以下错误
Caused by: org.apache.hadoop.ipc.RemoteException: No lease on /user/test/xxx/ccc/bbb/value_fct_archive.csv (inode 5425306): File does not exist. [Lease. Holder: DFSClient_NONMAPREDUCE_-247167534_42, pendingcreates: 1]
at
我启动了storm cluster,所有一个nimbus和两个管理器都启动良好,我可以在“storm UI”上查看它们,然后我部署了示例拓扑“storm-opentsdb-2.0.0-SNAPSHOT.jar”
它已成功部署到集群上,但几分钟后,主管控制台将显示消息,并且Opentsdb中未插入任何数据
kill: sending signal to 23543 failed: No such process
kill: sending signal to 23615 failed: No su
这是一个默认配置,与示例中一样,没有任何更改。我只是想让基本的例子起作用
我试图运行Storm 1.2.2中的示例。我构建了storm starter项目,并尝试使用以下命令行执行:
storm jar target/storm-starter-1.2.2.jar org.apache.storm.starter.ExclamationTopology -local
但是,我得到以下例外情况:
apara:storm-starter aparansky$ storm jar target/st
虽然Apache Storm提供了几种度量类型,但我感兴趣的是拓扑度量(而不是集群度量或度量v2)。对于这些度量,消费者必须注册,例如:
topology.metrics.consumer.register:
- class: "org.apache.storm.metric.LoggingMetricsConsumer"
max.retain.metric.tuples: 0
parallelism.hint: 1
另见。
不幸的是,这些指标似乎有一个60
当我们将具有随机分组的螺栓连接到其前一个螺栓时,会得到IndexOutOfBoundsException
前任博尔特抛出了这个。
它表示8,因为后续螺栓有8个实例
有什么想法吗?你能检查一下你的螺栓是否收到了喷口本身的输入。当您试图从喷口本身发出一个空值时,可能会发生这种情况。结果是storm中的一个bug。您现在需要锁定发射
Caused by: java.lang.IndexOutOfBoundsException: Index: 8, Size: 8
at java
我已经从下载了孵化器风暴代码。现在,我尝试使用以下命令运行WordCountTopology:
mvn compile exec:java -Dstorm.topology=storm.starter.WordCountTopology
根据上记录的说明。但是,我得到以下错误:
ubuntu@ip-10-242-202-111:~/incubator-storm-master/examples/storm-starter$ mvn compile exec:java -Dstorm.topol
我不熟悉ApacheStorm,但我当然知道其目的是处理流数据。我的问题是:“流”的要求是什么,这样它就可以通过Storm使用萌芽进行处理?
在我的例子中,我有一个C++编写的应用程序,我想扩展它来生成流数据,可以从Storm中读取。但是我应该如何开始,如何为我的应用程序创建一个接口,流应该是什么样子
感谢您的帮助正如您所知,Storm具有喷口的概念,它从某个源读取数据并向其螺栓发出元组流。喷口可以被书写成任何形式,由你自己决定。现在有了一个从Kafka服务器读取数据的官方实现,但只要实现了它,
我正在尝试将storm的字数计算程序与kafka集成,因为我的制作人工作得很好,即它正在读取文本文件并将每一行作为消息发送,我可以在简单的消费者控制台中看到这些消息。
现在,为了将其与storm集成,即将这些消息/行发送到consumer spout,我刚刚用storm spout集成依赖项中的kafka spout替换了之前的storm spout of word count程序,该程序的其余部分是相同的,我正在尝试在eclipse中运行它,但它没有得到执行,我不知道问题出在哪里,甚至不知道我
我们正在使用ApacheStorm对一些传感器数据进行预处理。数据是这样的
我们的要求之一是检测连续的时间序列。例如,我们有4个数据,T1、T2、T3、T4,其中T4-T3大于1分钟,其余数据之间的差异小于1分钟,我们认为T1、T2、T3是一个连续的时间序列,T4是另一个时间序列的开始
我们的拓扑结构如下所示:
喷口-->数据编解码器螺栓-->时间序列检测螺栓
“数据编解码器螺栓”的逻辑相当复杂,因此我们将执行器编号设置为2。问题是时间序列检测螺栓需要按顺序处理数据,但并行“编解码器螺栓”任务能
我对ApacheStorm非常陌生,正在尝试建立一个多节点集群。我的动物园管理员和Nimbus在一台机器上运行,管理员在另一台机器上运行。在配置阶段,我将向主管提交拓扑。主管有1个喷嘴和1个螺栓
在我的集群设置中,机器之间的连接可能会丢失一段时间。那么,即使我的主管失去了与nimbus/zookeeper的连接,他们还会独立工作吗
问候,,
Remya如果主管与Zookeeper断开连接,主管及其工作进程将死亡。要防止这种情况,请以可靠的方式设置Zookeeper,即多节点部署
请参阅此处的“设
我有一个关于容错的问题。考虑字数=
在您给定的拓扑结构中,bolt“WordCount”可能有许多任务,“fieldsGroup”用于确保始终将相同的单词分配给相同的任务。
我的问题是,如果一些任务死了怎么办?据我所知,storm将尝试重新启动这些任务。但是重新启动时,存储在这些任务中的字数也会丢失。这是否意味着在其他任务或恢复的任务中,这些单词将从0开始?是。存储在Map counts=new HashMap()中的内部状态在失败时丢失,重新启动后,分配给失败任务的所有字的计数将在重新启动后为
我有一个从卡夫卡那里得到元组的拓扑结构
拓扑结构大致如下所示
topology.newStream("kafkaSpout", spout)
.shuffle()
.each(new Fields("str"), new Filter())
.parallelismHint(5)
.each(new Fields("str"), new Function(),
ne
就像标题一样,我想让工人在指定的主管上运行。现在storm随机运行一个不同的主管。
Storm提供了这个api吗
我的拓扑结构的一部分依赖于使用第三方API,该API在15分钟的窗口内对某些调用进行速率限制。最坏的情况是,利率限制将下降,螺栓将需要睡眠15分钟。不幸的是,我似乎不能让storm在一项任务上“睡”15分钟,但我希望我错了
或者,在storm中有没有一种方法可以绕过时间限制的任务?(有一个喷口给另一个喷口喂食吗?。我不知道有任何配置允许您这样做,并且没有为此提供配置条目
解决方法如您所建议。当您从第三方API获得输出时,将其送入专用喷口,然后喷口会将其排放到“回调”螺栓。您可能想查看一下tick
如何从风暴三叉戟中的同一个闪电发射到多个流
我有一个螺栓,它进行一些计算,根据计算结果,我想将一些值传递给一个流,将一些其他值传递给另一个流
在暴风雨中(不是三叉戟),我们可以通过以下方式实现:
// main stream
Stream stream = topology.each(...)
// stream 01
Stream stream1 = stream.each(...)
// stream 02
Stream stream2 = stream.each(...)
将流拆分为
我使用流和GET请求测试了GET和PUT,两者都工作得完美无缺。我有所有3个变种批,风暴和火花。Spark-used KinesisStreams-working Batch:您可以获取并放置-working Storm:计划使用KinesisSpout库。它在毫无线索地失败
2016-02-02 16:15:18 c.a.s.k.s.u.InfiniteConstantBackoffRetry [DEBUG] Caught exception of type com.amazonaws.Ama
我的目标是开发一个具有发布者和消费者的分布式应用程序,在这个应用程序中,我使用CEP来处理数据流,以向事件消费者生成事件通知
Esper和Apache Storm有什么区别
我能用ESPER实现风暴吗?什么时候我应该考虑将ESPER与风暴结合?< /P>
我很困惑,我认为Esper提供了相同的功能。Storm是一个分布式实时计算系统,通常可以用于任何目的,而Esper是一个and和事件关联引擎(复杂事件处理),因此Esper更具体。
以下是它们的一些用例:
Storm可以用于实时使用Twitt
我有一个storm拓扑正在运行,我在调试日志中得到了一条关于“storm队列上的容量不足,无法发出”的消息。此螺栓将消息发送到特定流上的另一个螺栓。下一步是尝试将数据写入数据库,因此速度较慢
这是否意味着next bolt的内部队列已满,因此不会发出更多消息?如何增加队列大小?当下一个bolt处理完消息后,这些消息还会被重新尝试吗?你能发布一些代码吗?最好带上你的spout+slow bolt+拓扑的一些代码,因为这将使我们能够为你提供一个漂亮的解决方案。但是如果它很慢:也许你需要“映射/减少”
从一个拓扑向另一个拓扑发送元组是可能的还是可以的
假设在一个拓扑中,一个特定的螺栓将元组存储到db中。在另一个拓扑中,我不想复制或创建用于存储元组的相同螺栓。那么从第二个拓扑我可以发射到第一个拓扑吗
-Hariprasad目前不支持此功能,您无法将元组从一个拓扑传递到另一个拓扑。
根据您的用例,为什么不使用订阅db bolt的另一个bolt(在同一拓扑中)而不是运行单独的拓扑呢?当您无法直接将元组从一个拓扑传递到另一个拓扑时,您可以使用队列系统(如Apache Kafka)来完成您所描述的任务。
我知道max.spout.pending是启用acking实现背压的一种简单方法。
我想了解,既然背压已经实施,我们是否仍然需要max.spout.pending来节流喷口
谢谢 从Storm 1.0.0开始,提供背压自动化,并可通过高/低水印(disruptor.highwatermark/disruptor.lowwatermark)配置螺栓的接收器缓冲区和螺栓的缓冲区大小(executor.receive/send.buffer.size)。
因此,喷口根据水印将元组节流/释放到螺栓
有关
我用卡夫卡风暴连接卡夫卡和风暴。我有3台服务器运行zookeeper、kafka和storm。kafka中有一个主题“test”,它有9个分区
在storm拓扑中,KafkaSpout executor的数量为9,默认情况下,任务的数量也应为9。“拔出”螺栓是唯一一个连接到卡夫卡斯波特(原木喷口)的螺栓
从用户界面来看,喷口的故障率非常高。但是,bolt中执行的消息数=发出的消息数-bolt中失败的消息数。当失败消息在开始时为空时,此等式几乎匹配
根据我的理解,这意味着螺栓确实收到了来自喷口的信
设置:
风暴0.10.0
Streamparse 2.1.4
Centos 6.5
Python 2.7(Streamparse需要它)
(是的,我知道它们已经过时了,但是我无法在Storm 1.0中获得任何东西,它刚刚在streamparse 3中被破坏)
当我尝试从我的nimbus服务器或拓扑结构中的另一台服务器启动“streamparse submit”时,会出现以下错误:
IOError:本地端口:6627已在使用中,无法打开ssh隧道
到nimbus.server.local:66
我在bolt中注册我的自定义度量,代码如下,context.registerMetric(“et”,_executedTuple,2),这段代码只计算bolt发出的元组数,我在拓扑中注册metricconsumer
但是我只是每10秒得到一次executedTuple,我只是认为度量应该每2秒发送一次(timeBucketSizeInSecs)
也许你知道如何解决这个问题 你能得到metric.log文件吗?你能得到metric.log文件吗?
我一直在努力理解storm架构,但我不确定我是否正确理解了它。我会尽可能准确地解释我认为的情况。请解释一下如果我错了什么是对的
初步想法:工人
表示Worker是一个进程,就像“Worker进程。每个Worker进程都是一个物理JVM”一样,但表示Worker是一个具有“Nimbus和Worker机器”的节点。该网站提到“主节点”和“工作节点”。那么,工作进程是一个进程还是一个物理节点(或者一个节点是一个进程)?因此,我认为有两件事:工作节点和工作进程
我相信是真的
发挥作用的实体
主节点=管
我们的ApacheStorm拓扑使用KafkaSpout监听来自Kafka的消息,并在执行大量映射/减少/丰富/聚合等操作后,最终将数据插入Cassandra。还有另一个kafka输入,在这里我们接收用户对数据的查询,如果topology找到响应,它会将其发送到第三个kafka主题。现在,我们想使用Junit编写E2E测试,在该测试中,我们可以直接以编程方式将数据插入拓扑,然后通过插入用户查询消息,我们可以在第三点断言在查询中收到的响应是正确的
为了实现这一点,我们考虑启动EmbeddedKaf
我有一个风暴拓扑,其中一个螺栓应该与ElasticSearch交互
public static Client client;
public static Settings settings;
public SomeBolt(){
settings =
ImmutableSettings.settingsBuilder().put("cluster.name", "elasticsearch").build();
client = new Transport
我想知道下面的功能是否适用于Storm拓扑或
有一些钩子可以模拟它们:
本地字段分组。有一个本地洗牌分组。局部字段
分组也可能是一个非常有用的特性,对于我们需要
不希望元组尽可能地在整个worker之间移动,但也要保持
字段分组的好处。我在Storm 0.9.0.1代码库中进行了更改
(非apache)并且它似乎正在工作
通过喷口显式取消元组的能力
查询元组状态的能力(通过其对象id)
元组的生存时间属性。框架应该抛弃
在生存期内未处理的任何元组
这些特性在某些用例中可能会有所帮助。或者功能可能
我在Linux Ubuntu中部署了一个nodejs->kafka->storm->Mongo。本来一切正常。然后我改变了storm worker中的方法,使storm worker处理消息的速度非常慢,每条消息大约1分钟,我注意到消息是从storm一次又一次地发送的。我回到原来的方法,一切都很好。(原始方法处理时间为每条消息90毫秒)
我猜这是风暴可靠性进入玩家。当消息未被确认或超时时,它会再次发送消息
如果我的猜测是正确的,如何配置此超时
如果我猜错了,为什么要发送两次或三次相同的消息?您可
我想在项目中使用ApacheStorm的TridentTopology。我发现很难理解storm.trident.Stream类中的.each()函数。以下是其教程中给出的示例代码,以供参考:
TridentTopology topology = new TridentTopology();
TridentState wordCounts =
topology.newStream("spout1", spout)
.each(new Fields("sen
我无法在Storm UI(在Ambari中)中查看拓扑摘要。UI挂起“加载拓扑摘要”消息。请帮我解决这个问题
Ambari版本:2.6.0.0
HDP:2.6.3.0
风暴:1.1.0
问候,
纳雷什
这是图片
我最近也遇到了这个问题。结果表明,ZK中存储的元数据与代理ID一起过期。您可以在此处阅读更多关于风暴以及如何解决的信息:看来您的风暴状态没有在zookeeper中更新。尝试从zookeeper中清除当前风暴状态,然后从ambari UI重新启动风暴。ambari 2.6.2已退出,因此可
ApacheStorm 2.0快照已经在github上标记了很长时间(几年了?),但无法下载,我也找不到ETA/路线图
我的理解是2.0删除了很多clojure并提高了性能(稍后我可能会错),但2.0是否已经死了?您应该查看邮件列表以获取新闻。看
关于Storm 2.0.0,最近有几位候选发行人正在进行投票。很可能不久就会发布。风暴2.0现在已经发布。谢谢。是的,我后来发现了(在意识到他们古老的谷歌团队已经移动之后)?*@storm.apache.org:lte=1M:%222.0%22。他们现
我的拓扑配置为使用14个工作线程,并且我当前在群集中有16个可用工作线程。
但是当我提交拓扑时,Storm UI上的“Worker Resources”部分显示所有14个Worker都已启动,但组件(拓扑组件)仅分配给7个。其余显示不适用(请参见下面的快照)
workers/supervisors日志文件未显示有关未为某些workers分配组件的原因的有意义的错误。
在过去的6个小时里,我一直在谷歌上搜索,但没有结果
我的环境:
ApacheStorm 2.1.0
动物园管理员3.4.9
一
我已经在我的机器上配置了Storm。动物园管理员、Nimbus和管理员运行正常。
现在我想为这场风暴提交一个拓扑图。
我正在尝试使用风暴罐。
但我不能提交。
有人能举个例子吗。
这将非常有帮助。
提前感谢:)答案在中,非常清楚。运行storm jar path/to/allmycode.jar org.me.MyTopology arg1 arg2 arg3(如果有,替换为项目名称和参数)。请确保您使用的是StormSubmitter对象,而不是LocalCluster。不幸的是,interne
我从克隆了storm starter,然后使用mvn clean install-DskipTests=true在本地构建了我的jar
以下是我得到的错误:
[ERROR] Failed to execute goal on project storm-starter: Could not resolve depen
dencies for project org.apache.storm:storm-starter:jar:0.10.0-SNAPSHOT: Could no
t find ar
我对Perfect建模和使用StORM(在我的例子中是MySQL StORM)有一些疑问。
假设我们有名为User和Note的模型,其中包含以下简单规则:
用户具有id、firstName、lastName、age(可选)
注释有id、标题、内容
用户可以有零个或多个注释
每个注释都属于一个用户
我的问题是:
StORM支持哪些数据类型
如何在数据库中设置age属性null-able
如何在用户和备注之间创建关系
大概是这样的:
class User {
var id: UUID
我们已经为这个问题奋斗了很长时间。简言之,我们的风暴拓扑在一段时间后以随机方式停止从喷口发出消息。我们有一个自动脚本,在主数据刷新活动完成后,该脚本每天在UTC 06:00重新部署拓扑
在过去两周内,我们的拓扑在UTC时间晚些时候(22:00到02:00之间)停止发送消息3次。只有在协调世界时06:00左右重新启动时,它才会联机
我已经搜索了很多答案和博客,但没有找到这里发生了什么。我们有一个未锚定的拓扑结构,这是我们3-4年前做出的选择。我们从0.9.2开始,现在是1.1.0
我已经检查了所有
在生产模式下运行storm word count拓扑时,如果集群中只有一个节点实例,那么如果指定
config.setNumWorkers(3)
据我所知,每个工作进程都在单独的JVM实例上运行?。请澄清。如果查看supervisor节点的storm.yaml(或此处的默认值),您将看到supervisor.slots.ports设置。此设置定义您的主管节点可以启动多少个工作进程(JVM),即主管提供的最大工作插槽数
在拓扑配置中设置的工作进程数指定希望拓扑运行的工作进程槽数
例如,如果您的su
正在使用Storm Crawler 1.10和Apache Storm 1.2.2。爬网过程正在进行时,如何更改辅助线程和获取线程的数量 不能动态更改获取线程的数量,与工作线程的数量相同。您只需停止拓扑,更改配置并重新启动即可。中断将是最小的,我们从它离开的地方开始爬网
如何为storm拓扑提供自定义配置?例如,如果我构建了一个连接到MySQL集群的拓扑,并且我希望能够在不重新编译的情况下更改需要连接到的服务器,我将如何做到这一点?我的首选是使用配置文件,但我担心的是该文件本身没有部署到集群,因此它不会运行(除非我对集群工作方式的理解有缺陷)。到目前为止,我所看到的在运行时将配置选项传递到storm拓扑中的唯一方法是通过命令行参数,但当您获得大量参数时,这就很麻烦了
一个想法是利用一个shell脚本将文件读入一个变量,并将该变量的内容作为字符串传递给拓扑结构,但
我是一个新的风暴,我开始与风暴使用该项目。在本项目中,有一个名为WordCountTopology的拓扑,用于构建拓扑的关键代码是:
builder.setBolt("split", new SplitSentence(), 8).shuffleGrouping("spout");
builder.setBolt("count", new WordCount(), 12).fieldsGrouping("split", new Fields("word"));
在WordCount bolt的
例如,假设您使用storm来聚合web访问开始和结束日期。会话从用户的第一次访问开始,在同一用户不活动30分钟后结束。这些数据在被收集时被实时传输到storm中。在30分钟的不活动后,您如何告诉storm发送数据?我不确定,但您可以在storm中查找拓扑、滴答声、元组、频率等属性。如在
勾选元组:通常需要一个螺栓以固定的间隔“执行某些操作”,比如刷新对数据库的写入。许多人一直在使用钟嘴的变体来发送这些滴答声。时钟嘴的问题在于,您无法在螺栓内部实现对滴答声的需求,因此,如果您忘记在拓扑中正确设置螺
我正在使用Trident storm并尝试在function prepare方法中启动一个网格实例。同一配置文件适用于本地集群。。当我在远程集群中提交它时,我得到了错误
代码:
错误
这可能是一个编译问题。试着做一个干净的构建。这可能是因为所有依赖类之间的.class文件不匹配
CompatibileClassChangeError扩展了LinkageError,它与编译子类后更改的基类引起的问题有关
更多信息:远程集群应用程序类路径中似乎有多个不兼容的Log4j jar版本(很可能,其中一个是
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 15 页