flink on yarn 部署方案

FLINK ON YARN 3种部署方式:
在生产中建议使用 Per-job 或 Application Mode 模式部署 Flink 应用程序,这些模式为应用程序提供了更好的隔离.
一个任务启动一个Flink集群, 各个 Flink 集群之间独立运行, 互不影响, 而且每个集群可以单独进行配置。

1、Application Mode (应用模式)

特点

每次递交作业都需要申请一次资源

优点

  1. main 方法在集群中执行, 不是执行在客户端
  2. 运行时所需的依赖项, 并生成 JobGraph 都在Yarn集群中执行, 有效减少客户端带宽、性能的消耗, 从而防止客户端压力过大
  3. 允许应用程序包含多个Job, 多个Job顺序执行

使用

该模式将在 YARN 上启动 Flink 集群,其中应用程序 jar 的 main() 方法在 YARN 中的 JobManager 上执行, 应用程序完成后,集群将立即关闭。

常用的启动命令, 启动后会得到一个 applicatid

./bin/flink run-application
-t yarn-application
-yjm 1024
-ytm 1024
-d
-c org.apache.flink.streaming.examples.socket.SocketWindowWordCount
examples/streaming/SocketWindowWordCount.jar
–port 9000

列出运行在集群中的任务(通过 -Dyarn.application.id 可以查看指定 application.id 中执行的 Job)

./bin/flink list
-t yarn-application
-Dyarn.application.id=application_XXXX_YY

取消job

./bin/flink cancel
-t yarn-application
-Dyarn.application.id=application_XXXX_YY

优化 为了让整个应用得到更快的响应,我们可以把 jar 等文件上传到指定的 HDFS 路径,这样应用在执行的时候可以直接从指定的路径获取,而不是从 client 上传。

./bin/flink run-application -t yarn-application
-Dyarn.provided.lib.dirs=“hdfs://myhdfs/my-remote-flink-dist-dir”
hdfs://myhdfs/jars/my-application.jar

2、Per-Mode (Job 分离模式)

特点

每次递交作业都需要申请一次资源

优点

  1. 作业运行完成, 资源会立刻被释放, 不会一直占用系统资源
  2. 每个作业都是一个Flink集群, 不同资源之间做到了很好的资源隔离, 且不同的作业可以进行单独的配置

缺点

  1. 每次递交作业都需要申请资源, 会影响执行效率, 因为申请资源需要消耗时间
  2. main 方法在客户端执行, 在客户端提交给 JobManager

应用场景

适合作业比较少的场景、大作业的场景

启动命令

./bin/flink run
-t yarn-per-job
-yjm 1024
-ytm 1024
-d
-c org.apache.flink.streaming.examples.socket.SocketWindowWordCount
examples/streaming/SocketWindowWordCount.jar
–port 9000

3、Session Mode(会话模式)

特点

所有作业共享集群资源

优点

根据指定的资源参数初始化一个Flink集群,资源只需要一次申请

缺点

  1. 隔离性差, JM 负载瓶颈
  2. main 方法在客户端执行

应用场景

对延迟非常敏感但运行时长较短的作业

会话模式有两种操作模式

attached mode(默认)

yarn-session.sh 客户端将 Flink 集群提交给 YARN, 但客户端一直在运行, 不会退出
如果集群失败, 客户端将显示错误; 如果客户端被终止, 它也会发出集群关闭的信号

detached mode (-d or --detached)

yarn-session.sh 客户端将 Flink 集群提交给 YARN,然后客户端返回并退出
需要再次调用客户端或 YARN 工具来停止 Flink 集群

启动命令

./bin/yarn-session.sh
-yjm 1024
-ytm 1024
-d

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Flink on Yarn 的安装部署包括以下步骤: 1. 安装 Hadoop 和 Yarn,并确保它们正常运行。 2. 下载 Flink 的 binary release 或者源码编译。 3. 配置 flink-conf.yaml 文件,设置 yarn 集群的相关参数。 4. 启动 Flink on yarn,使用命令: "./bin/yarn-session.sh -n <number of task managers> -jm <jobmanager memory> -tm <taskmanager memory>" 5. 在 Flink web UI 中检查集群状态。 注意:以上步骤仅是大致的安装流程,详细的配置参数和步骤可以参考 Flink 官方文档。 ### 回答2: Flink on YARN是一种分布式运行模式,可以在YARN(Hadoop的资源管理器)上运行Flink作业。下面是安装和部署Flink on YARN的步骤。 1. 准备环境:首先,需要确保所有节点都运行着相同的Hadoop和Flink版本。在所有节点上安装好Hadoop和Flink,并设置好JAVA_HOME、HADOOP_HOME和FLINK_HOME环境变量。 2. 配置YARN:在Hadoop集群上,需要配置YARN以支持Flink on YARN。在yarn-site.xml文件中,需要设置一些参数,如yarn.nodemanager.resource.memory-mb、yarn.scheduler.minimum-allocation-mb和yarn.scheduler.maximum-allocation-mb等,这些参数决定了YARN可以分配的资源。 3. 配置Flink:在Flink的conf/flink-conf.yaml文件中,需要设置一些参数,如jobmanager.rpc.address、jobmanager.rpc.port、taskmanager.memory.process.size和yarn.application-name等,这些参数决定了Flink on YARN可以使用的资源和配置。 4. 部署Flink on YARN:可以使用yarn-session.sh脚本来启动Flink on YARN。首先,需要在Hadoop集群上启动一个Flink集群,然后运行yarn-session.sh脚本,该脚本会向YARN提交一个作业,并启动Flink on YARN会话。可以使用以下命令启动Flink on YARN: ``` ./bin/yarn-session.sh -n <num_task_managers> -tm <tm_memory> -s <slots> -d ``` 其中,num_task_managers指定了需要启动多少个TaskManager实例,tm_memory指定每个TaskManager实例可用的内存,slots指定每个TaskManager实例可以运行的任务数,-d表示该会话将在后台运行。 5. 运行Flink on YARN作业:在Flink on YARN会话中,可以使用Flink命令行工具或Web UI提交和管理作业。可以使用以下命令提交Flink作业: ``` ./bin/flink run -m yarn-cluster -ynm <job_name> <jar_file> <program_args> ``` 其中,-m yarn-cluster指定了作业管理器运行在YARN集群上,-ynm指定作业名称,jar_file指定要运行的JAR文件,program_args指定该程序的参数。作业将会被提交到YARN集群,并由Flink on YARN管理器分配任务并运行。 以上就是部署Flink on YARN的步骤,通过这种方式,可以更好地利用Hadoop集群的计算资源,以及Flink的高性能计算能力。同时,也可以通过管理器的监控和管理功能,更加方便地调试和管理Flink应用。 ### 回答3: Apache Flink是一个流处理引擎,可以在大数据环境中进行流式数据处理,支持高容错性和高吞吐量。而Apache Hadoop YARN是Apache Hadoop生态系统中的资源管理器,可用于管理计算资源。 Flink on YARN是将Flink集成到YARN中,以便更好地管理Flink作业的资源和调度。下面我将介绍如何安装和部署Flink on YARN。 首先,我们需要准备以下环境: 1. 安装Hadoop(版本必须与Flink相同)。 2. 在Flink官网上下载Flink二进制文件。 接下来,我们将进行以下步骤: 1. 将Flink二进制文件复制到YARN节点上。 2. 编辑Flinkyarn-site.xml文件。该文件位于Flink/conf目录下。在文件中,我们需要配置以下属性: a. yarn.application.classpath:指定Flink作业所需的依赖项。 b. yarn.application-attempts:指定Flink作业的重试次数。 c. yarn.resourcemanager.scheduler.address:指定YARNResourceManager的地址。 3. 启动Flink on YARN。输入以下命令即可启动: ./bin/yarn-session.sh -n <Number of TaskManager> -jm <Job Manager Memory> -tm <TaskManager Memory> 其中,-n指定TaskManager数量,-jm指定JobManager内存,-tm指定TaskManager内存。 4.使用Flink on YARN提交作业。输入以下命令即可提交作业: ./bin/flink run -m yarn-cluster <Flink Pipeline Jar> 其中,-m指定作业管理器的地址。yarn-cluster指定以YARN模式运行作业。 以上就是Flink on YARN的安装和部署过程。在这个过程中,我们需要了解FlinkYARN的结合方式,以便更好地管理Flink作业。Flink on YARN可以帮助我们轻松地管理和部署Flink作业,提高作业的可靠性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值