flink on yarn 集群环境部署

设置yarn的配置目录

vim /etc/profile
添加
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

source /etc/profile

修改配置

jobmanager.rpc.port: 6123
# 高可用模式
high-availability: zookeeper
# zookeeper机器信息,多个,号分割
high-availability.zookeeper.quorum: 10.4.243.134:2181
# zooKeeper节点根目录,其下放置所有集群节点的namespace
high-availability.zookeeper.path.root: /flink
# 集群id
high-availability.cluster-id: /cluster_one
# 恢复一个JobManager挂掉所需的元数据,存放到hdfs中
high-availability.storageDir: hdfs:///flink/recovery/
state.backend: filesystem
state.checkpoints.dir: hdfs:///flink/checkpoints
state.savepoints.dir: hdfs:///flink/savepoints
rest.port: 8081

启动yarn

kafka-demo-1.0-SNAPSHOT.jar 一个可以运行的jar包就可以了
不用启动flink集群,资源管理全部交给yarn

flink run -m yarn-cluster -yn 2 -ynm kafka -d -yjm 1024m -ytm 2048m -p 4 kafka-demo-1.0-SNAPSHOT.jar

效果图

在这里插入图片描述
点击ApplicationMaster 查看flink web ui
在这里插入图片描述

HA设置

yarn增加配置

    <property>
        <name>yarn.resourcemanager.am.max-attempts</name>
        <value>4</value>
        <description>在重启时,尝试的最大次数</description>
    </property>

设置flink-conf.yml

# jobmanager.rpc.address: 10.4.243.134
jobmanager.rpc.port: 6123
#jobmanager.heap.size: 1024m
#taskmanager.heap.size: 1024m
#taskmanager.numberOfTaskSlots: 4

# 高可用模式
high-availability: zookeeper
# zookeeper机器信息,多个,号分割
high-availability.zookeeper.quorum: 10.4.243.134:2181
# zooKeeper节点根目录,其下放置所有集群节点的namespace
high-availability.zookeeper.path.root: /flink
# 集群id
high-availability.cluster-id: /cluster_one
# 恢复一个JobManager挂掉所需的元数据,存放到hdfs中
high-availability.storageDir: hdfs:///flink/recovery/
state.backend: filesystem
state.checkpoints.dir: hdfs:///flink/checkpoints
state.savepoints.dir: hdfs:///flink/savepoints
rest.port: 8081
io.tmp.dirs: /appdata/flink/io/tmp
# 添加配置重试次数
yarn.application-attempts: 4

效果图

在这里插入图片描述

在这里插入图片描述
杀死进程

[root@10 target]# jps -l
121434 org.apache.flink.yarn.entrypoint.YarnJobClusterEntrypoint
[root@10 target]# kill -9 121434

重启了一个

在这里插入图片描述

在这里插入图片描述

错误记录

内存申请不足

在这里插入图片描述
在这里插入图片描述

修改yarn-site.xml,添加如下配置

   <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
        <description>Whether virtual memory limits will be enforced for containers</description>
    </property>

### 如何在Yarn集群部署和运行Flink #### 启动Hadoop集群 为了使Flink能够在YARN之上正常工作,首先需要确保Hadoop集群已经成功启动并处于可用状态。 #### 创建Flink Session Cluster 创建一个长期存在的Flink session cluster可以提高效率,因为不需要每次都重新初始化环境。这可以通过下面的命令来实现: ```bash ./bin/yarn-session.sh -n 1 -s 1 -nm chbFlink ``` 这条命令会在YARN中预先分配资源并启动一个名为`chbFlink`的Flink集群实例[^3]。这里参数 `-n` 表示TaskManager的数量,而 `-s` 则指定了每个TaskManager中的slot数。 #### 提交Flink应用至YARN Application Mode 另一种方式是以application模式提交单个Flink应用程序给YARN,在这种情况下,每当有新的任务要执行时都会动态地请求资源。使用如下命令完成此操作: ```bash ./flink run-application -t yarn-application \ -c com.wubaibao.flinkjava.code.chapter3.SocketWordCount \ /root/FlinkJavaCode-1.0-SNAPSHOT-jar-with-dependencies.jar ``` 上述指令将指定类路径下的主函数作为入口点,并加载相应的JAR包文件到YARN环境中去执行[^4]。 #### 资源管理和调度策略 无论是采用session还是application的方式,当Flink作业被提交到YARN之后,后者负责处理所有的资源分配以及容器生命周期管理等问题。这意味着开发者无需关心底层细节,只需专注于编写高效的流处理逻辑即可[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值