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

Flink 1.10源代码编译,基于Flink release-1.10分支_第1张图片

Flink源代码编译部署

  • 以[release-1.10]版本为例

  • [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-aliyunid>
             <mirrorOf>centralmirrorOf>
             <name>Nexus aliyunname>
             <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
         mirror>
    
         <mirror>
             <id>nexus-aliyun-apacheid>
             <mirrorOf>centralmirrorOf>
             <name>Nexus aliyun apachename>
             <url>http://maven.aliyun.com/nexus/content/repositories/apache-snapshots/url>
         mirror>
     
         <mirror>
             <id>nexus-aliyunid>
             <mirrorOf>*,!jeecg,!jeecg-snapshots,!mapr-releasesmirrorOf>
             <name>Nexus aliyunname>
             <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
         mirror>
     
         <mirror>
             <id>mapr-publicid>
             <mirrorOf>mapr-releasesmirrorOf>
             <name>mapr-releasesname>
             <url>https://maven.aliyun.com/repository/mapr-publicurl>
         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 [email protected]:${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 install -T 2C -Dfast -Dmaven.compile.fork=true -DskipTests -Dscala-2.11
  • 参数说明
       mvn \
       #清理往次的maven构建记录和结果
       clean  \
       #安装/打包
       install  \

       #支持多处理器或者处理器核数参数,加快构建速度,推荐Maven3.3及以上
       -T 2C \ 
       
       #在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…

欢迎关注公众号交流学习!
Flink 1.10源代码编译,基于Flink release-1.10分支_第2张图片

你可能感兴趣的:(Flink,大数据,流式计算)