flink入門程式->WordCount
阿新 • • 發佈:2020-12-12
flink入門程式->WordCount
1、Flink程式設計模型
Flink提供了不同級別的程式設計抽象,通過呼叫抽象的資料集呼叫運算元構建DataFlow就可以實現對分散式的資料進行流式計算和離線計算,DataSet是批處理的抽象資料集,DataStream是流式計算的抽象資料集,他們的方法都分別為Source、Transformation、Sink。
(1)、Source主要負責資料的讀取。
(2)、Transformation主要負責對資料的轉換操作。
(3)、Sink負責最終計算好的結果資料輸出。
2、DataStream實時wordcount
import org.apache.flink.streaming.api.scala._
object WordCount {
def main(args: Array[String]): Unit = {
val env = StreamExecutionEnvironment.getExecutionEnvironment val lines: DataStream[String] = env.socketTextStream("ip",9092) val words: DataStream[String] = lines.flatMap(_.split(" ")) val wordWithOne: DataStream[(String, Int)] = words.map((_,1)) val keyedData: KeyedStream[(String, Int), String] = wordWithOne.keyBy(_._1) val sumData: DataStream[(String, Int)] = keyedData.sum(1) sumData.print() env.execute("WordCountDataStream") }}
3、DataSet 離線wordcount
import org.apache.flink.api.scala._
object WordCountDataSet{
def main(args: Array[String]): Unit = {
val env = ExecutionEnvironment.getExecutionEnvironment val word: DataSet[Int] = env.fromElements(1,2,3,4,5,6,7,8,9) val sink: DataSet[Int] = word.map(x=>x*10) sink.print() env.execute("WordCountDataSet") }}
第一次分享,寫的不是很好,希望大家喜歡