如何构建和使用flink-connector-kinesis?

10
我正在尝试将Apache Flink与AWS Kinesis一起使用。 文档说我必须自己构建连接器。
因此,我构建了连接器,并为我的项目添加了jar文件,同时在pom.xml文件中添加了依赖项。
<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-connector-kinesis_2.11</artifactId>
    <version>1.6.1</version> 
</dependency>

然而,当我尝试使用mvn clean package进行构建时,我收到了以下类似的错误消息

[INFO] -----------------------< kkaldk:flink-kinesis >-----------------------
[INFO] Building Flink Quickstart Job 0.1
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The POM for org.apache.flink:flink-connector-kinesis_2.11:jar:1.6-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.458 s
[INFO] Finished at: 2018-12-19T17:45:43+09:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project flink-kinesis: Could not resolve dependencies for project kkaldk:flink-kinesis:jar:0.1: Failure to find org.apache.flink:flink-connector-kinesis_2.11:jar:1.6-SNAPSHOT in https://repository.apache.org/content/repositories/snapshots/ was cached in the local repository, resolution will not be reattempted until the update interval of apache.snapshots has elapsed or updates are forced -> 
[Help 1]
[ERROR] 

你能帮我修复这个问题吗?

---------添加----------

这是我所做的(错误的步骤)

  1. 按照此 文档 开始项目。
  2. flink master source (即 1.8-snapshot) 构建连接器。
  3. 使用 1.6.1 版本添加依赖。


你在你的 POM 文件中加入了什么来将 Kinesis JAR 文件添加到你的项目中? - 0x26res
@Arthur,我在我的帖子中添加了代码。 - Bumhwan Kim
1
所以當你說你已經添加了“我的項目的jar文件”時,你指的是你調用了這個命令嗎? mvn install:install-file -Dfile = flink-connector-kinesis_2.10-1.6.1.jar -DpomFile = flink-connector-kinesis_2.10-1.6.1.pom.xml?這裡的困難在於你正在嘗試使用一個沒有在maven中央存儲庫中的依賴。我認為這個鏈接可能會有所幫助:http://www.mkyong.com/maven/how-to-include-library-manully-into-maven-local-repository/ - 0x26res
@BumhwanKim,你是如何构建并添加所构建的连接器的依赖项的?我也需要使用Kinesis连接器,但正如他们在这里所说。 - IoT user
@IoTuser,我已经在下面发布了我的解决方案。 - Bumhwan Kim
1个回答

10

这是我为解决方案所做的工作。

  1. 我从此处下载了1.6.1版本的发行版。

  2. 解压文件(存档将解压缩在.../flink-release-1.6.1/中)。

  3. 通过mvn clean install -Pinclude-kinesis -DskipTests构建它。

然后,我在本地的maven存储库中获得了 flink-connector-kinesis_2.11 版本1.6.1。

(对于我来说,路径是这样的):~/.m2/repository/org/apache/flink/flink-connector-kinesis_2.11

之后,我可以通过添加这个代码的依赖关系,在任何项目中使用这个连接器。(我不再需要添加 jar 文件。)

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-connector-kinesis_2.11</artifactId>
    <version>1.6.1</version> 
</dependency>

1
谢谢,这很有帮助。 - IoT user
我已经完成了相同的步骤,在我的本地仓库中显示连接器jar存在于以下路径org/apache/flink/flink-connector-kinesis_2.11/1.9.0/flink-connector-kinesis_2.11-1.9.0.jar.lastUpdated但是我的项目仍然无法构建。我收到以下错误:无法解析项目org.data.bounce:BounceProcessor:jar:1.0-SNAPSHOT的依赖项:在https://repo.maven.apache.org/maven2中找不到org.apache.flink:flink-connector-kinesis_2.11:jar:1.9.0,该错误已缓存到本地仓库中。 - Anuj jain
@Anujjain 我也遇到了非常类似的错误,你解决了吗? - sedavidw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接