[实时计算flink]DataStream连接器设置方法

背景信息

如果您通过DataStream的方式读写数据,则需要使用对应的DataStream连接器连接Flink全托管。Maven中央库中已经放置了VVR DataStream连接器,以供您在作业开发时直接使用。您可以通过以下任何一种方式来使用连接器:

(推荐)上传连接器JAR包到实时计算控制台后,填写配置信息

  1. 登录实时计算控制台

  2. 单击目标工作空间操作 列下的控制台

  3. 在左侧导航栏,单击文件管理

  4. 单击上传资源,选择您要上传的目标链接器的JAR包。

    您可以上传您自己开发的连接器,也可以上传Flink全托管产品提供的连接器。Flink全托管产品提供的连接器官方JAR包的下载地址,请参见Connector列表

  5. 在目标作业开发页面附加依赖文件项,选择目标连接器的JAR包。

直接将连接器作为项目依赖打进作业JAR包

步骤一:准备DataStream作业开发环境

  1. 在Maven项目的pom.xml文件中添加以下配置以引用SNAPSHOT仓库。

    复制代码
    <repositories>
      <repository>
        <id>oss.sonatype.org-snapshot</id>
        <name>OSS Sonatype Snapshot Repository</name>
        <url>http://oss.sonatype.org/content/repositories/snapshots</url>
        <releases>
          <enabled>false</enabled>
        </releases>
        <snapshots>
          <enabled>true</enabled>
        </snapshots>
      </repository>
      <repository>
        <id>apache.snapshots</id>
        <name>Apache Development Snapshot Repository</name>
        <url>https://repository.apache.org/content/repositories/snapshots/</url>
        <releases>
          <enabled>false</enabled>
        </releases>
        <snapshots>
          <enabled>true</enabled>
        </snapshots>
      </repository>
    </repositories>
  2. 检查您的settings.xml配置文件中是否存在<mirrorOf>*</mirrorOf>配置。

    <mirrorOf>中包含*,表示当前mirror已经包含了所有仓库,maven不会从上述指定的两个 SNAPSHOT仓库中下载,这会导致Maven工程无法下载这两个仓库中的SNAPSHOT依赖。因此如果 settings.xml文件<mirrorOf>*</mirrorOf>配置中包含*,您可以根据如下情况进行相应的修改:

    • 存在<mirrorOf>*</mirrorOf>配置,请将配置改为<mirrorOf>*,!oss.sonatype.org-snapshot,!apache.snapshots</mirrorOf>

    • 存在<mirrorOf>external:*</mirrorOf>配置,请将配置改为<mirrorOf>external:*,!oss.sonatype.org-snapshot,!apache.snapshots</mirrorOf>

    • 存在<mirrorOf>external:http:*</mirrorOf>配置,请将配置改为<mirrorOf>external:http:*,!oss.sonatype.org-snapshot,!apache.snapshots</mirrorOf>

  3. 在作业的Maven POM文件中添加您需要的连接器作为项目依赖。

    每个Connector版本对应的Connector类型可能不同,建议您使用最新版本。完整的依赖信息请参见MaxCompute-DemoDataHub-DemoKafka-DemoRocketMQ-Demo示例中的pom.xml文件。MaxCompute增量源表的项目依赖代码示例如下。

    复制代码
    <dependency>
        <groupId>com.alibaba.ververica</groupId>
        <artifactId>ververica-connector-continuous-odps</artifactId>
        <version>${connector.version}</version>
    </dependency>

    除connector外,项目还需要依赖connector的公共包flink-connector-base

    复制代码
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-connector-base</artifactId>
        <version>${flink.version}</version>
    </dependency>

    其中,${flink.version}是作业运行环境对应的Flink版本,如您的作业运行在1.15-vvr-6.0.7版本引擎上,其对应的Flink版本为1.15.0

    重要

    • 您需要在SNAPSHOT仓库(oss.sonatype.org )查找带SNAPSHOT的Connector版本,在Maven中央库(search.maven.org)上会查找不到。

    • 在使用多个Connector时,请注意META-INF目录需要Merge,即在pom.xml文件中添加如下代码。

      复制代码
      <transformers>
          <!-- The service transformer is needed to merge META-INF/services files -->
          <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
          <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
              <projectName>Apache Flink</projectName>
              <encoding>UTF-8</encoding>
          </transformer>
      </transformers>

步骤二:开发DataStream作业

DataStream连接配置信息和代码示例需要去查看对应的DataStream连接器文档,详情请参见:

步骤三:打包并提交DataStream作业

使用Maven工具打包工程项目,并将生成的JAR包上传和提交到Flink全托管平台上,详细请参见部署JAR作业

相关推荐
梦想的初衷~20 小时前
Plaxis自动化建模与Python应用全解:从环境搭建到高级案例实战
python·自动化·工程设计·工程软件
Q_Q51100828520 小时前
python+uniapp基于微信小程序的垃圾分类信息系统
spring boot·python·微信小程序·django·flask·uni-app·node.js
HackerTom20 小时前
vs code jupyter连gpu结点kernel
python·jupyter·gpu·vs code·远程
weixin_4684668521 小时前
遗传算法求解TSP旅行商问题python代码实战
python·算法·算法优化·遗传算法·旅行商问题·智能优化·np问题
Nina_71721 小时前
pytorch核心组件以及流程
人工智能·pytorch·python
Highcharts.js21 小时前
在Python中配置高度交互的数据可视化:Highcharts完全指南
开发语言·python·信息可视化·highcharts
Ace_31750887761 天前
京东关键字搜索接口逆向:从动态签名破解到分布式请求调度
分布式·python
yachuan_qiao1 天前
专业的建筑设备监控管理系统选哪家
大数据·运维·python
l1t1 天前
DeepSeek辅助编写转换DuckDB json格式执行计划到PostgreSQL格式的Python程序
数据库·python·postgresql·json·执行计划
q***82911 天前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django