- Apache Flink 文档
- 概念
- 数据流编程模型
- 分布式运行时环境
- 教程
- API 教程
- DataStream API 教程
- Setup 教程
- 本地安装教程
- 在 Windows 上运行 Flink
- 例子
- 批处理示例
- 应用开发
- 项目构建设置
- Java 项目模板
- Scala 的项目模板
- 配置依赖关系,连接器,库
- 基础 API 概念
- Scala API 扩展
- Java Lambda 表达式
- Flink DataStream API 编程指南
- 活动时间
- 事件时间/处理时间/摄取时间
- 活动时间和水印
- 状态与容错
- 算子
- DataStream 转换
- 物理分区
- 任务链和资源组
- 流连接器
- 旁路输出
- Python 编程指南(流)Beta
- 测试
- 实验特点
- Flink DataSet API 编程指南
- 数据集转换
- 容错
- 在数据集中压缩数据元
- 迭代
- Python 编程指南 Beta
- 连接器
- Hadoop 兼容性测试版
- 本地执行
- 群集执行
- Table API 和 SQL
- 概念和通用 API
- 流处理概念
- 连接到外部系统
- Table API
- SQL
- 内置函数
- 用户定义的源和接收器
- 用户定义的函数
- SQL 客户端测试版
- 数据类型和序列化
- 为 Flink 程序注册自定义序列化程序
- 管理执行
- 执行配置
- 程序打包和分布式执行
- 并行执行
- 执行计划
- 重启策略
- 类库
- FlinkCEP - Flink 的复杂事件处理
- 风暴兼容性 Beta
- 项目配置
- 执行 Storm 拓扑
- 在 Flink 流程序中嵌入 Storm 算子
- Flink Extensions
- Storm 兼容性示例
- Gelly:Flink Graph API
- 图 API
- FlinkML - Flink 的机器学习
- 最佳实践
- API 迁移指南
- 部署和运营
- 集群和部署
- 独立群集
- YARN 设置
- Mesos 设置
- Kubernetes 设置
- Docker 设置
- 亚马逊网络服务(AWS)
- Google Compute Engine 设置
- 先决条件
- 在 Google Compute Engine 上部署 Flink
- MapR 设置
- Hadoop 集成
- JobManager 高可用性(HA)
- 状态和容错
- 检查点
- 保存点
- 状态后台
- 调整检查点和大状态
- 配置
- 生产准备清单
- 命令行界面
- Scala REPL
- Kerberos 身份验证设置和配置
- SSL 设置
- 文件系统
- 升级应用程序和 Flink 版本
- 调试和监控
- 度量
- 如何使用日志记录
- 历史服务器
- 监控检查点
- 监测背压
- 监控 REST API
- 调试 Windows 和事件时间
- 调试类加载
- 应用程序分析
- 使用 Java Flight Recorder 进行性能分析
- 使用 JITWatch 进行分析
- Flink Development
- 将 Flink 导入 IDE
- 从 Source 建立 Flink
- 内幕
- 组件堆栈
- 数据流容错
- 工作和调度
- 任务生命周期
- 文件系统
- 实现
- 坚持保证
- 更新文件内容
- 覆盖文件
- 线程安全
从 Source 建立 Flink
本页面介绍了如何从源代码构建 Flink 1.7-SNAPSHOT。
建立 Flink
为了构建 Flink,您需要源代码。无论是 下载一个释放源 或 克隆的 Git 仓库 。
此外,您还需要 Maven 3 和 JDK (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
这指示 Maven ( mvn
)首先删除所有现有的构建( 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
模块中出现错误,则应在 <configuration>
标记下添加上述代码 scala-maven-plugin
。有关更多信息,请参阅 此问题 。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论