【Flink】第一节 源码编译

我认识以及改造flink的第一步从下载编译源码开始

0、环境

idea

java 1.8

scala 2.12

flink 1.16

maven-setting(核心)

nodejs(这个去官网下载安装一下就好,npm -v 显示成功就好)

文末附有核心setting的配置

1、下载源码

由于网络问题,所以我是从gitee上进行代码的拉取

flink: Apache Flink 是高效和分布式的通用数据处理平台

2、idea 导入源码

 记住,导入源码后要检查四个问题:

idea plugin中scala是否设置了(可能会有网络问题,设置一下代理,代理如下,设置前ping一下,失效了再去搜一个对应网址地址,设置完毕后重启一下idea)

13.249.171.117 plugins.jetbrains.com
13.249.171.117 jetbrains.com

scala sdk环境是否设置了;

java sdk是否设置了;

maven 环境是否设置了

【Flink】第一节 源码编译_第1张图片

3、编译打包 

根目录下运行,运行完毕后可能要等30min左右(起码我是),然后最后会显示build sucess;假如有特殊需求需要跳过某一个,则可以执行 mvn -rf XXXModule

测试代码不能跳过编译,但可跳过执行

mvn install -Drat.skip=true -DskipTests -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Dfast -T 4 -Dmaven.compile.fork=true

4、测试运行

运行exapmple中的stream-wordcount,测试编译等是否正常;正常会显示最终的wordcount结果,如下所示

【Flink】第一节 源码编译_第2张图片

在测试过程中可能会有问题,经常出现的一个问题是akka抛错,可以根据后面的提示进行解决,如下:

mvn clean package -pl flink-rpc/flink-rpc-akka,flink-rpc/flink-rpc-akka-loader -DskipTests

附件

setting文件-setting.xml

注意本地仓库的地址要记得修改为自己的地址,其他照搬即可



  
    
  E:\maven-repository
   
    
    
        
            aliyun-nexus
            aliyun-nexus
            aliyun
            http://maven.aliyun.com/nexus/content/groups/public
        
        
            huawei-nexus
            huawei-nexus
            huawei
            https://mirrors.huaweicloud.com/repository/maven/
        
        
            confluent-nexus
            confluent-nexus
            confluent
            https://packages.confluent.io/maven/
        
    
  
    
        
            aliyun
            
                
                    aliyun-nexus
                    http://maven.aliyun.com/nexus/content/groups/public
                    
                        true
                    
                    
                        true
                    
                
            
            
                
                    aliyun-nexus
                    http://maven.aliyun.com/nexus/content/groups/public
                    
                        true
                    
                    
                        true
                    
                
            
        
        
            huawei
            
                
                    huawei-nexus
                    https://mirrors.huaweicloud.com/repository/maven/
                    
                        true
                    
                    
                        true
                    
                
            
            
                
                    huawei-nexus
                    https://mirrors.huaweicloud.com/repository/maven/
                    
                        true
                    
                    
                        true
                    
                
            
        
        
            confluent
            
                
                    confluent-nexus
                    https://packages.confluent.io/maven/
                    
                        true
                    
                    
                        true
                    
                
            
            
                
                    confluent-nexus
                    https://packages.confluent.io/maven/
                    
                        true
                    
                    
                        true
                    
                
            
        
        
            cdh
            
                
                    cdh-nexus
                    
                        true
                        never
                        fail
                    
                    
                        false
                        always
                        warn
                    
                    Cloudera Repositories
                    https://repository.cloudera.com/artifactory/cloudera-repos
                    default
                
            
            
                
                    cdh-nexus
                    https://repository.cloudera.com/artifactory/cloudera-repos
                    
                        true
                    
                    
                        true
                    
                
            
        
        
            apache
            
                
                    apache-nexus
                    
                        true
                        never
                        fail
                    
                    
                        false
                        always
                        warn
                    
                    apache Repositories
                    https://repository.apache.org/content/repositories/snapshots/
                    default
                
            
            
                
                    apache-nexus
                    https://repository.apache.org/content/repositories/snapshots/
                    
                        true
                    
                    
                        true
                    
                
            
        
    
  
    
    
        aliyun
    

参考:

1、flink编译过程中遇到的问题以及加速 https://blog.csdn.net/spark_dev/article/details/124008534 

你可能感兴趣的:(flink,flink,大数据)