flink 任务提交问题汇总

本文总结了Flink任务提交过程中遇到的多种问题及其解决办法,包括WordCount.jar提交错误、批处理任务的Hadoop版本冲突、MySQL连接超时、checkpoint恢复失败、YARN并行任务配置以及流处理程序在Hadoop集群中挂掉的原因分析和解决方案。
摘要由CSDN通过智能技术生成

1、提交flink自带任务WordCount.jar遇到的问题:


- 问题描述:

最近在提交flink项目example下WordCount.jar批处理任务时遇到以下问题:

The main method caused an error: org.apache.flink.runtime.concurrent.FutureUtils$RetryException: Could not complete the operation. Number of retries has been exhausted.
之后就是拒绝连接等异常详细内容如下:
在这里插入图片描述
yarn 资源管理器,flink页面这样显示:
在这里插入图片描述
- 原因分析:

之后我重启了zk,hadoop,重新提交flink任务,但还是不行。
之后看到flink页面的内容.Service temporarily unavailable due to an ongoing leader election. Please refresh,让我想到之前提交任务也遇到过这种情况。于是考虑了 以下两个问题:
1、在yarn提交批处理任务的时候都是同一个任务,会不会产生冲突
2、结果输出会不会冲突
在yarn提交任务是不可能冲突的,任务之间是独立的,所以排除了第一种情况,然后就是输出问题,我提交任务的时候都是在同一个文件输出,这时候问题就来了如果结果都输出到同一个文件那不就乱了,flink好像也预知了这样的问题,因此报了上面的错误。


- 解决方案:
更改批处理的输出路径

如果你第一次是这样提交:

bin/flink run -m yarn-cluster -yjm 1024 -ytm 1024 ./examples/batch/WordCount.jar -input hdfs://hadoop01:9000/test/word -output hdfs://hadoop01:9000/test/result1

第二次就这样提交:

bin/flink run -m yarn-cluster -yjm 1024 -ytm 1024 ./examples/batch/WordCount.jar -input hdfs://hadoop01:9000/test/word -output hdfs://hadoop01:9000/test/result2

2、提交flink 批处理任务时遇到的问题


- 问题描述
最近写了一个flink批处理程序, 目的是读取hdfs文件,将文件数据写入到hbase。

项目是在idea中开发的 pom 文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>hdfs-flink</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <flink.version>1.11.2</flink.version>
        <scala.binary.version>2.12</scala.binary.version>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>2.0.0-alpha1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>3.1.4</version>
        </dependency>

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-hadoop-compatibility_2.11</artifactId>
            <version>1.11.2</version>
        </dependency>

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-java</artifactId>
            <version>${flink.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-clients_${scala.binary.version}</artifactId>
            <version>${flink.version}</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.18</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.17</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase
### 回答1: 在 Apache Flink 中,有两种提交模式: 1. 本地模式:在本地运行 Flink 程序,通常用于开发和测试。 2. 集群模式:将 Flink 程序提交到远程 Flink 集群中运行。 在集群模式下,还有两种提交方式: - 交互式提交:通过 Flink 自带的 web 界面,手动提交 Flink 程序。 - 非交互式提交:通过命令行工具或者脚本自动提交 Flink 程序,通常用于生产环境。 ### 回答2: flink提交有两种模式:本地模式和集群模式。 1. 本地模式:在本地模式下,Flink应用程序可以直接在开发者的本地机器上运行。在本地模式下,应用程序不需要连接到Flink集群,并且所有的任务都在本地地机器上执行。这种模式适用于开发和测试Flink应用程序,它可以提供快速的开发和调试过程。 2. 集群模式:在集群模式下,Flink应用程序需要连接到一个Flink集群,这个集群由一组相互连接的Flink任务管理器(TaskManager)组成。在集群模式下,应用程序将提交Flink集群,由集群来分配和管理任务的执行。这种模式适用于生产环境中的实际应用程序部署,可以实现高可用性和高并发的计算。 无论是本地模式还是集群模式,都需要使用Flink自带的命令行工具或者使用Fink的API来提交应用程序。在本地模式下,可以直接使用命令`./bin/flink run`来提交应用程序。在集群模式下,首先需要在集群上启动Flink,然后使用命令`./bin/flink run -m <jobmanager-address> <path-to-jar-file>`来提交应用程序。 ### 回答3: flink提交有两种模式。 第一种是本地模式,也称为“单机模式”或“本地集群模式”。在这种模式下,flink作业是在本地计算机上运行的,不涉及到远程连接。这种模式适用于小规模的数据处理和开发测试,通过本地计算资源即可完成计算。在本地模式下,flink启动一个MiniCluster来模拟分布式集群环境,能够同时运行多个任务。本地模式对于快速迭代和调试有很大的帮助。 第二种是集群模式,也称为“分布式模式”。在这种模式下,flink作业是通过将任务提交到远程flink集群上执行的。远程flink集群由多台计算机组成,可以有效地处理大规模的数据。集群模式可以通过命令行或Web UI进行任务提交flink会将作业分配给可用资源,然后进行计算。集群模式可以根据实际需求进行扩展,提高计算的并行度和整体处理能力。 总结来说,flink提交有两种模式:本地模式和集群模式。本地模式适用于小规模的数据处理和开发测试,而集群模式适用于大规模数据的分布式计算。不论采用哪种模式,flink都能够提供高效、可靠的数据处理和分析能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值