Flink編程基礎(chǔ)/基本框架

Flink程序是對(duì)數(shù)據(jù)流,進(jìn)行各種分布式處理/轉(zhuǎn)換发绢。通過sources創(chuàng)建輸入的數(shù)據(jù)流(可以讀取文件备图,從kafka的topic讀取影所,或者內(nèi)存的collecitons)蹦肴;結(jié)果通過Sinks輸出,可以寫到本不是文件系統(tǒng)上猴娩,或者輸出到標(biāo)準(zhǔn)輸出阴幌。Flink程序可以獨(dú)立運(yùn)行,也可以嵌入到其它程序中運(yùn)行卷中;Flink可以在本機(jī)的JVM中執(zhí)行矛双,也可以提交到多機(jī)器的集群上執(zhí)行。

Flink程序分為批處理和流處理兩種蟆豫,批處理用來(lái)處理有限的數(shù)據(jù)集议忽,流處理用來(lái)處理持續(xù)的流數(shù)據(jù)。這兩種類型的基本編程模式是類似的十减,本別使用DataStream API和DataSet API栈幸,接下來(lái)基于DataStream API來(lái)介紹愤估。

Flink程序的五個(gè)部分:
1 獲取執(zhí)行環(huán)境
2 載入數(shù)據(jù)
3 對(duì)數(shù)據(jù)進(jìn)行處理/轉(zhuǎn)換
4 設(shè)置數(shù)據(jù)輸出方式
5 啟動(dòng)程序,開始執(zhí)行

下面以一個(gè)實(shí)際程序?yàn)槔齺?lái)說明速址,下面的程序的輸入是出租車司機(jī)的結(jié)單數(shù)據(jù)玩焰,輸出每個(gè)出租車司機(jī)的累積結(jié)單數(shù)量:

        ParameterTool params = ParameterTool.fromArgs(args);
        final String input = params.get("input", ExerciseBase.pathToRideData);

        final int maxEventDelay = 60;       // events are out of order by max 60 seconds
        final int servingSpeedFactor = 600; // events of 10 minutes are served every second

        // set up streaming execution environment
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);

        // start the data generator
        DataStream<TaxiRide> rides = env.addSource(new TaxiRideSource(input, maxEventDelay, servingSpeedFactor));

        // map each ride to a tuple of (driverId, 1)
        DataStream<Tuple2<Long, Long>> tuples = rides.map(new MapFunction<TaxiRide, Tuple2<Long, Long>>() {
                    @Override
                    public Tuple2<Long, Long> map(TaxiRide ride) throws Exception {
                        return new Tuple2<Long, Long>(ride.driverId, 1L) ;
                    }
        });

        // partition the stream by the driverId
        KeyedStream<Tuple2<Long, Long>, Tuple> keyedByDriverId = tuples.keyBy(0);

        // count the rides for each driver
        DataStream<Tuple2<Long, Long>> rideCounts = keyedByDriverId.sum(1);

        // we could, in fact, print out any or all of these streams
        rideCounts.print();

        // run the cleansing pipeline
        env.execute("Ride Count");
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市芍锚,隨后出現(xiàn)的幾起案子昔园,更是在濱河造成了極大的恐慌,老刑警劉巖并炮,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件默刚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡渣触,警方通過查閱死者的電腦和手機(jī)羡棵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)嗅钻,“玉大人皂冰,你說我怎么就攤上這事⊙ǎ” “怎么了秃流?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)柳弄。 經(jīng)常有香客問我舶胀,道長(zhǎng),這世上最難降的妖魔是什么碧注? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任嚣伐,我火速辦了婚禮,結(jié)果婚禮上萍丐,老公的妹妹穿的比我還像新娘轩端。我一直安慰自己,他們只是感情好逝变,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布基茵。 她就那樣靜靜地躺著,像睡著了一般壳影。 火紅的嫁衣襯著肌膚如雪拱层。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天宴咧,我揣著相機(jī)與錄音根灯,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛烙肺,可吹牛的內(nèi)容都是我干的芥驳。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼茬高,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼兆旬!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起怎栽,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤丽猬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后熏瞄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脚祟,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年强饮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了由桌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡邮丰,死狀恐怖行您,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剪廉,我是刑警寧澤娃循,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布乌叶,位于F島的核電站米者,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏西土。R本人自食惡果不足惜泉沾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一捞蚂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧跷究,春花似錦姓迅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)色冀。三九已至潭袱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锋恬,已是汗流浹背屯换。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人彤悔。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓嘉抓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親晕窑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抑片,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 原文鏈接:https://ci.apache.org/projects/flink/flink-docs-rele...
    寫B(tài)ug的張小天閱讀 11,043評(píng)論 0 5
  • Apache Flink(下簡(jiǎn)稱Flink)項(xiàng)目是大數(shù)據(jù)處理領(lǐng)域最近冉冉升起的一顆新星,其不同于其他大數(shù)據(jù)項(xiàng)目的諸...
    尼小摩閱讀 33,983評(píng)論 0 85
  • Apache Flink(下簡(jiǎn)稱Flink)項(xiàng)目是大數(shù)據(jù)處理領(lǐng)域最近冉冉升起的一顆新星杨赤,其不同于其他大數(shù)據(jù)項(xiàng)目的諸...
    Alukar閱讀 27,091評(píng)論 1 48
  • 簡(jiǎn)介 大數(shù)據(jù)是收集敞斋、整理、處理大容量數(shù)據(jù)集疾牲,并從中獲得見解所需的非傳統(tǒng)戰(zhàn)略和技術(shù)的總稱植捎。雖然處理數(shù)據(jù)所需的計(jì)算能力...
    x_no_one閱讀 1,926評(píng)論 0 3
  • 隨著大數(shù)據(jù) 2.0 時(shí)代悄然到來(lái),大數(shù)據(jù)從簡(jiǎn)單的批處理擴(kuò)展到了實(shí)時(shí)處理阳柔、流處理焰枢、交互式查詢和機(jī)器學(xué)習(xí)應(yīng)用。近年來(lái)涌...
    Java大生閱讀 2,100評(píng)論 0 6