返回介绍

从 Source 建立 Flink

发布于 2025-05-02 18:19:21 字数 3601 浏览 0 评论 0 收藏 0

本页面介绍了如何从源代码构建 Flink 1.7-SNAPSHOT。

建立 Flink

为了构建 Flink,您需要源代码。无论是 下载一个释放源克隆的 Git 仓库

此外,您还需要 Maven 3JDK (Java Development Kit)。Flink 至少 Required Java 8 才能构建。

注意:Maven 3.3.x 可以构建 Flink,但不会正确地遮蔽某些依赖项。Maven 3.2.5 正确创建了库。要构建单元测试,请使用 Java 8u51 或更高版本来防止使用 PowerMock 运行程序的单元测试失败。

要从 git 克隆,请输入:

git clone https://github.com/apache/flink

构建 Flink 的最简单方法是运行:

mvn clean install -DskipTests

这指示 Mavenmvn )首先删除所有现有的构建( clean ),然后创建一个新的 Flink 二进制文件( install )。

要加快构建速度,您可以跳过测试,QA 插件和 JavaDocs:

mvn clean install -DskipTests -Dfast

默认构建为 Hadoop 2 添加了特定于 Flink 的 JAR,以允许将 Flink 与 HDFS 和 YARN 一起使用。

依赖着色

Flink 遮挡掉 一些使用的库中,以避免与使用不同版本的这些库的用户程序版本冲突。阴影库包括 Google Guava , Asm , Apache Curator , Apache HTTP Components , Netty 等。

最近在 Maven 中更改了依赖关系着色机制,并要求用户根据 Maven 版本略微区别地构建 Flink:

Maven 3.0.x,3.1.x 和 3.2.x 只需调用 mvn clean install -DskipTests Flink 代码库的根目录即可。

Maven 3.3.x 构建必须分两步完成:首先在基本目录中,然后在分发项目中:

mvn clean install -DskipTests
cd flink-dist
mvn clean install

注意: 要检查您的 Maven 版本,请运行 mvn --version

Hadoop 版本

信息大多数用户不需要手动执行此 算子操作。该 下载页面 包含了常见的 Hadoop 版本的二进制软件包。

Flink 依赖于 HDFS 和 YARN,它们都是来自 Apache Hadoop 的 依赖项。存在许多不同版本的 Hadoop(来自上游项目和不同的 Hadoop 发行版)。如果使用错误的版本组合,则可能发生异常。

Hadoop 仅从 2.4.0 版本开始支持。您还可以指定要构建的特定 Hadoop 版本:

mvn clean install -DskipTests -Dhadoop.version=2.6.1

供应商特定版本

要针对特定于供应商的 Hadoop 版本构建 Flink,请发出以下命令:

mvn clean install -DskipTests -Pvendor-repos -Dhadoop.version=2.6.1-cdh5.0.0

-Pvendor-repos 激活一个 Maven 建立简档 ,其包括流行的 Hadoop 厂商如 Cloudera 的,Hortonworks,或 MAPR 的存储库。

Scala 版本

信息纯粹使用 Java API 和库的用户可以 忽略 此部分。

Flink 具有用 Scala 编写的 API,库和运行时模块。Scala API 和库的用户可能必须将 Scala 版本的 Flink 与其项目的 Scala 版本相匹配(因为 Scala 不是严格向后兼容的)。

Flink 1.4 目前仅使用 Scala 版本 2.11 构建。

我们正在努力支持 Scala 2.12,但 Scala 2.12 中的某些重大更改使这更加复杂。请查看 此 JIRA 问题 以获取更新。

加密文件系统

如果您的主目录已加密,则可能会遇到 java.io.IOException: File name too long 异常。某些加密文件系统(如 Ubuntu 使用的 encfs)不允许长文件名,这是导致此错误的原因。

解决方法是添加:

<args>
  <arg>-Xmax-classfile-name</arg>
  <arg>128</arg>
</args>

pom.xml 导致错误的模块文件的编译器配置中。例如,如果 flink-yarn 模块中出现错误,则应在 &lt;configuration&gt; 标记下添加上述代码 scala-maven-plugin 。有关更多信息,请参阅 此问题

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。