我使用以下代码创建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调用时挂起。如果我只创建一个流,一切都运行良好。记录信息没有任何例外。
我不知道应用程序为什么会卡在那里。这是否意味着没有足够的资源?
答案 0 :(得分:0)
您想尝试设置参数
SparkConf().set("spark.streaming.concurrentJobs", "5")