sparkStream中作为kafka的生产者

来源:互联网 发布:ubuntu搜狗安装错误 编辑:程序博客网 时间:2024/05/17 07:50

大家好:

  sparkStream中作为kafka的生产者的代码

package Traffic


import java.util.Properties


import kafka.producer.{KeyedMessage, Producer, ProducerConfig}
import org.apache.spark.{SparkConf, SparkContext}
import org.codehaus.jettison.json.JSONObject


/**
  * Created by Administrator on 2017/10/14.
  * 功能:交通项目的kafka的生产者
  *
  */
object KafkaEventProducer {
  def main(args: Array[String]): Unit = {


    //创建topic
    val topic="car_event"
    val brokers="192.168.17.108:9092"
    val props=new Properties()
    //把broker put进去
    props.put("metadata.broker.list",brokers)
    //把kafka编译器放进去
    props.put("serializer.class","kafka.serializer.StringEncoder")
   //配置kafka的config(配置)
    val kafkaconfig=new ProducerConfig(props)
    val producer=new Producer[String,String](kafkaconfig)
   //配置spark的config
    val conf=new SparkConf().setAppName("KafkaEventProducer").setMaster("local[2]")
    val sc=new SparkContext(conf)
    //从path中加载数据
//    val filePath="data/shuju.txt"
    val filePath="c://test//shuju.txt"
    //加载数据并进行切分
    val records=sc.textFile(filePath)
       .filter(!_.startsWith(";"))
          .map(_.split(",")).collect()
    //对数据进行预处理形成Json形式
    for(temp <-records)
      {
        val event=new JSONObject()
        //因为要put很多数据,这样看起来很规范
        event
          .put("camer_id",temp(0))    //相机编号
          .put("car_id",temp(2))      //车牌号
          .put("event_time",temp(4))  //时间
          .put("car_speed",temp(6))   //速度
          .put("car_speed",temp(13))  //车道编号
        //生产event信息 topic 是往哪个topic中生产数据 event.toString是生产的真正的内容
        producer.send(new KeyedMessage[String,String](topic,event.toString))
        println("Message Sent:  "+event)
        Thread.sleep(200) //休息200微秒


      }






  sc.stop()
  }
}


----样例数据以下所示: 仅仅粘贴出了两行

'310999003001', '3109990030010220140820141230292','00000000','','2017-08-20 14:09:35','0',255,'SN',  0.00,'4','','310999','310999003001','02','','','2','','','2017-08-20 14:12:30','2017-08-20 14:16:13',0,0,'2017-08-21 18:50:05','','',' '
'310999003102', '3109990031020220140820141230266','粤BT96V3','','2017-08-20 14:09:35','0',21,'NS',  0.00,'2','','310999','310999003102','02','','','2','','','2017-08-20 14:12:30','2017-08-20 14:16:13',0,0,'2017-08-21 18:50:05','','',' '

原创粉丝点击