• 如何进行Flink项目构建,快速开发Flink应用程序?


    项目模板

    Flink应用项目可以使用Maven或SBT来构建项目,Flink针对这些构建工具提供了相应项目模板。
    Maven模板命令如下,我们只需要根据提示输入应用项目的groupId、artifactId、version和package路径即可。

    
    mvn archetype:generate -DarchetypeGroupId=org.apache.flink -DarchetypeArtifactId=flink-quickstart-java -DarchetypeVersion=1.7.2
    
    

    目录结构和我们使用IDEA创建的目录结构基本一样,只是它会帮我们引入Flink依赖和日志依赖。

    <flink.version>1.7.2</flink.version>
    <scala.binary.version>2.11</scala.binary.version>
    ...
    <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-java</artifactId>
                <version>${flink.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
                <version>${flink.version}</version>
                <scope>provided</scope>
            </dependency>
            
    

    flink-java和flink-streaming-java_2.11是我们使用Java开发Flink应用程序的必要依赖。

    默认也帮我们引入maven-shade-plugin插件,所以在打包的时候记得将mainClass改成自己的主类。

    Flink应用程序开发依赖项可以分为两类:

    • Flink核心依赖(Flink core Dependencies):它是Flink运行系统所需的类和依赖项,也就是Flink项目的核心代码和所使用的依赖。比如实现的:调度、通信、checkpoint、API等。我们上面所引入的就是Flink的核心依赖,对于核心依赖我们只需要将依赖作用范围scope设置为provided即可,也就是不将依赖打入jar包。因为对于这些核心依赖,Flink运行集群能够为我们提供。
    • 应用程序依赖(User Application Dependencies):这部分就是我们开发应用程序所需要的一些其它依赖项,比如连接器、格式化库、Flink CEP、Flink SQL、Flink ML等。在打包应用程序的时候,我们需要将这些依赖项与我们的应用程序代码一同打入到一个jar包中
    //Flink核心依赖
    <dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-java</artifactId>
      <version>1.7.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-streaming-java_2.11</artifactId>
      <version>1.7.2</version>
      <scope>provided</scope>
    </dependency>
    //应用程序依赖
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-connector-kafka-0.10_2.11</artifactId>
        <version>1.7.2</version>
    </dependency>
    

    总结

    本文主要对如何使用Maven构建工具来快速构建Flink项目以及Flink核心依赖和应用程序依赖的不同做了讲解,需要注意对于核心依赖我们只需要将依赖作用范围scope设置为provided即可。

  • 相关阅读:
    从技术演变的角度看互联网后台架构
    设计模式的六大原则
    Xinetd服务的安装与配置详解
    linux route详细解读
    Linux信号处理
    Go语言的成功也预示着Rust的成功【转】
    Nginx/LVS/HAProxy负载均衡软件的优缺点详解
    C#代码覆盖率实践-vsinstr和OpenCover
    MYSQL企业常用架构与调优经验分享
    StrongLoop
  • 原文地址:https://www.cnblogs.com/bigdata1024/p/11938727.html
Copyright © 2020-2023  润新知