Spark Streaming 数据接收优化

  • 时间:
  • 浏览:0

另外,务必让我系统设置 spark.streaming.receiver.maxRate。假设你启动了 N个 Receiver,这麼 你系统实际会接受到的数据不必超过 N*MaxRate,也很多我说,maxRate参数是针对每个 Receiver 设置的。

也很多我.我都都 尽量让数据都占用Spark 的Storage 内存。法律方法是把spark.streaming.blockInterval 调小点。当然也会造成一三个白副作用,很多我input-block 会多。每个Receiver 产生的的input-block数为: batchInterval* 4000/blockInterval。 这里假设你的batchInterval 是以秒为单位的。 blockInterval 其实问让我有啥影响。其实说白了,很多我为了避免GC的压力。实时计算有一三个白很问题报告 报告 报告 是GC。

这篇内容是此人 的很多经验,.我都都 用的事先还是建议好好理解外部的原理,不可照搬

kafkaDStreamsNum 有了你此人 定义的,希望有几次个Executor 启动Receiver 去接收kafka数据。我的经验值是 1/4 个Executors 数目。有过后数据都要做replication 一般,很多另一三个白内存最大还都要占到  1/2 的storage.

我发现在数据量很大的状态下,最容易挂掉的很多我Receiver所在的Executor了。 建议Spark Streaming团队最好是能将数据写入到多个BlockManager上。

一般在Spark Streaming中不建议把 Executor 的内存调的很多。对GC是个压力,大内存一FullGC比较可怕,很有过后会拖垮整个计算。 多Executor的容错性也会更好些。

从现在的API来看,是这麼 提供你这人 途径的。有过后Spark Streaming 提供了一并读多个topic的功能,每个topic是一三个白InputStream。 .我都都 还都要复用你这人 功能,具体代码如下: