1 Flink簡(jiǎn)介
背景介紹
第一代引擎:MR
第二代引擎:Tez
第三代引擎:Spark
第四代引擎:Flink
純實(shí)時(shí)計(jì)算引擎較少烂完、流批統(tǒng)一引擎沒有??疮绷?
做一個(gè)流批統(tǒng)一的計(jì)算引擎
定義
Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. Flink has been designed to run in all common cluster environments, perform computations at in-memory speed and at any scale.
Apache Flink是一個(gè)框架和分布式處理引擎,用于對(duì)無界和有界數(shù)據(jù)流進(jìn)行有狀態(tài)計(jì)算嚣潜。
發(fā)展歷程
2008冬骚,柏林理工大學(xué)一個(gè)研究性項(xiàng)目Stratosphere,Next Generation Big Data Analytics Platform(目標(biāo)是建立下一代大數(shù)據(jù)分析引擎)懂算; 2014-04-16只冻,Stratosphere成為Apache孵化項(xiàng)目,從Stratosphere 0.6開始计技,正式更名為Flink喜德。由Java語(yǔ)言編寫; 2014-08-26垮媒,F(xiàn)link 0.6發(fā)布舍悯; 2014-11-04,F(xiàn)link 0.7.0發(fā)布涣澡,介紹了最重要的特性:Streaming API贱呐; 2016-03-08,F(xiàn)link 1.0.0入桂,支持Scala奄薇; 2016-08-08,F(xiàn)link 1.1.0抗愁; 2017-02-06馁蒂,F(xiàn)link 1.2.0呵晚; 2017-11-29,F(xiàn)link 1.4.0沫屡; 2018-05-25饵隙,F(xiàn)link 1.5.0; 2018-08-08沮脖,F(xiàn)link 1.6.0金矛; 2018-11-30,F(xiàn)link 1.7.0勺届; 2019-02-15驶俊,F(xiàn)link 1.7.2; 2019-04-09免姿,F(xiàn)link 1.8.0饼酿; 2019-07-10,F(xiàn)link 1.8.1胚膊; 2019-09-12故俐,F(xiàn)link 1.8.2; 2019-08-22紊婉,F(xiàn)link 1.9.0药版; 2019-10-18,F(xiàn)link 1.9.1喻犁; 2020-02-11刚陡,F(xiàn)link 1.10.0; 2020-05-08株汉,F(xiàn)link 1.10.1-rc3;
2020-07歌殃,F(xiàn)link 1.11.1乔妈;
2019年初,阿里收購(gòu)flink產(chǎn)品所屬公氓皱;不久必然會(huì)升級(jí)到2.x路召。
為什么選擇flink
流式數(shù)據(jù)更為真實(shí)地反映了我們的生活方式
流批計(jì)算融合
基于事件進(jìn)行純實(shí)時(shí)計(jì)算(連續(xù)事件處理)
應(yīng)用場(chǎng)景:
純實(shí)時(shí)計(jì)算的指標(biāo)(實(shí)時(shí)數(shù)倉(cāng)) --------
監(jiān)控和風(fēng)控的也會(huì)用到它 ------
===
Event-driven Applications Stream & Batch Analytics Data Pipelines & ETL
由上可知,flink也常用于離線和實(shí)時(shí)數(shù)倉(cāng)中2ú摹9傻!重溫下數(shù)倉(cāng)架構(gòu)演變M⑶N椤!
首先我們來看看數(shù)倉(cāng)架構(gòu)演變(借用阿里云數(shù)倉(cāng)架構(gòu))隙轻。演變?nèi)缦聢D:
離線數(shù)倉(cāng)架構(gòu):
Lambda架構(gòu):實(shí)時(shí)和離線計(jì)算融于一體埠帕。
Kappa架構(gòu):Lambda架構(gòu)的簡(jiǎn)化版本垢揩,去掉其離線部分。
flink認(rèn)為批次也是實(shí)時(shí)的特例A泊伞H蕖!
2 Flink的安裝部署
下載地址:
https://flink.apache.org/downloads.html
部署模式:
提交模式:
- in Session Mode, ===>基于yarn
- in a Per-Job Mode, or ===>基于yarn
- in Application Mode.
====>
- Local Mode
2.1呐籽、單機(jī)模式
flink的local模式運(yùn)行在單個(gè)jvm中锋勺。同時(shí)local方便快速測(cè)試。
安裝方式:
需求:
- Java 1.8.x or higher,
- ssh
1狡蝶、下載
2庶橱、解壓
[root@hadoop01 local]# tar -zxvf /home/flink-1.9.1-bin-scala_2.11.tgz -C /usr/local/
[root@hadoop01 local]# cd ./flink-1.9.1/
3、配置環(huán)境變量
export FLINK_HOME=/usr/local/flink-1.9.1/
export PATH=$PATH:$JAVA_HOME/bin:$ZK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$KAFKA_HOME/bin:$FLINK_HOME/bin:
4牢酵、刷新環(huán)境變量
[root@hadoop01 flink-1.9.1]# source /etc/profile
[root@hadoop01 flink-1.9.1]# which flink
5悬包、啟動(dòng)測(cè)試
./bin/start-cluster.sh
6、測(cè)試:
jps
訪問web地址:http://hadoop01:8081
啟動(dòng)流作業(yè):
監(jiān)控輸入數(shù)據(jù)
[root@hadoop01 flink-1.9.1]# nc -l 6666
lorem ipsum
ipsum ipsum ipsum
bye
啟動(dòng)job
[root@hadoop01 flink-1.9.1]# ./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 6666
監(jiān)控結(jié)果
[root@hadoop01 ~]# tail -f /usr/local/flink-1.9.1/log/flink-*-taskexecutor-*.out
lorem : 1
bye : 1
ipsum : 4
啟動(dòng)批次作業(yè):
[root@hadoop01 flink-1.9.1]# flink run ./examples/batch/WordCount.jar --input /home/words --output /home/2002/out/00
Starting execution of program
Program execution finished
Job with JobID 8b258e1432dde89060c4acbac85f57d4 has finished.
Job Runtime: 3528 ms
web控制臺(tái)如下圖: