美文网首页
Flink 1.10源代码编译,基于release-1.10分支

Flink 1.10源代码编译,基于release-1.10分支

作者: 正东偏西 | 来源:发表于2020-02-07 16:56 被阅读0次
    Flink源代码编译部署

    Flink源代码编译部署

    构建准备:

    • [Ubuntu 18 安装] Linux衍生系统

    • [Python 2.X系列版本] Flink-release10专门用到的基础环境,和flink-runtime-web模块构建相关

    • [Java 1.8+ 版本安装] Java环境

    • [Maven 3.3+ 版本安装]

      • 编译构建工具,最好在构建maven环境时将maven运行的XmxXms参数适当调大
      • 在Maven settings.xml中配置阿里的maven仓库地址,可加速依赖下载速度.
      • 注意!!! 最好将配置好的settings.xml同时放到/home/username/.m2/路径下一份
          <mirrors>
           <mirror>
               <id>nexus-aliyun</id>
               <mirrorOf>central</mirrorOf>
               <name>Nexus aliyun</name>
               <url>http://maven.aliyun.com/nexus/content/groups/public</url>
           </mirror>
         <!--
           <mirror>
               <id>cloudera</id>
               <name>cloudera</name>
               <url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
               <mirrorOf>*,!mapr-releases,!confluent</mirrorOf>
           </mirror>-->
           <mirror>
               <id>nexus-aliyun-apache</id>
               <mirrorOf>central</mirrorOf>
               <name>Nexus aliyun apache</name>
               <url>http://maven.aliyun.com/nexus/content/repositories/apache-snapshots/</url>
           </mirror>
       
           <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>
       </mirrors>
      
      
      
      
    • [Git安装] 代码管理

    • [IntelliJ Idea安装] 阅读源代码和远程调试使用

    开始构建

    • 创建工作目录: mkdir flink_code_location
      创建一个目录作为Flink源代码下载目录,比如flink_code_location
    • [flink] 项目仓库fork到自己的github
    • 切换到工作目录:cd flink_code_location,
      从自己的github中pull flink的源代码,git clone git@github.com:${username}/flink.git
    • 分支准备:进入flink代码目录,cd flink;
      切换到flink-1.10f分支,git checkout release-1.10
      从此分支构建自己的分支,git checkout -b your_branch_base_release-1.10
    • 执行编译:mvn clean package -T 4 -Dfast -Dmaven.compile.fork=true -DskipTests -Dscala-2.11
    • 参数说明
           mvn \
           #清理往次的maven构建记录和结果
           clean  \
           #安装/打包
           install /package  \
    
           #支持多处理器或者处理器核数参数,加快构建速度,推荐Maven3.3及以上
           -T 4 \ 
           
           #在flink根目录下pom.xml文件中fast配置项目中含快速设置,其中包含了多项构建时的跳过参数.
           #例如apache的文件头(rat)合法校验,代码风格检查,javadoc生成的跳过等,详细可阅读pom.xml
           -Dfast \         
            #官方文档中声明有预构建完成的几个版本,可参考官方文档.本地版调试学习如果不涉及到state的文件系统存储持久化则不需要开启此配置项
           -Pinclude-hadoop -Dhadoop.version=2.7.5 \
            
           #允许多线程编译,推荐maven在3.3及以上
           -Dmaven.compile.fork=true \
           
           -DskipTests \ #之所以不开启-Dmaven.test.skip=true而使用此选项时因为如果要完整构建flink项目,
           #其中flink-test*模块中的代码非test范围,而其中使用了flink-runtime中test代码构建,
           # 所以如果不在根目录pom.xml中注释掉flink-test*模块,使用此选项会报错找不到相关包或者类
           
           -Dscala-2.11  #制定flink的scala版本代码
    
    
    • 根据官方文档声明,maven3.3+需要执行shade依赖的maven命令cd flink-dist/ && mvn clean install,(个人测试,不执行此步骤对本地方式的集群启动无影响)

    编译结果

    • 编译成功以后可用的flink文件夹资源在flink/build-target文件夹下

    集群本地模式启动

    • 启动集群本地模式
      • cd build-target/flink-*-bin/*/
      • ./start-cluster.sh
      • 在本地浏览器访问Flink_WebUI,提交flink任务测试即可。

    Thanks...

    欢迎关注公众号交流学习!


    AIzone1.jpg

    相关文章

      网友评论

          本文标题:Flink 1.10源代码编译,基于release-1.10分支

          本文链接:https://www.haomeiwen.com/subject/ydxvxhtx.html