首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Spark中的类风暴结构

问Apache Spark中的类风暴结构
EN

Stack Overflow用户
提问于 2015-09-24 15:00:47
回答 1查看 198关注 0票数 4

您知道在Apache Storm中,您可以让Spout将数据流式传输到多个螺栓。有没有办法在Apache Spark中做类似的事情?

我基本上希望有一个程序从Kafka队列中读取数据,并将其输出到两个不同的程序,然后这两个程序可以用自己的不同方式处理它。

具体地说,将有一个读取器程序从Kafka队列中读取数据并将其输出到两个程序x和y。x将处理数据以计算一种类型的指标(在我的情况下,它将计算用户活动),而y将计算另一种类型的指标(在我的情况下,这将是基于不同设备的检查活动)。

有人能告诉我这是怎么在Spark中实现的吗?

EN

回答 1

Stack Overflow用户

发布于 2015-09-24 17:22:41

为什么不简单地创建两个拓扑呢?

  1. 这两个拓扑都有从kafka主题中读取的内容(是的,您可以有多个拓扑从同一主题中读取内容;我在生产系统上运行此内容)。确保您使用不同的spout配置,否则kafka-zookeper会将两个拓扑视为相同的。请看一下文档here.

Spoutconfig是KafkaConfig的一个扩展,它支持带有ZooKeeper连接信息的附加字段,并用于控制特定于KafkaSpout的行为。Zkroot将被用作根来存储消费者的偏移量。id应该唯一地标识您的spout。

代码语言:javascript
复制
public SpoutConfig(BrokerHosts hosts, String topic, String zkRoot, String id);

  1. 在拓扑x中实现程序x,在拓扑y中实现程序y。

另一种选择是有两个螺栓的图形订阅从相同的喷嘴,但IMHO这不是最优的,因为失败的元组(可能只在一个图形中失败)将被重放到两个图形中,如果它们只在一个图形中失败的事件;因此一些kafka消息将结束被处理两次,使用两个分离的拓扑结构您避免了这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32755265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档