我需要从Kafka主题中读取加密消息。我当前从主题中读取字符串的代码如下所示:
JavaInputDStream<ConsumerRecord<String, String>> istream1 = KafkaUtils.createDirectStream(
jssc,
LocationStrategies.PreferConsistent(),
ConsumerStrategies.<String, String>Subscribe(Arrays.asList(topics), kafkaParams)
);
我应该对此代码进行哪些更改以从kafka队列中读取字节数组,以确保加密数据在类型转换过程中不会被破坏。 虽然我从Spark编程指南中获取了上述代码,但我无法在KafkaUtils中找到此API: http://spark.apache.org/docs/2.0.1/api/java/org/apache/spark/streaming/kafka/KafkaUtils.html
答案 0 :(得分:0)
您可以看到Kafka Connection here的一个很好的例子。
但你想要的是从卡夫卡话题中取出ByteArray
。
此连接需要创建JavaPairInputDStream
,如下所示:
import org.apache.kafka.common.serialization.ByteArrayDeserializer
JavaPairInputDStream<String, Array[Byte]> messages = KafkaUtils.createDirectStream(
jssc,
String.class,
String.class,
StringDecoder.class,
ByteArrayDeserializer.class,
kafkaParams,
topicsSet
);