- 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
- 内幕
- 组件堆栈
- 数据流容错
- 工作和调度
- 任务生命周期
- 文件系统
- 实现
- 坚持保证
- 更新文件内容
- 覆盖文件
- 线程安全
Mesos 设置
背景
Mesos 实现包含两个组件:Application Master 和 Worker。Worker 是简单的 TaskManagers,它们由应用程序主机设置的环境进行参数化。Mesos 实现中最复杂的组件是应用程序主机。应用程序主机当前托管以下组件:
Mesos 调度程序
调度程序负责向 Mesos 注册框架,请求资源和启动工作节点。调度程序不断需要向 Mesos 报告以确保框架处于健康状态。为了验证群集的运行状况,调度程序监视生成的 worker 并将其标记为失败,并在必要时重新启动它们。
Flink 的 Mesos 调度程序本身目前不具备高可用性。但是,它会在 Zookeeper 中保存有关其状态(例如配置,工作者列表)的所有必要信息。在出现故障时,它依赖于外部系统来启动新的调度程序。然后,调度程序将再次向 Mesos 注册并完成协调阶段。在协调阶段,调度程序接收正在运行的工作程序节点的列表。它将这些与 Zookeeper 中恢复的信息进行匹配,并确保在故障之前将群集恢复到状态。
工件服务器
工件服务器负责向工作节点提供资源。资源可以是从 Flink 二进制文件到共享机密或配置文件的任何内容。例如,在非容器化环境中,工件服务器将提供 Flink 二进制文件。将提供哪些文件取决于使用的配置覆盖。
Flink 的调度程序和 Web 界面
Dispatcher 和 Web 界面为监视,作业提交和其他客户端与群集的交互提供了一个中心点(请参阅 FLIP-6 )。
启动脚本和配置叠加层
启动脚本提供了一种配置和启动应用程序主机的方法。然后,工作节点继承所有进一步的配置。这是使用配置叠加来实现的。配置覆盖提供了一种从环境变量和配置文件推断配置的方法,这些配置文件将发送到工作节点。
DC / OS
本节涉及 DC / OS ,它是具有复杂应用程序管理层的 Mesos 分发。它预装了 Marathon,这是一种监控应用程序并在发生故障时保持其状态的服务。
如果您没有正在运行的 DC / OS 群集,请按照 如何在官方网站上安装 DC / OS 的 说明进行 算子操作 。
拥有 DC / OS 群集后,您可以通过 DC / OS Universe 安装 Flink。在搜索提示中,只需搜索 Flink。或者,您可以使用 DC / OS CLI:
dcos package install flink
更多信息可以在 DC / OS 示例文档中找到 。
没有 DC / OS 的 Mesos
您也可以在没有 DC / OS 的情况下运行 Mesos。
安装 Mesos
请按照 官方网站上如何设置 Mesos 的 说明进行 算子操作 。
安装后,您必须通过创建文件 MESOS_HOME/etc/mesos/masters
和配置主节点和代理节点集 MESOS_HOME/etc/mesos/slaves
。这些文件在每一行中包含一个主机名,相应的组件将在该主机名上启动(假设 SSH 访问这些节点)。
接下来,您必须创建 MESOS_HOME/etc/mesos/mesos-master-env.sh
或使用在同一目录中找到的模板。在此文件中,您必须定义
export MESOS_work_dir=WORK_DIRECTORY
并建议取消注册
export MESOS_log_dir=LOGGING_DIRECTORY
要配置 Mesos 代理,您必须创建 MESOS_HOME/etc/mesos/mesos-agent-env.sh
或使用在同一目录中找到的模板。你必须配置
export MESOS_master=MASTER_HOSTNAME:MASTER_PORT
并取消注释
export MESOS_log_dir=LOGGING_DIRECTORY
export MESOS_work_dir=WORK_DIRECTORY
Mesos 类库
要使用 Mesos 运行 Java 应用程序,必须 MESOS_NATIVE_JAVA_LIBRARY=MESOS_HOME/lib/libmesos.so
在 Linux 上导出。在 Mac OS X 下,您必须导出 MESOS_NATIVE_JAVA_LIBRARY=MESOS_HOME/lib/libmesos.dylib
。
部署 Mesos
要启动 mesos 群集,请使用部署脚本 MESOS_HOME/sbin/mesos-start-cluster.sh
。要停止 mesos 群集,请使用部署脚本 MESOS_HOME/sbin/mesos-stop-cluster.sh
。有关部署脚本的更多信息,请访问 此处 。
安装 Marathon
或者,您也可以 安装 Marathon ,使您能够以 高可用性(HA)模式 运行 Flink 。
预安装 Flink 与 Docker / Mesos 容器
您可以在所有 Mesos 主节点和代理节点上安装 Flink。您还可以在部署期间从 Flink 网站提取二进制文件,并在启动应用程序主服务器之前应用自定义配置。更方便,更易于维护的方法是使用 Docker 容器来管理 Flink 二进制文件和配置。
这是通过以下配置条目控制的:
mesos.resourcemanager.tasks.container.type: mesos _or_ docker
如果设置为“docker”,请指定镜像名称:
mesos.resourcemanager.tasks.container.image.name: image_name
独立
在 /bin
Flink 发行版的目录中,您可以找到两个启动脚本来管理 Mesos 集群中的 Flink 进程:
mesos-appmaster.sh
这将启动 Mesos 应用程序主机,它将注册 Mesos 调度程序。它还负责启动工作节点。mesos-taskmanager.sh
Mesos 工作进程的入口点。您不需要显式执行此脚本。它由 Mesos 工作节点自动启动以启动新的 TaskManager。
为了运行 mesos-appmaster.sh
脚本,你必须定义 mesos.master
在 flink-conf.yaml
或通过它传递 -Dmesos.master=...
给 Java 进程。
执行时 mesos-appmaster.sh
,它将在您执行脚本的机器上创建一个 JobManager。与此相反,TaskManager 将作为 Mesos 集群中的 Mesos 任务运行。
一般配置
可以通过传递给 Mesos 应用程序主机的 Java 属性完全参数化 Mesos 应用程序。这还允许指定常规 Flink 配置参数。例如:
bin/mesos-appmaster.sh \
-Dmesos.master=master.foobar.org:5050 \
-Djobmanager.heap.mb=1024 \
-Djobmanager.rpc.port=6123 \
-Drest.port=8081 \
-Dmesos.resourcemanager.tasks.mem=4096 \
-Dtaskmanager.heap.mb=3500 \
-Dtaskmanager.numberOfTaskSlots=2 \
-Dparallelism.default=10
注意: 如果 Flink 处于 传统模式 ,则还应定义由 Mesos via 启动的 TaskManager 的数量 mesos.initial-tasks
。
高可用性
您将需要运行 Marathon 或 Apache Aurora 之类的服务,该服务负责在节点或进程出现故障时重新启动 Flink 主进程。此外,还需要像 Flink 文档 的“ 高可用性”部分中所述 配置 Zookeeper 。
Marathon
需要设置 Marathon 才能启动 bin/mesos-appmaster.sh
脚本。特别是,它还应调整 Flink 群集的任何配置参数。
以下是 Marathon 的示例配置:
{
"id": "flink",
"cmd": "$FLINK_HOME/bin/mesos-appmaster.sh -Djobmanager.heap.mb=1024 -Djobmanager.rpc.port=6123 -Drest.port=8081 -Dmesos.resourcemanager.tasks.mem=1024 -Dtaskmanager.heap.mb=1024 -Dtaskmanager.numberOfTaskSlots=2 -Dparallelism.default=2 -Dmesos.resourcemanager.tasks.cpus=1",
"cpus": 1.0,
"mem": 1024
}
使用 Marathon 运行 Flink 时,包含 JobManager 的整个 Flink 集群将作为 Mesos 集群中的 Mesos 任务运行。
配置参数
有关 Mesos 特定配置的列表,请参阅 配置文档的 Mesos 部分 。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论