我们当前正在使用Spark Streaming将Kafka消息接收到HDFS中。到目前为止,我们为每个主题生成了一个完整的Spark工作。
由于某些主题的消息很少产生(平均每天1条消息),因此我们正在考虑组织资源池的信息提取。
这个想法是避免为这个“不频繁的”主题创建一个完整的容器(和相关资源)。实际上,Spark Streaming在输入中接受主题列表,因此我们正在考虑使用此功能,以使单项工作消耗所有这些主题。
你们认为暴露的是一种好策略吗?我们还考虑了批量摄取,但是我们希望保持实时行为,因此我们排除了此选项。你有什么建议吗?
如果在偏移一致性等方面出现故障,Spark Streaming是否可以很好地处理多个主题作为源?
谢谢!
答案 0 :(得分:1)
我认为Spark应该能够很好地处理多个主题,因为它们很长时间以来就对此提供了支持,是的,Kafka connect不是融合的API。 Confluent确实为其集群提供了连接器,但您也可以使用它。您可以看到Apache Kafka也具有Connect API的文档。
使用Apache版本的Kafka并不难,但是您可以使用它。
https://kafka.apache.org/documentation/#connectapi
此外,如果您在一次Spark Streaming工作中选择多个kafka主题,您可能需要考虑不创建小文件,因为您的频率似乎很少。