一、问题现象,使用flink on yarn 模式,写入数据到clickhouse,但是在yarn 集群充足的情况下一直报:Deployment took more than 60 seconds. Please check if the requested resources are available in the YARN cluster,表面现象是 yarn 集群资源可能不够,实际yarn 集群资源是够用的。

查看flink jobmanager的日志,发现日志中一直在出现如下报错:

Could not resolve ResourceManager address akka.tcp://flink@xxxxxxxxx.cn:38121/user/rpc/resourcemanager_*, retrying in 10000 ms: Could not connect to rpc endpoint under address akka.tcp://xxxxxxx.cn:38121/user/rpc/resourcemanager_*.

从这个日志来看,也就基本可以确定不是yarn集群资源的问题,是yarn 集群通信出现了问题。

1)、交叉验证,发现提交别的flink streamling 任务都不会存在该问题,只有写clickhouse的时候才会出现该问题,初步排除可能是代码问题或者该任务的jar包引起的。

2)、查看pom依赖:

  1. <dependency>
  2. <groupId>org.apache.flink</groupId>
  3. <artifactId>flink-connector-jdbc_2.11</artifactId>
  4. <version>${flink.version}</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.flink</groupId>
  8. <artifactId>flink-streaming-java_2.11</artifactId>
  9. <version>${flink.version}</version>
  10. <scope>provided</scope>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.apache.flink</groupId>
  14. <artifactId>flink-connector-kafka_2.11</artifactId>
  15. <version>${flink.version}</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.apache.flink</groupId>
  19. <artifactId>flink-java</artifactId>
  20. <version>${flink.version}</version>
  21. <scope>provided</scope>
  22. </dependency>
  23. <dependency>
  24. <groupId>ru.yandex.clickhouse</groupId>
  25. <artifactId>clickhouse-jdbc</artifactId>
  26. <version>${clickhouse-jdbc.version}</version>
  27. </dependency>
  1. <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>${mysql-connector-java.version}</version>
    </dependency>

从日志中虽然看不出明显的jar包冲突问题,但是依然能从Could not resolve ResourceManager address akka.tcp://flink@xxxxxxxxx.cn:38121/user/rpc/resourcemanager_*, retrying in 10000 ms: Could not connect to rpc endpoint under address akka.tcp://xxxxxxx.cn:38121/user/rpc/resourcemanager_*. 联想到可能是jar冲突或者jar包版本导致的冲突,导致 connect 失败。

联想到hadoop 环境中,最容易出现冲突的包,如下所示,首先去排查。

  1. <groupId>com.google.guava</groupId>
  2. <artifactId>guava</artifactId>

  然后发现,果然clickhouse-jdbc中存在这个包,如下所示

在pom中排除该包,如下所示

  1. <dependency>
  2. <groupId>ru.yandex.clickhouse</groupId>
  3. <artifactId>clickhouse-jdbc</artifactId>
  4. <version>${clickhouse-jdbc.version}</version>
  5. <exclusions>
  6. <exclusion>
  7. <groupId>com.google.guava</groupId>
  8. <artifactId>guava</artifactId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>

重新运行,问题得到解决。

二、问题启示:

1、所有的日志中没有地方显示代码冲突,表层现象为Could not resolve ResourceManager address akka.tcp://flink@xxxxxxxxx.cn:38121/user/rpc/resourcemanager_*, retrying in 10000 ms: Could not connect to rpc endpoint under address akka.tcp://xxxxxxx.cn:38121/user/rpc/resourcemanager_*. 很难联想到jar包冲突,后来灵感来源于

https://blog.csdn.net/qq_31957747/article/details/108883793   这个篇博文,虽然发生冲突的jar是不一样,但是问题很类似,所以朝这个方向去做了尝试。发现jar包冲突,真的可能会带来这个问题。

2、flink on yarn 模式中,最容易出现flink任务的jar包和hadoop集群中的jar包冲突。 在写代码的时候,一般pom中可能是检测不出来的,因为很多包不直接依赖。但是在flink run -m yarn-cluster 提交任务时,却会使用到hadoop lib 下的classpath。 所以这种冲突代码中很难检测,实际中却很容易出现。

3、不要被表面的现象迷惑,要能根据现象去看到本质,这样才能解决到问题。

flink clickhouse-jdbc和flink-connector 写入数据到clickhouse因为jar包冲突导致的60 seconds.Please check if the requested resources are available in the YARN cluster和Could not resolve ResourceManager address akka报错血案的更多相关文章

  1. 【maven】排除maven中jar包依赖的解决过程 例子:spring cloud启动zipkin,报错maven依赖jar包冲突 Class path contains multiple SLF4J bindings.

    一直对于maven中解决jar包依赖问题的解决方法纠结不清: 下面这个例子可以说明一个很简单的解决方法: 项目启动报错: Connected to the target VM, address: '1 ...

  2. spring cloud启动zipkin,报错maven依赖jar包冲突 Class path contains multiple SLF4J bindings

    项目启动报错: Connected to the target VM, address: '127.0.0.1:59412', transport: 'socket' SLF4J: Class pat ...

  3. 日志jar包冲突报错:Class path contains multiple SLF4J bindings

    问题现象:tomcat启动卡死,报错日志如下: 十一月 07, 2017 8:35:45 下午 org.apache.catalina.core.ApplicationContext log 信息: ...

  4. Failed to resolve directive: el vue2报错

    vue2报错 Failed to resolve directive: el 为什么会报这个错呢,主要还是因为vue升级的时候,v-el在vue2.x以后被淘汰.使用新的标签ref替换v-el,接下来 ...

  5. BeanCreationException报错启动不起来(jar包冲突)

    一月 23, 2015 3:46:13 下午 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache T ...

  6. Excel文件按照指定模板导入数据(用jxl.jar包)

        本文中的方法只适合Excel2003,要读取Excel2007最好使用poi.jar,据说poi.jar还在更新,jxl.jar已经不更新了,处理Excel文件的读写问题最好还是学习poi.j ...

  7. 完美解决cannot resolve symbol servlet 的报错

    1.右键点击项目,打开open module settings 2.选择Libraries 3.选择中间+号,点击java,然后选择tomcat/lib/servlet-api.jar 4.点击app ...

  8. Tomcat JAR包冲突报错

    查看Tomcat下有两个PDF加密的jar包如图: 删除这个bcprov-jdk14-138.jar包,然后重启Tomcat就好了. 这个jar包和Tomcat中的一个包冲突,反复调用导致的. 参考: ...

  9. JSON数据解析及gson.jar包

    从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送. 服务器端的编程语言只能以如下 3 种格式返回数据: HTML XML JSON JSON一种简单的数据格式,比xml更轻巧. JS ...

随机推荐

  1. 44、wget和curl的常用参数

    1.wget: wget是文件下载的工具: 不加任何参数是直接下载该文件: (1)-O: 将下载的文件指定为特定的文件名: wget -O baidu.html www.baidu.com --201 ...

  2. Pandas高级教程之:统计方法

    目录 简介 变动百分百 Covariance协方差 Correlation相关系数 rank等级 简介 数据分析中经常会用到很多统计类的方法,本文将会介绍Pandas中使用到的统计方法. 变动百分百 ...

  3. Vue Element-ui表单校验规则,你掌握了哪些?

    1.前言   Element-ui表单校验规则,使得错误提示可以直接在form-item下面显示,无需弹出框,因此还是很好用的.   我在做了登录页面的表单校验后,一度以为我已经很了解表单的校验规则. ...

  4. CentOS-yum安装Nginx

    查看系统版本 $ cat /etc/redhat-release Nginx 不在默认的 yum 源中,使用官网的 yum 源 $ rpm -ivh http://nginx.org/packages ...

  5. 12 shell case in语句

    Shell也支持两种分支结构(选择结构),分别是 if else 语句和 case in 语句.当分支较多,并且判断条件比较简单时,使用 case in 语句就比较方便了. if else 语句与ca ...

  6. 第二届 BJD wp(reverse和crypto)

    re 1.第一题拖入ida,flag就是直接明文摆着 2.第二题是8086的程序,拖入ida,发现有个jmp无限跳转,可能是段寄存器被修改了,ida无法将后面的汇编识别出来,所以后面才有很多无效数据, ...

  7. konga的初步使用

    目录 1. 设置连接 2. konga的重要功能 Dashboard Snapshots Settings 3. 通过konga 实现kong api配置 前言: 在上篇文章中,我们已经创建了一个到k ...

  8. Python报错“UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)”的解决办法

    最近在用Python处理中文字符串时,报出了如下错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ...

  9. Adaptive AUTOSAR 学习笔记 7 - 应用设计和 Manifest

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...

  10. python 异常获取方法

    import sys #第1:print(6/0) #直接运行该命令,出现异常,程序终止 #异常提示: '''Traceback (most recent call last): File " ...