![](/img/trans.png)
[英]Scala: Error reading Kafka Avro messages from spark structured streaming
[英]Reading from Kafka with Scala Spark2 Streaming
我需要连接到 Kafka 并从中读取数据(之后我必须在 ElasticSearch 数据库中写入),但现在,我只想读取和打印数据..
我是 Kafka 和 Scala 的新手,在互联网上阅读我编写了以下代码:
//spark
import org.apache.spark._
import org.apache.spark.streaming._
//kafka
import org.apache.kafka.clients.consumer.ConsumerRecord
import org.apache.kafka.common.serialization.StringDeserializer
import org.apache.spark.streaming.kafka010._
import org.apache.spark.streaming.kafka010.LocationStrategies.PreferConsistent
import org.apache.spark.streaming.kafka010.ConsumerStrategies.Subscribe
object Main extends App{
val master = "local[2]"
val hostname = ""
val conf = new SparkConf().setAppName("KafkaConnection").setMaster(master)
val sc = SparkContext.getOrCreate(conf)
val ssc = new StreamingContext(sc, Seconds(1))
val kafkaParams = Map[String, Object](
"bootstrap.servers" -> "localhost:9092,anotherhost:9092",
"key.deserializer" -> classOf[StringDeserializer],
"value.deserializer" -> classOf[StringDeserializer],
"group.id" -> "IRC",
"auto.offset.reset" -> "latest",
"enable.auto.commit" -> (false: java.lang.Boolean)
)
val topics = Array("topicA", "topicB")
val stream = KafkaUtils.createDirectStream[String, String](
ssc, PreferConsistent, Subscribe[String, String](topics, kafkaParams))
stream.map(record => (record.key, record.value))
val offsetRanges = Array(
// topic, partition, inclusive starting offset, exclusive ending offset
OffsetRange("test", 0, 0, 100),
OffsetRange("test", 1, 0, 100)
)
val rdd = KafkaUtils.createRDD[String, String](
ssc, kafkaParams, offsetRanges, PreferConsistent)
}
但我不知道如何继续。 我现在需要什么? 另外,您知道我可以用来阅读的任何公共 Kafka Broker/主题吗?
先感谢您!
我现在需要什么?
尝试运行代码。 spark-submit
或运行 main 方法。
你知道我可以用来阅读的任何公共 Kafka Broker/topic 吗?
那将是不安全的,所以不。 按照 Kafka 快速入门官方指南在本地启动您自己的经纪人。
您的代码当前从名为test
的主题中读取
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.