Flink學(xué)習(xí)筆記:Flink開發(fā)環(huán)境搭建

本文為《Flink大數(shù)據(jù)項目實戰(zhàn)》學(xué)習(xí)筆記,想通過視頻系統(tǒng)學(xué)習(xí)Flink這個最火爆的大數(shù)據(jù)計算框架的同學(xué)共屈,推薦學(xué)習(xí)課程:

Flink大數(shù)據(jù)項目實戰(zhàn):http://t.cn/EJtKhaz

1. 創(chuàng)建Flink項目及依賴管理

1.1創(chuàng)建Flink項目

官網(wǎng)創(chuàng)建Flink項目有兩種方式:

https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/java_api_quickstart.html

方式一:

mvn archetype:generate \

-DarchetypeGroupId=org.apache.flink \

-DarchetypeArtifactId=flink-quickstart-java\

-DarchetypeVersion=1.6.2

方式二

$ curlhttps://flink.apache.org/q/quickstart.sh | bash -s 1.6.2

這里我們?nèi)匀皇褂玫谝环N方式創(chuàng)建Flink項目输硝。

打開終端今瀑,切換到對應(yīng)的目錄,通過maven創(chuàng)建flink項目

mvn archetype:generate-DarchetypeGroupId=org.apache.flink -DarchetypeArtifactId=flink-quickstart-java?-DarchetypeVersion=1.6.2

項目構(gòu)建過程中需要輸入groupId,artifactId橘荠,version和package

Flink項目創(chuàng)建成功

打開IDEA工具屿附,點擊open。

選擇剛剛創(chuàng)建的flink項目

Flink項目已經(jīng)成功導(dǎo)入IDEA開發(fā)工具

通過maven打包測試運行

mvn clean package

刷新target目錄可以看到剛剛打包的flink項目

1.2. Flink依賴

Core Dependencies(核心依賴):

1.核心依賴打包在flink-dist*.jar里

2.包含coordination,

networking, checkpoints, failover, APIs, operations (such as windowing),

resource management等必須的依賴

注意:核心依賴不會隨著應(yīng)用打包(provided)

3.核心依賴項盡可能小哥童,并避免依賴項沖突

Pom文件中添加核心依賴

org.apache.flink

flink-java

1.6.2

provided

org.apache.flink

flink-streaming-java_2.11

1.6.2

provided

注意:不會隨著應(yīng)用打包挺份。

User Application Dependencies(應(yīng)用依賴):

connectors, formats, or libraries(CEP, SQL,

ML)、

注意:應(yīng)用依賴會隨著應(yīng)用打包(scope保持默認(rèn)值就好)

Pom文件中添加應(yīng)用依賴

org.apache.flink

flink-connector-kafka-0.10_2.11

1.6.2

注意:應(yīng)用依賴按需選擇贮懈,會隨著應(yīng)用打包匀泊,可以通過Maven Shade插件進行打包。

1.3. 關(guān)于Scala版本

Scala各版本之間是不兼容的(你基于Scala2.12開發(fā)Flink應(yīng)用就不能依賴Scala2.11的依賴包)朵你。

只使用Java的開發(fā)人員可以選擇任何Scala版本各聘,Scala開發(fā)人員需要選擇與他們的應(yīng)用程序的Scala版本匹配的Scala版本。

1.4. Hadoop依賴

不要把Hadoop依賴直接添加到Flink application抡医,而是:

export HADOOP_CLASSPATH=`hadoop classpath`

Flink組件啟動時會使用該環(huán)境變量的

特殊情況:如果在Flink application中需要用到Hadoop的input-/output format躲因,只需引入Hadoop兼容包即可(Hadoop compatibility wrappers)

org.apache.flink

flink-hadoop-compatibility_2.11

1.6.2

1.5 Flink項目打包

Flink 可以使用maven-shade-plugin對Flink maven項目進行打包,具體打包命令為mvn clean package忌傻。

2. 自己編譯Flink

2.1安裝maven

1.下載

到maven官網(wǎng)下載安裝包大脉,這里我們可以選擇使用apache-maven-3.3.9-bin.tar.gz。

2.解壓

將apache-maven-3.3.9-bin.tar.gz安裝包上傳至主節(jié)點的水孩,然后使用tar命令進行解壓

tar -zxvf apache-maven-3.3.9-bin.tar.gz

3.創(chuàng)建軟連接

ln -s apache-maven-3.3.9 maven

4.配置環(huán)境變量

vi ~/.bashrc

export MAVEN_HOME=/home/hadoop/app/maven

export PATH=$MAVEN_HOME/bin:$PATH

5.生效環(huán)境變量

source ~/.bashrc

6.查看maven版本

mvn –version

7. settings.xml配置阿里鏡像

添加阿里鏡像

?????????????????? nexus-osc

?????????????????? *

?????????????????? Nexusosc

?????????????????? http://maven.aliyun.com/nexus/content/repositories/central

2.2安裝jdk

編譯flink要求jdk8或者以上版本镰矿,這里已經(jīng)提前安裝好jdk1.8,具體安裝配置不再贅敘俘种,查看版本如下:

[hadoop@cdh01 conf]$ java -version

java version "1.8.0_51"

Java(TM) SE Runtime Environment (build1.8.0_51-b16)

Java HotSpot(TM) 64-Bit Server VM (build25.51-b03, mixed mode)

2.3下載源碼

登錄github:https://github.com/apache/flink秤标,獲取flink下載地址:https://github.com/apache/flink.git

打開Flink主節(jié)點終端,進入/home/hadoop/opensource目錄安疗,通過git

clone下載flink源碼:

gitclonehttps://github.com/apache/flink.git

錯誤1:如果Linux沒有安裝git抛杨,會報如下錯誤:

bash:git: command not found

解決:git安裝步驟如下所示:

1.安裝編譯git時需要的包(注意需要在root用戶下安裝)

yuminstall curl-devel expat-devel gettext-devel openssl-devel zlib-devel

yuminstall? gcc perl-ExtUtils-MakeMaker

2.刪除已有的git

yumremove git

3.下載git源碼

先安裝wget

yum -yinstall wget

使用wget下載git源碼

wgethttps://www.kernel.org/pub/software/scm/git/git-2.0.5.tar.gz

解壓git

tar xzfgit-2.0.5.tar.gz

編譯安裝git

cdgit-2.0.5

makeprefix=/usr/local/git all

sudomake prefix=/usr/local/git install

echo"export PATH=$PATH:/usr/local/git/bin" >> ~/.bashrc

source~/.bashrc

查看git版本

git –version

錯誤2:git clonehttps://github.com/apache/flink.git

Cloninginto 'flink'...

fatal:unable to access 'https://github.com/apache/flink.git/': SSL connect error

解決:

升級 nss 版本:yum updatenss

2.4切換對應(yīng)flink版本

使用如下命令查看flink版本分支

git tag

切換到flink對應(yīng)版本(這里我們使用flink1.6.2)

git checkout release-1.6.2

2.5編譯flink

進入flink 源碼根目錄:/home/hadoop/opensource/flink,通過maven編譯flink

mvn clean install -DskipTests-Dhadoop.version=2.6.0

報錯:

[INFO] BUILD FAILURE

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 06:58 min

[INFO] Finished at:2019-01-18T22:11:54-05:00

[INFO] Final Memory: 106M/454M

[INFO]------------------------------------------------------------------------

[ERROR] Failed to execute goal on projectflink-mapr-fs: Could not resolve dependencies for projectorg.apache.flink:flink-mapr-fs:jar:1.6.2: Could not find artifactcom.mapr.hadoop:maprfs:jar:5.2.1-mapr in nexus-osc(http://maven.aliyun.com/nexus/content/repositories/central) -> [Help 1]

[ERROR]

[ERROR] To see the full stack trace of theerrors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch toenable full debug logging.

[ERROR]

[ERROR] For more information about theerrors and possible solutions, please read the following articles:

[ERROR] [Help 1]http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

[ERROR]

[ERROR] After correcting the problems, youcan resume the build with the command

[ERROR]??mvn -rf :flink-mapr-fs

報錯缺失flink-mapr-fs荐类,需要手動下載安裝怖现。

解決:

1.下載maprfs jar包

通過手動下載maprfs-5.2.1-mapr.jar包,下載地址地址:https://repository.mapr.com/nexus/content/groups/mapr-public/com/mapr/hadoop/maprfs/5.2.1-mapr/

2.上傳至主節(jié)點

將下載的maprfs-5.2.1-mapr.jar包上傳至主節(jié)點的/home/hadoop/downloads目錄下玉罐。

3.手動安裝

手動安裝缺少的包到本地倉庫

mvn install:install-file-DgroupId=com.mapr.hadoop -DartifactId=maprfs -Dversion=5.2.1-mapr-Dpackaging=jar?-Dfile=/home/hadoop/downloads/maprfs-5.2.1-mapr.jar

4.繼續(xù)編譯

使用maven繼續(xù)編譯flink(可以排除剛剛已經(jīng)安裝的包)

mvn clean install -Dmaven.test.skip=true-Dhadoop.version=2.7.3? -rf:flink-mapr-fs

報錯:

[INFO] BUILD FAILURE

[INFO]------------------------------------------------------------------------

[INFO] Total time: 05:51 min

[INFO] Finished at:2019-01-18T22:39:20-05:00

[INFO] Final Memory: 108M/480M

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goalorg.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) onproject flink-mapr-fs: Compilation failure: Compilation failure:

[ERROR] /home/hadoop/opensource/flink/flink-filesystems/flink-mapr-fs/src/main/java/org/apache/flink/runtime/fs/maprfs/MapRFileSystem.java:[70,44]package org.apache.hadoop.fs does not exist

[ERROR]/home/hadoop/opensource/flink/flink-filesystems/flink-mapr-fs/src/main/java/org/apache/flink/runtime/fs/maprfs/MapRFileSystem.java:[73,45]cannot find symbol

[ERROR] symbol:?? class Configuration

[ERROR] location: packageorg.apache.hadoop.conf

[ERROR]/home/hadoop/opensource/flink/flink-filesystems/flink-mapr-fs/src/main/java/org/apache/flink/runtime/fs/maprfs/MapRFileSystem.java:[73,93]cannot find symbol

[ERROR] symbol:?? class Configuration

缺失org.apache.hadoop.fs包屈嗤,報錯找不到。

解決:

flink-mapr-fs模塊的pom文件中添加如下依賴:

???????? org.apache.hadoop

???????? hadoop-common

???????? ${hadoop.version}


繼續(xù)往后編譯:

mvn clean install -Dmaven.test.skip=true-Dhadoop.version=2.7.3? -rf:flink-mapr-fs

又報錯:

[ERROR] Failed to execute goal on projectflink-avro-confluent-registry: Could not resolve dependencies for projectorg.apache.flink:flink-avro-confluent-registry:jar:1.6.2: Could not findartifact io.confluent:kafka-schema-registry-client:jar:3.3.1 in nexus-osc(http://maven.aliyun.com/nexus/content/repositories/central) -> [Help 1]

[ERROR]

報錯缺少kafka-schema-registry-client-3.3.1.jar 包

解決:

手動下載kafka-schema-registry-client-3.3.1.jar包吊输,下載地址如下:

http://packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/3.3.1/kafka-schema-registry-client-3.3.1.jar

將下載的kafka-schema-registry-client-3.3.1.jar上傳至主節(jié)點的目錄下/home/hadoop/downloads

手動安裝缺少的kafka-schema-registry-client-3.3.1.jar包

mvninstall:install-file -DgroupId=io.confluent-DartifactId=kafka-schema-registry-client -Dversion=3.3.1 -Dpackaging=jar?-Dfile=/home/hadoop/downloads/kafka-schema-registry-client-3.3.1.jar

繼續(xù)往后編譯

mvnclean install -Dmaven.test.skip=true -Dhadoop.version=2.7.3? -rf :flink-mapr-fs


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末饶号,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子季蚂,更是在濱河造成了極大的恐慌茫船,老刑警劉巖琅束,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異算谈,居然都是意外死亡涩禀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門然眼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艾船,“玉大人,你說我怎么就攤上這事高每∮炱瘢” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵鲸匿,是天一觀的道長爷怀。 經(jīng)常有香客問我,道長晒骇,這世上最難降的妖魔是什么霉撵? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任磺浙,我火速辦了婚禮洪囤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撕氧。我一直安慰自己瘤缩,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布伦泥。 她就那樣靜靜地躺著剥啤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪不脯。 梳的紋絲不亂的頭發(fā)上府怯,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音防楷,去河邊找鬼牺丙。 笑死,一個胖子當(dāng)著我的面吹牛复局,可吹牛的內(nèi)容都是我干的冲簿。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼亿昏,長吁一口氣:“原來是場噩夢啊……” “哼峦剔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起角钩,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤吝沫,失蹤者是張志新(化名)和其女友劉穎呻澜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惨险,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡易迹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了平道。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片睹欲。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖一屋,靈堂內(nèi)的尸體忽然破棺而出窘疮,到底是詐尸還是另有隱情,我是刑警寧澤冀墨,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布闸衫,位于F島的核電站,受9級特大地震影響诽嘉,放射性物質(zhì)發(fā)生泄漏蔚出。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一虫腋、第九天 我趴在偏房一處隱蔽的房頂上張望骄酗。 院中可真熱鬧,春花似錦悦冀、人聲如沸趋翻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽踏烙。三九已至,卻和暖如春历等,著一層夾襖步出監(jiān)牢的瞬間讨惩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工寒屯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荐捻,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓浩螺,卻偏偏與公主長得像靴患,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子要出,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

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