当前位置: 首页 > 知识库问答 >
问题:

spark:spark流媒体中的接收器是一个瓶颈吗?

鲁鹏
2023-03-14

我想了解接收器在火花流中是如何工作的。根据我的理解,将有一个接收器任务运行在执行器中,收集数据并保存为RDD的。当调用start()时,接收器开始读取。需要澄清以下内容。

    null

想知道火花流和接收器的解剖。

共有1个答案

钮巴英
2023-03-14

我将根据我对Kafka接收器的经验来回答,这似乎或多或少类似于Kinesis中的情况。

火花流作业开始多少接收器?。多个或一个。

您打开的每个接收器都是一个连接。在Kafka中,如果要从多个分区并发读取,需要打开多个接收器,并通常将它们合并在一起。

接收器是按推式实现还是按拉式实现?

拉。在Spark Streaming中,每个批处理间隔(在创建StreamingContext时指定)从Kafka中提取数据。

广泛的问题。看情况.如果您的批处理间隔很长,并且只有一个接收方,您的积压可能会开始填满。这主要是跟踪和错误,直到你在流媒体工作中达到最佳平衡。

为了达到并行度,应该跨辅助节点对数据进行分区。因此,对于流数据,数据是如何在节点之间分布的。

正如我前面所说的,您可以通过向基础数据源打开多个接收器来创建并发性。此外,在读取数据后,可以使用标准的Spark机制对数据进行重新分区。

如果基于批处理时间间隔在一个新节点上形成了新的RDD,那么在提交作业后,SparkContext如何将转换函数序列化到该节点。

与序列化阶段中的每个任务的方式相同,它使用所选的序列化器并通过网络发送数据。我不太明白你的意思。

发射接收器的数量可以由参数控制吗?

是的,您可以有一个配置参数来确定您打开的接收器的数量。这样的代码可以如下所示:

// This may be your config parameter
val numStreams = 5
val kafkaStreams = (1 to numStreams).map { i => KafkaUtils.createStream(...) }

val unifiedStream = streamingContext.union(kafkaStreams)
unifiedStream.print()
 类似资料:
  • 我试图使用Apache Flume从Twitter获取一些数据,然后存储在HDFS,但是我遇到了一些问题 这是我的< code>flume-env.sh 这是我的 我正在运行这个命令 但我有这个例外: 有人可以帮助我吗?我尝试了搜索解决方案,但没有任何解决我的问题

  • 我已经使用spring boot、webflux和r2dbc建立了一个示例项目。我已经能够将行从postgres db表流式传输到客户端。 此服务器实现上是否存在内存瓶颈(用于存储查询结果)?行是否通过? PS我并不是在这方面宣称任何级别的质量,我知道分页等都是必不可少的,只是想知道db查询如何与反应式框架交互。

  • 本文向大家介绍简述HBase的瓶颈相关面试题,主要包含被问及简述HBase的瓶颈时的应答技巧和注意事项,需要的朋友参考一下 解答: HBase的瓶颈就是硬盘传输速度。HBase的操作,它可以往数据里面insert,也可以update一些数据,但update的实际上也是insert,只是插入一个新的时间戳的一行。Delete数据,也是insert,只是insert一行带有delete标记的一行。Hb

  • 我有一条这样的小溪和两个水槽,但一次只使用一个: 或 我们使用哪个接收器是可配置的,但是如果我并行使用两个接收器怎么办?我该怎么做? 我想到了水槽。合并,但它也需要合并策略,我不想以任何方式合并这些汇的结果。我真的不关心它们,所以我只想通过HTTP将相同的数据发送到某个endpoint,同时将它们发送到数据库。Sink combine与broadcast非常相似,但从头开始实现广播会降低代码的可读

  • 我正在使用Android Media Player从我的服务器播放音乐。可以使用MediaPlayer将播放音频保存到存储吗?

  • 这是因为检查点只存储了其中一个数据流的偏移量吗?浏览Spark结构流文档,似乎可以在Spark 2.2或>中进行流源的联接/联合