Flink 编译 Flink1.9.1-CDH6.2 对应版本

Flink 的 Standalone Cluster 模式直接使用相应版本即可,部署 Flink on YARN 需要重新编译对应 Hadoop版本。

这里编译 Flink1.9.1 ,CDH6.2 平台 Hadoop 版本是 hadoop-3.0.0-cdh6.2.0。

  • 目录
  • 1. Git 方式
  • 2. 下载 Flink-1.9.1 源码
  • 3. 编译
  • 4. 编译时报错
  • 2. 下载源码编译
  • 附:Maven 中央库
  • 附:  Flink1.10.0 编译

 

官方编译文档:Building Flink from Source

Flink国内镜像站:flink-1.9.1-src.tgz 、 flink-shaded-7.0-src.tgz

编译完成:Flink1.9.1-CDH6.2

 

1. Git 方式

将 Flink 对应的Hadoop版本编译打包到本地 Maven 库,编译 Flink 时会用到。Flink 1.9.1 对应 flink-shaded-7.0。

1. 修改 flink-shaded-7.0 的pom.xml

添加 cloudera repository

    
        
            cloudera repo
            https://repository.cloudera.com/artifactory/cloudera-repos/
        
        
            mvn repo
            https://mvnrepository.com
        
    

2. 修改 flink-shaded-hadoop-2-uber 的 pom.xml

添加


        commons-cli
        commons-cli
        1.3.1

3. 编译源码

mvn clean install -DskipTests -Dhadoop.version=3.0.0-cdh6.2.0

Flink 编译 Flink1.9.1-CDH6.2 对应版本_第1张图片

 

2. 下载 Flink-1.9.1 源码

# 获取源码
git clone https://github.com/apache/flink.git

# 进入源码目录
cd flink

# 查看版本
git tag

# 切换到 flink 1.9.1
git checkout release-1.9.1

# 查看当前所处的分支
git branch

3. 编译

-T4C: 指定4线程编译。
-DskipTests  -Dfast: 跳过Tests、QA Plugins、JavsDocs等过程。
-Pinclude-hadoop: 编译时将 Hadoop二进制包放入Flink的lib中,去掉这个参数对Standalone模式没有影响,如果 Flink on YARN 模式,需要手动将编译完成的 /flink-shaded-hadoop/flink-shaded-hadoop2-uber/target/flink-shaded-hadoop2-uber-3.0.0-1.9.1.jar 拷贝到 $FLINK_HOME/lib/下。
-Pvendor-repos: 激活相关 Repositories,如 Cloudera 的 Repositories,在编译过程中下载依赖对应版本的库。
-Dscala-2.11: Flink1.7以后默认Scala2.11,如果使用Scala2.12需要指定Scala版本。

mvn -T4C clean install -DskipTests -Dfast -Pinclude-hadoop -Pvendor-repos -Dhadoop.version=3.0.0-cdh6.2.0

4. 编译时报错

YARN Test 类问题:/opt/flink2/flink-yarn/src/test/java/org/apache/flink/yarn/AbstractYarnClusterTest.java

在 flink-yarn 的 pom 文件 build 中添加忽略代码测试。

    
        org.apache.maven.plugins
        maven-compiler-plugin
        3.8.0
        
            ${java.version}
            ${java.version}
            true
            
            false
            
                
                -Xpkginfo:always
            
        
    

Flink 编译 Flink1.9.1-CDH6.2 对应版本_第2张图片

 

编译完成,编译后的目录:

/flink/flink-dist/target/flink-1.9.1-bin/flink-1.9.1/

将目录内容打包上传至服务器即可。

 

 

2. 下载源码编译
 

将 Flink 对应的Hadoop版本编译打包到本地 Maven 库,编译 Flink 时会用到。Flink 1.9.1 对应 flink-shaded-7.0。

1. 修改 flink-shaded-7.0 的pom.xml

添加 cloudera repository

    
        
            cloudera repo
            https://repository.cloudera.com/artifactory/cloudera-repos/
        
        
            mvn repo
            https://mvnrepository.com
        
    

2. 修改 flink-shaded-hadoop-2-uber 的 pom.xml

添加


        commons-cli
        commons-cli
        1.4.0

3. 编译源码

进入 flink-shaded-7.0 目录,运行 cmd

mvn clean install -DskipTests -Dhadoop.version=3.0.0-cdh6.2.0

Flink 编译 Flink1.9.1-CDH6.2 对应版本_第3张图片

 

1. 修改 flink-1.9.1 的 pom 文件,或者不修改,直接指定-Pvendor-repos自动下载依赖pom

    
        
            cloudera repo
            https://repository.cloudera.com/artifactory/cloudera-repos/
        
        
            mvn repo
            https://mvnrepository.com
        
        
            vdc
            http://nexus.saas.hand-china.com/content/repositories
        
        
            horton-works-releases
            http://repo.hortonworks.com/content/groups/public/
        
    

 

2. 编译 flink-1.9.1

mvn -T4C clean install -DskipTests -Dfast -Pinclude-hadoop -Dhadoop.version=3.0.0-cdh6.2.0 -Dflink.shaded.version=7.0 -Dscala-2.11

 3. 报错

/opt/flink2/flink-yarn/src/test/java/org/apache/flink/yarn/AbstractYarnClusterTest.java

在 flink-yarn 的 pom 文件 build 中添加忽略代码测试。

    
        org.apache.maven.plugins
        maven-compiler-plugin
        3.8.0
        
            ${java.version}
            ${java.version}
            true
            
            false
            
                
                -Xpkginfo:always
            
        
    

继续执行上次的编译 

mvn -T4C clean install -DskipTests -Dfast -Pinclude-hadoop -Dhadoop.version=3.0.0-cdh6.2.0 -rf :flink-yarn_2.11 -Dflink.shaded.version=7.0 -Dscala-2.11

4. 编译成功 

Flink 编译 Flink1.9.1-CDH6.2 对应版本_第4张图片

编译完成,编译后的目录:

/flink/flink-dist/target/flink-1.9.1-bin/flink-1.9.1/

将目录打包上传至服务器即可。

 

附:Maven 中央库

不正确的设置可能会导致无法下载相应依赖

    
        
        
            alimaven
            aliyun maven
            http://maven.aliyun.com/nexus/content/repositories/central/
            central
        
        
            nexus-aliyun
            aliyun maven
            http://maven.aliyun.com/nexus/content/groups/public/
            central
        
        
        
            maven cn repo
            oneof the central mirrors in china
            http://maven.net.cn/content/groups/public/
            central
        
        
            maven repo
            Maven Repository Switchboard
            http://repo1.maven.org/maven2/
            central
        
        
            maven repo2
            central
            Human Readable Name for this Mirror.
            http://repo2.maven.org/maven2/
        
    

 

附: Flink1.10.0 编译

与 Flink1.9.1相同,这里也是 windows 下编译。

阿里镜像站下载:flink-shaded-10.0-src.tgz,flink-1.10.0-src.tgz

 

1. 编译 flink-shaded-10.0

修改pom,编译

mvn clean install -DskipTests -Dhadoop.version=3.0.0-cdh6.2.0

Flink 编译 Flink1.9.1-CDH6.2 对应版本_第5张图片

 

2. 编译 flink-1.10.0

删除pom中的测试模块


    flink-yarn-tests

 编译

mvn -T4C clean install -DskipTests -Dfast -Pinclude-hadoop -Dhadoop.version=3.0.0-cdh6.2.0 -Dflink.shaded.version=10.0 -Dscala-2.11

Flink 编译 Flink1.9.1-CDH6.2 对应版本_第6张图片

你可能感兴趣的:(Flink)