第二章flink快速简单上手

  • 搭建 maven 工程 Flink
  • pom 文件
  • 添加 scala 框架 和 scala 文件夹
  1. 批处理 wordcount 
  2. 流处理 StreamWordCount

 pom 文件



    4.0.0

    com.lxh
    flink
    1.0-SNAPSHOT
    
        
            apache.snapshots
            Apache Development Snapshot Repository
            https://repository.apache.org/content/repositories/snapshots/
            
                false
            
            
                true
            
        
    

    
        UTF-8
        1.10.0
        2.12
        2.12.12
    

    
        
        
        
            org.apache.flink
            flink-scala_${scala.binary.version}
            ${flink.version}
            
        
        
            org.apache.flink
            flink-streaming-scala_${scala.binary.version}
            ${flink.version}
            
        

        
            org.apache.flink
            flink-table-planner_2.12
            1.10.0
        
        
            org.apache.flink
            flink-table-planner-blink_2.12
            1.10.0
        
        
            org.apache.flink
            flink-csv
            1.10.0
        

        
            org.apache.flink
            flink-connector-kafka-0.11_2.12
            1.10.0
        


        
            org.apache.bahir
            flink-connector-redis_2.11
            1.0
        

        
            org.apache.flink
            flink-connector-elasticsearch7_2.12
            1.10.0
        

        
            mysql
            mysql-connector-java
            5.1.44
        

        
        
            org.scala-lang
            scala-library
            ${scala.version}
            
        
        
            org.apache.flink
            flink-statebackend-rocksdb_2.12
            1.10.0
        

        


        
            org.apache.flink
            flink-connector-kafka-0.10_${scala.binary.version}
            ${flink.version}
        

        
        
        
            org.slf4j
            slf4j-log4j12
            1.7.7
            runtime
        
        
            log4j
            log4j
            1.2.17
            runtime
        
    

    
        
            
            
                net.alchim31.maven
                scala-maven-plugin
                3.2.2
                
                    
                        
                        
                            testCompile
                        
                    
                
            

        
    

添加 scala 框架 和 scala 文件夹

第二章flink快速简单上手_第1张图片

批处理 wordcount 

object wordCount {
  def main(args: Array[String]): Unit = {
    //创建执行环境
    val env = ExecutionEnvironment.getExecutionEnvironment

    //从文件读取数据
    var inputPath= "D:\\flink\\src\\main\\resources\\hello.txt"
    var inputDataSet=env.readTextFile(inputPath)

    //分词之后,对单词进行 groupby 分组,然后用 sum 进行聚合
    val wordCountDataSet =inputDataSet.flatMap(_.split(" "))
      .map( (_,1) )
      .groupBy(0)
      .sum(1)


    //打印输出
    wordCountDataSet.print()
  }
}

我的文件放在这里 

第二章flink快速简单上手_第2张图片

运行wordCount 控制台打印内容

第二章flink快速简单上手_第3张图片

注意: Flink 程序支持 java 和 scala 两种语言,这里以scala语言为主
流处理 StreamWordCount
object StreamWordCount {
  def main(args: Array[String]): Unit = {
    val params =ParameterTool.fromArgs(args);
    val hostname:String = params.get("hostname")
    val port:Int = params.getInt("port")
    //创建一个流处理的执行环境
    val env = StreamExecutionEnvironment.getExecutionEnvironment;


    //接收socket数据流
    val textDataStream = env.socketTextStream(hostname,port)

    //逐一读取数据流,打散之后进行wordcount
    val wordCountDateStream = textDataStream.flatMap(_.split("\\s"))
      .filter(_.nonEmpty)
      .map( (_,1) )
      .keyBy(0)
      .sum(1)

      //打印输出
    wordCountDateStream.print().setParallelism(1)
   /* wordCountDateStream.writeAsCsv()*/
    //执行任务
    env.execute("Stream word count job")
  }
}

设置启动参数

测试——在 linux 系统中用 netcat 命令进行发送测试。
nc -lk 7777

运行项目StreamWordCount 在linux 系统中输入

第二章flink快速简单上手_第4张图片

控制台打印内容

第二章flink快速简单上手_第5张图片

写博客记录学习之路 还望指点

你可能感兴趣的:(大数据flink学习,flink,大数据)