带有多个Kafka流的Spark Streaming

时间:2015-06-17 18:46:43

标签: spark-streaming apache-kafka

我使用以下代码创建kafka流:

val streams = (1 to 5) map {i => 
    KafkaUtils.createStream[....](
              streamingContext,
              Map( .... ),
              Map(topic -> numOfPartitions),
              StorageLevel.MEMORY_AND_DISK_SER
              ).filter(...)
              .mapPartitions(...)
              .reduceByKey(....)
val unifiedStream = streamingContext.union(streams)
unifiedStream.foreachRDD(...)
streamingContext.start()

我为每个流提供不同的组ID。当我运行应用程序时,只接收部分kafka消息,执行程序在foreachRDD调用时挂起。如果我只创建一个流,一切都运行良好。记录信息没有任何例外。

我不知道应用程序为什么会卡在那里。这是否意味着没有足够的资源?

1 个答案:

答案 0 :(得分:0)

您想尝试设置参数

SparkConf().set("spark.streaming.concurrentJobs", "5")