Java 如何确定卡夫卡消息的主题
我有下面这样的代码从卡夫卡读取并保存到Elasticsearch,我正在使用spark streaming:Java 如何确定卡夫卡消息的主题,java,apache-spark,apache-kafka,spark-streaming,Java,Apache Spark,Apache Kafka,Spark Streaming,我有下面这样的代码从卡夫卡读取并保存到Elasticsearch,我正在使用spark streaming: JavaDStream<String> liness = messages.map(new Function<ConsumerRecord<String, String>, String>() { @Override public String call(ConsumerRecord<String, String&
JavaDStream<String> liness = messages.map(new Function<ConsumerRecord<String, String>, String>() {
@Override
public String call(ConsumerRecord<String, String> kafkaRecord) throws Exception {
System.out.println(kafkaRecord.topic() + kafkaRecord.value());
return kafkaRecord.value();
}
});
JavaEsSparkStreaming.saveJsonToEs(lines, "events/redict");
jssc.start();
我的问题是,我需要根据主题的名称使事件/重播动态化,我还能够在messages.map call中获取主题名称。但是,如何在此处添加动态?您可以通过为每个主题生成一个流,或将消息流过滤到事件和重播RDD中来添加动态
将这两个单独保存到适当的ES标记 如何将消费者记录映射到一个新对象,该对象由两个字段组成:值的字符串和取决于主题的值?如果您只想将Kakfa记录保存到Elastic,为什么不使用Logstash或Kafka Connect?谢谢,cricket我更喜欢Spark。是的,Dominik,这是一种方法,但是我正在寻找一种方法,我必须改变台面。所以你宁愿编程并将其部署到某种类型的Spark集群,然后使用ELK stack或Kafka中内置的工具?