1. 程式人生 > >大資料:Windows下配置flink的Stream

大資料:Windows下配置flink的Stream

對於開發人員來說,最希望的是需要在windows中進行測試,然後把除錯好的程式放在叢集中執行。下面寫一個Socket,上面是監控本地的一個執行埠,來實時的提取資料。獲取視訊中文件資料及完整視訊的夥伴請加QQ群:947967114

下面是一段程式碼:

import org.apache.flink.api.java.utils.ParameterToolimportorg.apache.flink.streaming.api.scala._importorg.apache.flink.streaming.api.windowing.time.Timeobject SocketWindowWordCount {  def main(args: Array[String]): Unit = {    val  port:Int=try{      ParameterTool.fromArgs

(args).getInt("port")    }    catch{      casee:Exception=>{        System.out.print("Noport spacified.Please run 'SocketWindowWordCount'")        return      }  }    val env:StreamExecutionEnvironment=StreamExecutionEnvironment.getExecutionEnvironment
    val text=env.socketTextStream("localhost",port,'\n')    val windowWordCount=text.flatMap{w=>w.split("\\s+")}.map{w=>WordWithCount(w,1)}.      keyBy("word").timeWindow(Time.seconds(5),Time.seconds(1)).sum("count")    windowWordCount.print().setParallelism(1)    env.execute("Socket Window WordCount")   }}case class WordWithCount(word: String, count: Long){}

這個程式有幾個需要注意的。第一個org.apache.flink.streaming.api.windowing.time.Time是這個時間包的使用。第二個是org.apache.flink.streaming.api.scala._,不要直接引入org.apache.flink.streaming.api.scala.StreamExecutionEnvironment。

 

 

配置windows的nc埠,在網上下載nc.exe(https://eternallybored.org/misc/netcat/)

選擇版本:解壓放在一個指定的目錄上。然後在cmd環境中進入到這個目錄。獲取視訊中文件資料及完整視訊的夥伴請加QQ群:947967114

 

 

使用命令開始nc制定埠為9000(nc -L -p 9000 -v)

 

 

在IDEA中設定輸入引數:

 

 

指定埠--port 9000,然後執行

 

 

Cmd埠中輸入資料,在flink中可以看到實時的雲運算結果:

 

 

至此,flink在windows中的一個stream配置完成。獲取視訊中文件資料及完整視訊的夥伴請加QQ群:947967114