flink开发如何正确引用架包jar

flink开发如何正确引用架包jar
flink架包引用一般涉及到三个部分:一是flink版本、scala版本、各Connnector版本等,二是需要开发的部分,如果正确引用flink集群中已经存在的架包,三是flink集群本身没有,需要引用提交的架包或者提前在集群中上传。

首先,flink的开发可以采用idea+maven的方式来构建项目,其中maven如何打架包就不在此赘述,需要注意的一点,idea的版本和maven版本有不兼容的情况,导致maven依赖引用异常。

第二,flink的版本,可以在apache flink中https://flink.apache.org/zh/downloads.html看到已经发布的版本,一般现在用的比较多的1.7,1.8的版本,1.9和1.10版本出来没多久,生产上直接部署的不是很多,作为个人尝鲜可以使用。
scala版本,如果你是采用scala进行开发,一般在引用flink-scala的架包,需要制定scala的版本,现在用的比较多的有2.11,2.12,scala的版本更新比较大,需要注意。
比如:
将 flink-java 的 artifact id 替换为 flink-scala_2.11,同时将 flink-streaming-java_2.11 替换为 flink-streaming-scala_2.11。

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-java</artifactId>
  <version>1.10.0</version>
</dependency>
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-streaming-scala_2.11</artifactId>
  <version>1.10.0</version>
</dependency>
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-clients_2.11</artifactId>
  <version>1.10.0</version>
</dependency>

第三,需要引用哪些架包呢,flink的架包一般比较多,需要了解主要架包都是做什么的,那么在使用的时候就可以灵活引入了。其次,maven的架包有scope的概念,就是最终形成的架包是否将依赖打入,如果你在本地测试,那么scope可以不填,默认是打入的。如果是提交到集群去执行任务,那么flink-java等架包在集群环境都是有的,为了避免冲突,一般都是provided。类似这样:

 <dependency>
     <groupId>org.apache.flink</groupId>
     <artifactId>flink-java</artifactId>
     <version>${flink.version}</version>
     <!-- provided在这表示此依赖只在代码编译的时候使用,运行和打包的时候不使用 -->
     <!--<scope>provided</scope>-->
 </dependency>

一般集群中的架包,以默认的来看,下载了flink1.10版本的安装包,并解压,可以看到有这些
libt目录下的jar:
在这里插入图片描述
opt目录下的jar:
在这里插入图片描述
编写steam代码的引用架包一般有这些:

       <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-java</artifactId>
            <version>${flink.version}</version>
            <!-- provided在这表示此依赖只在代码编译的时候使用,运行和打包的时候不使用 -->
            <!--<scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java_2.11</artifactId>
            <version>${flink.version}</version>
            <!--<scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-scala_2.11</artifactId>
            <version>${flink.version}</version>
            <!--<scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-scala_2.11</artifactId>
            <version>${flink.version}</version>
            <!--<scope>provided</scope>-->
        </dependency>

第四,集群没有的一般都有需要用的,比如常用Connector,kafka client ,statebackend等。

      <dependency>
            <groupId>org.apache.bahir</groupId>
            <artifactId>flink-connector-redis_2.11</artifactId>
            <version>1.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-statebackend-rocksdb_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-connector-kafka-0.11_2.11</artifactId>
            <version>${flink.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>0.11.0.3</version>
        </dependency>

上述的依赖一般都可以在maven中央仓库搜到或者阿里云maven中搜到
maven中央仓库:https://mvnrepository.com/
aliyun中央仓库:https://maven.aliyun.com/mvn/view

如果觉得对你有帮助,请点个赞。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值