scala实现 SparkStreaming 解析BinLog实时写入Mysql

import java.sql.{PreparedStatement, ResultSet}
import com.alibaba.fastjson.JSON
import kafka.serializer.StringDecoder
import org.apache.log4j.Logger
import org.apache.spark.SparkConf
import org.apache.spark.rdd.RDD
import org.apache.spark.streaming.dstream.InputDStream
import org.apache.spark.streaming.{Seconds, StreamingContext}
import we.com.util.{KafkaManager, MysqlPoolUtils}

/**
  * @author yangxin
  * 解析数据库binLog日志到Mysql数据库
  * 基本原理:
  * 1.读取日志解析对应的数据表的Log操作,先正则每条日志,找到匹配到的原始日志
  * 2.根据判断表中的主键或者关键字段选择是否解析或者跳过当前的日志
  * 3.将匹配到包含关键字段的日志数据,获取对数据操作的方式insert、update
  * 4.然后再去获取每个字段的含有,再将要执行的SQL语句加到批处理
  * 5.执行批处理,同步数据到数据库
  */
object BinLogToMysql {

  private val appName = "BinLogToMysqlService"
  private val LOG = Logger.getLogger(appName)
  // SparkStreaming  运行方式
  private val master = "yarn"
  // 数据表的正则表达式
  private val accountRegex = """(.*"tableName":"account".*)""".r

  // 处理RDD操作
  def processRdd(rdd: RDD[(String, String)]): Unit = 

你可能感兴趣的:(Scala,大数据挖掘与大数据应用案例)