01.Flink筆記-編譯、部署


Flink開發環境部署配置

Flink是一個以Java及Scala作為開發語言的開源大數據項目,代碼開源在github上,並使用maven來編譯和構建項目。所需工具:Java、maven、Git。

本次操作是在windows環境下。

一、工具安裝

Java配置(略)

maven配置

  1. 下載安裝
  2. 配置環境變量
  3. 修改settings.xml設置

更改本地倉庫目錄,默認是C:\用戶\.m2\Respository,為了避免C盤空間不夠,更改到其他盤目錄

<localRepository>D:\Respository</localRepository>

更改鏡像倉庫

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots,!mapr-releases</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>mapr-public</id>
<mirrorOf>mapr-releases</mirrorOf>
<name>mapr-releases</name>
<url>https://maven.aliyun.com/repository/mapr-public</url>
</mirror>

說明:第一個mirror使用的是aliyun提供的maven鏡像倉庫,能夠為國內用戶加速maven repository的訪問

第二個最重要。由於flink中的flink-filesystems/flink-mapr-fs模塊依賴mapr-releases repository提供的jar包,然而由於國內訪問mapr-releases repository比較慢,而且所依賴的maprfs-5.2.1-mapr.jar 這個jar包有48MB,flink依賴中最大的一個jar包,故初次編譯flink時,往往會由於下載mapr相關依賴超時導致編譯失敗。因此,aliyun專門有一個鏡像倉庫代理mapr-releases repository,以期望能讓用戶更容易地下載mapr相關的jar包。

aliyun提供的鏡像倉庫的meta信息:https://maven.aliyun.com/mvn/view

git(安裝略)

 

二、下載Flink代碼

 完成以上安裝配置后,我們就可以從github上下載Flink代碼了。github上flink的代碼倉庫是https://github.com/apache/flink

 (可選)國內的用戶,下載github 上的代碼可能比較慢,可以在hosts 中增加如下配置,可以顯著提升github的下載速度:

151.101.72.133 assets-cdn.github.com
151.101.73.194 github.global.ssl.fastly.net
192.30.253.113 github.com
11.238.159.92 git.node5.mirror.et2sqa

windows的hosts目錄:C:\Windows\System32\drivers\etc\hosts

linux/mac則為:/etc/hosts

克隆flink原碼到本地

打開一個空文件夾,右擊

打開git bash,執行

git clone https://github.com/apache/flink.git

(可選)代碼下載完后,默認是在master分支,一般選擇合適的發布分支使用。

git checkout release-1.7
git checkout blink

三、編譯flink代碼

# 刪除已有的build,編譯flink binary # 接着把flink binary安裝在maven的local repository(默認是~/.m2/repository)中
mvn clean install -DskipTests # 另一種編譯命令,相對於上面這個命令,主要的確保是: # 不編譯tests、QA plugins和JavaDocs,因此編譯要更快一些
mvn clean install -DskipTests -Dfast

另外,在一些情況下,我們可能並不想把編譯后的flink binary安裝在maven的local repository
下,我們可以使用下面的命令:

# 刪除已有的build,編譯flink binary
mvn clean package -DskipTests # 另一種編譯命令,相對於上面這個命令,主要的確保是: # 不編譯tests、QA plugins和JavaDocs,因此編譯要更快一些

mvn clean package -DskipTests -Dfast

 

 如果你需要使用指定hadoop的版本,可以通過指定“-Dhadoop.version”來設置,編譯命令如下:

mvn clean install -DskipTests -Dhadoop.version=2.6.1
# 或者
mvn clean package -DskipTests -Dhadoop.version=2.6.1

這次使用的編譯命令為

mvn clean package -DskipTests -Dfast

成功截圖

 

當成功編譯完成后,上述幾種編譯方式最終都能在當前flink的code path下編譯出完整的flink binary,可以在flink-dist/target/目錄中看到

其中有三個文件可以留意一下(在之后的章節中,繼續學習flink binary的用法):

  • flink binary目錄,此處是flink-dist\target\flink-1.7-SNAPSHOT-bin\flink-1.7-SNAPSHOT
  • flink binary目錄的壓縮包,此處沒有壓縮
  • 包含flink核心功能的jar包,此處是flink-dist/target/flink-dist_2.11-1.7-SNAPSHOT.jar

遇到的問題

問題1、編譯失敗,不能下載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包 

mvn install:install-file -DgroupId=io.confluent -DartifactId=kafka-schema-registry-client -Dversion=3.3.1 -Dpackaging=jar  -Dfile=E:\bigdata_flink\packages\kafka-schema-registry-client-3.3.1.jar

問題2:flink-parent依賴包報錯

解決:

刪除本地倉庫下已經下載的\org\apache\flink 目錄,關閉git bash重新打開窗口編譯。

 

問題3:Failed to execute goal org. apache. maven. plugins :maven-surefire-plugin:2.18.1:test

 解決:

 這個是單元測試的插件,編譯不需要它,在pom文件中注釋掉這個插件: maven-surefire-plugin

 

 

參考

https://blog.csdn.net/hxcaifly/article/details/86307213

https://www.cnblogs.com/dajiangtai/p/10725249.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM