1. 程式人生 > 其它 >flink入門程式->WordCount

flink入門程式->WordCount

技術標籤:Flinkflink大資料

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")   }}

第一次分享,寫的不是很好,希望大家喜歡