• spark streaming 消费kafka数据


    1.在虚拟机启动zookeeper和kafka,新建topic test1,这里使用的topic 是test1。

    2.Scala程序

    要修改 3.定义 Kafka 参数  中的主机名称以及要消费的topic名称

    package scala.spark
    import org.apache.kafka.clients.consumer.{ConsumerConfig, ConsumerRecord}
    import org.apache.spark.SparkConf
    import org.apache.spark.streaming.dstream.{DStream, InputDStream}
    import org.apache.spark.streaming.kafka010.{ConsumerStrategies, KafkaUtils, LocationStrategies}
    import org.apache.spark.streaming.{Seconds, StreamingContext}
    
    object Kafka {
      def main(args: Array[String]): Unit = {
    
        //1.创建 SparkConf
        val sparkConf: SparkConf = new SparkConf().setAppName("ReceiverWordCount").setMaster("local[*]")
    
        //2.创建 StreamingContext
        val ssc = new StreamingContext(sparkConf, Seconds(3))
    
        //3.定义 Kafka 参数
        val kafkaPara: Map[String, Object] = Map[String, Object]( ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG ->
          "hadoop02:9092", ConsumerConfig.GROUP_ID_CONFIG -> "test1", "key.deserializer" ->
          "org.apache.kafka.common.serialization.StringDeserializer", "value.deserializer" ->
          "org.apache.kafka.common.serialization.StringDeserializer"
        )
    
        //4.读取 Kafka 数据创建 DStream
        val kafkaDStream: InputDStream[ConsumerRecord[String, String]] = KafkaUtils.createDirectStream[String, String](ssc,
          LocationStrategies.PreferConsistent, ConsumerStrategies.Subscribe[String, String](Set("test1"), kafkaPara))
    
        //5.将每条消息的 KV 取出
        val valueDStream: DStream[String] = kafkaDStream.map(record => record.value())
    
          //6. 计 算
        valueDStream.flatMap(_.split(" "))
          .map((_, 1))
          .reduceByKey(_ + _)
          .print()
    
        //7. 开 启 任 务 ssc.start() ssc.awaitTermination()
        ssc.start()
        ssc.awaitTermination()
      }
    }

    3.启动kafka生产者

     消费到了  好椰

  • 相关阅读:
    P2617 Dynamic Rankings 动态主席树
    P4338 [ZJOI2018]历史 LCT+树形DP
    P3348 [ZJOI2016]大森林
    P3613 睡觉困难综合征 LCT+贪心+位运算
    SP16549 QTREE6
    P3703 [SDOI2017]树点涂色 LCT维护颜色+线段树维护dfs序+倍增LCA
    U19464 山村游历(Wander) LCT维护子树大小
    P4219 [BJOI2014]大融合 LCT维护子树大小
    P2542 [AHOI2005]航线规划 LCT维护双连通分量
    P3950 部落冲突
  • 原文地址:https://www.cnblogs.com/ajinjinjin/p/15959874.html
Copyright © 2020-2023  润新知