Apache Flink 1.12.0 on Yarn(3.1.1) 所遇到的問題

news2024/11/26 14:59:52

Apache Flink 1.12.0 on Yarn(3.1.1) 所遇到的問題

新搭建的FLINK集群出现的问题汇总

1.新搭建的Flink集群和Hadoop集群无法正常启动Flink任务

在这里插入图片描述

查看这个提交任务的日志无法发现有用的错误信息。

进一步查看yarn日志:
在这里插入图片描述

发现只有JobManager的错误日志出现了如下的错误:/bin/bash: /bin/java: No such file or directory。

正常情况下执行配置完成java之后,执行/bin/java的会出现如下的结果:

在这里插入图片描述

根据查到的提示,出现这个情况(/bin/bash: /bin/java: No such file or directory)的原因是软连接的问题。因此需要在每个节点都创建软连接:ls -s /usr/java/jdk1.8.0_221 /bin/java

每个节点创建完软连接之后,再次执行:/bin/java结果如下:

在这里插入图片描述

每个节点的软连接已生效,再次提交任务成功。

概要

根據官方文檔配置在 $FLINK_HOME/lib 加入 flink-shaded-hadoop-3-uber-3.1.1.7.1.1.0-565-9.0.jar ,經過驗證,其實這個可以不加,只加上下面的 hadoop classpath 就行。

或者在環境變量配置文件中 加入 hadoop classpath.

 ## 注意:lib 後面一定要加 *
 export Hadoop_CLASSPATH=$Hadoop_CLASSPATH:$HADOOP_HOME/lib/*
 export HADOOP_CLASSPATH=`hadoop classpath`

问题1

启动 yarn-session.sh 出現 Exit code: 127 Stack trace: ExitCodeException exitCode=127,具體的錯誤日誌如下:

 2023-11-01 14:26:44,408 ERROR org.apache.flink.yarn.cli.FlinkYarnSessionCli [] - Error while running the Flink session.
 org.apache.flink.client.deployment.ClusterDeploymentException: Couldn't deploy Yarn session cluster
  at org.apache.flink.yarn.YarnClusterDescriptor.deploySessionCluster(YarnClusterDescriptor.java:411) ~[flink-dist_2.11-1.12.0.jar:1.12.0]
  at org.apache.flink.yarn.cli.FlinkYarnSessionCli.run(FlinkYarnSessionCli.java:498) ~[flink-dist_2.11-1.12.0.jar:1.12.0]
  at org.apache.flink.yarn.cli.FlinkYarnSessionCli.lambda$main$4(FlinkYarnSessionCli.java:730) ~[flink-dist_2.11-1.12.0.jar:1.12.0]
  at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_221]
  at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_221]
  at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729) ~[hadoop-common-3.1.1.jar:?]
  at org.apache.flink.runtime.security.contexts.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41) ~[flink-dist_2.11-1.12.0.jar:1.12.0]
  at org.apache.flink.yarn.cli.FlinkYarnSessionCli.main(FlinkYarnSessionCli.java:730) [flink-dist_2.11-1.12.0.jar:1.12.0]
 Caused by: org.apache.flink.yarn.YarnClusterDescriptor$YarnDeploymentException: The YARN application unexpectedly switched to state FAILED during deployment.
 Diagnostics from YARN: Application application_1617189748122_0017 failed 1 times (global limit =2; local limit is =1) due to AM Container for appattempt_1617189748122_0017_000001 exited with exitCode: 127
 Failing this attempt.Diagnostics: [2023-11-01 14:26:44.107]Exception from container-launch.
 Container id: container_1617189748122_0017_01_000001
 Exit code: 127
 
 [2023-11-01 14:26:44.108]Container exited with a non-zero exit code 127. Error file: prelaunch.err.
 Last 4096 bytes of prelaunch.err :
 
 [2023-11-01 14:26:44.109]Container exited with a non-zero exit code 127. Error file: prelaunch.err.
 Last 4096 bytes of prelaunch.err :
 
 For more detailed output, check the application tracking page: http://hadoop001:8088/cluster/app/application_1617189748122_0017 Then click on links to logs of each attempt.
 . Failing the application.
 If log aggregation is enabled on your cluster, use this command to further investigate the issue:
 yarn logs -applicationId application_1617189748122_0017
  at org.apache.flink.yarn.YarnClusterDescriptor.startAppMaster(YarnClusterDescriptor.java:1078) ~[flink-dist_2.11-1.12.0.jar:1.12.0]
  at org.apache.flink.yarn.YarnClusterDescriptor.deployInternal(YarnClusterDescriptor.java:558) ~[flink-dist_2.11-1.12.0.jar:1.12.0]
  at org.apache.flink.yarn.YarnClusterDescriptor.deploySessionCluster(YarnClusterDescriptor.java:404) ~[flink-dist_2.11-1.12.0.jar:1.12.0]
  ... 7 more
 
 ------------------------------------------------------------
  The program finished with the following exception:
 
 org.apache.flink.client.deployment.ClusterDeploymentException: Couldn't deploy Yarn session cluster
  at org.apache.flink.yarn.YarnClusterDescriptor.deploySessionCluster(YarnClusterDescriptor.java:411)
  at org.apache.flink.yarn.cli.FlinkYarnSessionCli.run(FlinkYarnSessionCli.java:498)
  at org.apache.flink.yarn.cli.FlinkYarnSessionCli.lambda$main$4(FlinkYarnSessionCli.java:730)
  at java.security.AccessController.doPrivileged(Native Method)
  at javax.security.auth.Subject.doAs(Subject.java:422)
  at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729)
  at org.apache.flink.runtime.security.contexts.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
  at org.apache.flink.yarn.cli.FlinkYarnSessionCli.main(FlinkYarnSessionCli.java:730)
 Caused by: org.apache.flink.yarn.YarnClusterDescriptor$YarnDeploymentException: The YARN application unexpectedly switched to state FAILED during deployment.
 Diagnostics from YARN: Application application_1617189748122_0017 failed 1 times (global limit =2; local limit is =1) due to AM Container for appattempt_1617189748122_0017_000001 exited with exitCode: 127
 Failing this attempt.Diagnostics: [2023-11-01 14:26:44.107]Exception from container-launch.
 Container id: container_1617189748122_0017_01_000001
 Exit code: 127
 
 [2023-11-01 14:26:44.108]Container exited with a non-zero exit code 127. Error file: prelaunch.err.
 Last 4096 bytes of prelaunch.err :
 
 [2023-11-01 14:26:44.109]Container exited with a non-zero exit code 127. Error file: prelaunch.err.
 Last 4096 bytes of prelaunch.err :
 
 For more detailed output, check the application tracking page: http://hadoop001:8088/cluster/app/application_1617189748122_0017 Then click on links to logs of each attempt.
 . Failing the application.
 If log aggregation is enabled on your cluster, use this command to further investigate the issue:
 yarn logs -applicationId application_1617189748122_0017
  at org.apache.flink.yarn.YarnClusterDescriptor.startAppMaster(YarnClusterDescriptor.java:1078)
  at org.apache.flink.yarn.YarnClusterDescriptor.deployInternal(YarnClusterDescriptor.java:558)
  at org.apache.flink.yarn.YarnClusterDescriptor.deploySessionCluster(YarnClusterDescriptor.java:404)
  ... 7 more
 2023-11-01 14:26:44,415 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Cancelling deployment from Deployment Failure Hook
 2023-11-01 14:26:44,416 INFO org.apache.hadoop.yarn.client.RMProxy [] - Connecting to ResourceManager at hadoop001/192.168.100.100:8032
 2023-11-01 14:26:44,418 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Killing YARN application
 2023-11-01 14:26:44,429 INFO org.apache.hadoop.yarn.client.api.impl.YarnClientImpl [] - Killed application application_1617189748122_0017
 2023-11-01 14:26:44,532 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Deleting files in hdfs://hadoop001:8020/user/hadoop/.flink/application_1617189748122_0017.

然後下載具體的 container 日誌:

 yarn logs -applicationId application_1617189748122_0017 -containerId container_1617189748122_0017_01_000001 -out /tmp/

查看 container 日誌

 LogAggregationType: AGGREGATED
 ====================================================================
 LogType:jobmanager.err
 LogLastModifiedTime:Thu Apr 01 14:26:45 +0800 2021
 LogLength:48
 LogContents:
 /bin/bash: /bin/java: No such file or directory
 
 End of LogType:jobmanager.err
 *******************************************************************************
 
 
 End of LogType:jobmanager.out
 *******************************************************************************
 
 Container: container_1617189748122_0017_01_000001 on hadoop001_53613
 LogAggregationType: AGGREGATED
  ====================================================================

注意日誌中的,找不到 /bin/bash: /bin/java: No such file or directory

 [hadoop@hadoop001 bin]$ echo $JAVA_HOME
 /usr/java/jdk1.8.0_221

然後做一個軟連接

 ls -s /usr/java/jdk1.8.0_221 /bin/java

问题2

啟動 yarn-session.sh 出現 Container exited with a non-zero exit code 126,具體的錯誤日誌如下:

org.apache.flink.client.deployment.ClusterDeploymentException: Couldn't deploy Yarn session cluster
  at org.apache.flink.yarn.YarnClusterDescriptor.deploySessionCluster(YarnClusterDescriptor.java:411)
  at org.apache.flink.yarn.cli.FlinkYarnSessionCli.run(FlinkYarnSessionCli.java:498)
  at org.apache.flink.yarn.cli.FlinkYarnSessionCli.lambda$main$4(FlinkYarnSessionCli.java:730)
  at java.security.AccessController.doPrivileged(Native Method)
  at javax.security.auth.Subject.doAs(Subject.java:422)
  at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729)
  at org.apache.flink.runtime.security.contexts.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
  at org.apache.flink.yarn.cli.FlinkYarnSessionCli.main(FlinkYarnSessionCli.java:730)
 Caused by: org.apache.flink.yarn.YarnClusterDescriptor$YarnDeploymentException: The YARN application unexpectedly switched to state FAILED during deployment.
 Diagnostics from YARN: Application application_1617189748122_0019 failed 1 times (global limit =2; local limit is =1) due to AM Container for appattempt_1617189748122_0019_000001 exited with exitCode: 126
 Failing this attempt.Diagnostics: [2023-11-01 14:43:23.068]Exception from container-launch.
 Container id: container_1617189748122_0019_01_000001
 Exit code: 126
 
 [2023-11-01 14:43:23.070]Container exited with a non-zero exit code 126. Error file: prelaunch.err.
 Last 4096 bytes of prelaunch.err :
 
 [2023-11-01 14:43:23.072]Container exited with a non-zero exit code 126. Error file: prelaunch.err.
 Last 4096 bytes of prelaunch.err :

查看 container 的日誌情況:

[hadoop@hadoop001 flink-1.12.0]$ yarn logs -applicationId application_1617189748122_0019 -show_application_log_info
 2023-11-01 15:09:07,880 INFO client.RMProxy: Connecting to ResourceManager at hadoop001/192.168.100.100:8032
 Application State: Completed.
 Container: container_1617189748122_0019_01_000001 on hadoop001_53613

下載 container 日誌,操作和上面問題 1 一樣。

查看報錯日誌

 broken symlinks(find -L . -maxdepth 5 -type l -ls):
 
 End of LogType:directory.info
 *******************************************************************************
 
 Container: container_1617189748122_0019_01_000001 on hadoop001_53613
 LogAggregationType: AGGREGATED
 ====================================================================
 LogType:jobmanager.err
 LogLastModifiedTime:Thu Apr 01 14:43:24 +0800 2021
 LogLength:37
 LogContents:
 /bin/bash: /bin/java: Is a directory
 
 End of LogType:jobmanager.err
 *******************************************************************************

注意:/bin/bash: /bin/java: Is a directory ,這個是關鍵日誌,經過排查發現是軟連接出現了錯誤。

 [root@hadoop001 bin]# ln -s /usr/java/jdk1.8.0_221/bin/java /bin/java
 [root@hadoop001 bin]#
 [root@hadoop001 bin]#
 [root@hadoop001 bin]# ll /bin/java
 lrwxrwxrwx 1 root root 31 Apr 1 16:09 /bin/java -> /usr/java/jdk1.8.0_221/bin/java
 [root@hadoop001 bin]#
 [root@hadoop001 bin]# /bin/java -version
 java version "1.8.0_221"
 Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
 Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

验证

啟動 …/bin/yarn-session.sh


如何查看正在运行的Yarn容器的日志??

众所周知,flink on yarn 分为jobmanager的容器和taskmanager的容器。

1.yarn application -list

2.yarn applicationattempt -list <ApplicationId>

3.yarn container -list <Application AttemptId>
到了这个第3步,就能看到每个容器的访问的url ,分别对应着jobmanager的和taskmanager的,但是具体怎么区分是哪个taskmanager的就只能依靠ip去区分。 htpp就用 curl 进行访问,https就用curl -k进行访问。

4.访问的结果包含了6种不同类型日志的访问路径:
	找到我们想看的日志的访问路径,然后访问,访问路径的最后的参数:-start=-4096代表了显示多少日志出来。
	如果想查看完整的日志,就应该把这个数调的很大

5.为了查看方便,应该使用 > 的方式把访问url的日志的结果输出到日志文件中。

FLINK ON YARN提交方式详解


目前自己用到的:yarn-per-job和yarn-applicaiton

他们的执行方式是不同的,执行yarn-per-job需要执行flink文件。同样的yarn-application也需要执行flik文件。


./flink run -t yarn-per-job -d \
-p 1 \
-ynm test_env_job \
-yD rest.flamegraph.enabled=true \
-yD jobmanager.memory.process.size=1G \
-yD taskmanager.memory.process.size=2G \
-yD taskmanager.numberOfTaskSlots=1 \
-yD env.java.opts="-Denv=test" \
-c com.xingye.demo.TestTimer \
/cgroups_test/test/fk.jar


./flink run-application -t yarn-application -d \
-p 5 \
-ynm test_impala_job \
-D rest.flamegraph.enabled=true \
-D jobmanager.memory.process.size=2G \
-D taskmanager.memory.process.size=8G \
-D taskmanager.numberOfTaskSlots=5 \
-c com.xingye.demo.ImpalaDemo1 \
/tmp/test_flink_impala/fk.jar

通过两种命令的对比就发现区别:
flink run -t yarn-per-job
flink run-application -t yarn-application

还有需要注意的是 -y* 这个参数是特有的使用yarn的时候就能使用的参数,也就是说yarn-per-job能用,yarn-application也能用。

-yD和-D动态参数的意思,作用就是覆盖flink-conf.yaml文件中的默认配置。唯一不同的地方就在于-yD只能在使用yarn的时候指定动态参数,不能在其他模式使用比如kubernetes无法使用-yD参数。-D可以在不同的方式下指定动态参数,-D是一种更通用的指定动态参数的方式。

总结:
	yarn-per-job和yarn-application运行的都是同一个文件,相同点在于都能使用yarn模式下特有的-y*的参数,并且都能使用-D动态参数。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1170624.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JOSEF约瑟 数显三相电压继电器 HJY-931A/D 导轨安装

名称&#xff1a;数字交流三相电压继电器型号&#xff1a;HJY-93系列品牌&#xff1a;JOSEF约瑟电压整定范围&#xff1a;10~450VAC额定电压&#xff1a;200、400VAC功率消耗&#xff1a;≤5W HJY系列 数字交流三相电压继电器 系列型号 HJY-931A/D数字式交流三相电压继电器&am…

吴恩达《机器学习》5-6:向量化

在深度学习和数值计算中&#xff0c;效率和性能是至关重要的。一个有效的方法是使用向量化技术&#xff0c;它可以显著提高计算速度&#xff0c;减少代码的复杂性。接下来将介绍向量化的概念以及如何在不同编程语言和工具中应用它&#xff0c;包括 Octave、MATLAB、Python、Num…

lvgl生成图片

网址&#xff1a;https://lvgl.io/tools/imageconverter CF_TRUE_COLOR:可以生成565&#xff0c;232&#xff0c;等多种形式的数组&#xff0c;选择Carray,会生成C数组。

2023.11.2事件纪念

然而造化又常常为庸人设计,以时间的流逝,来洗涤旧迹,仅以留下淡红的血色和微漠的悲哀。 回顾这次事件&#xff0c;最深的感触就是什么是团队的力量&#xff01; 当我们看到希望快要成功的时候&#xff0c;大家洋溢出兴奋开心的表情&#xff0c;一起的欢声笑语&#xff1b;但看…

抖音群控软件的作用是什么?

随着智能手机的普及和社交媒体的兴起&#xff0c;抖音成为了人们日常生活中不可或缺的一部分&#xff0c;许多人都通过抖音平台分享自己的生活、展示才艺、开展商业活动等。 然而&#xff0c;要想在抖音上获得更多的关注和收益&#xff0c;需要投入大量的时间和精力&#xff0…

【C语言初学者周冲刺计划】3.2将一个数组中的值逆序重新存放

目录 1解题思路&#xff1a; 2代码 3运行代码如图&#xff1a; 4总结&#xff1a; 1解题思路&#xff1a; 首先学会如何利用循环输入位数和输入数值&#xff0c;然后再利用循环逆序即可 2代码 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int…

佳易王钟表铭表维修养护拍图留存查询手表保养跟踪记录系统软件下载

佳易王钟表铭表维修养护拍图留存查询手表保养跟踪记录系统软件下载 【软件试用版下载、软件资讯或技术支持服务可以点击文章最下方官网】 佳易王钟表养护维修管理系统V16.3&#xff0c;录入维修订单&#xff0c;维修进度查询&#xff0c;会员活动方案&#xff0c;打印服务报…

并发安全问题之--锁失效和锁边界问题

并发安全问题之–锁失效和锁边界问题 此处为新增insert无法在SQL中通过数量限制(除非插入SQL中有子查询)&#xff0c;上面改进的乐观锁失效&#xff08;前一节的乐观锁适合修改数据&#xff09; 故使用悲观锁&#xff0c;synchronized如果加在方法上范围是this是整个service&…

OSG多视口创建:osgViewer::CompositeViewer

1、效果 在osg的实际应用场景中&#xff0c;有时候需要同时创建多个场景视图&#xff0c;并保证各个场景视图中有不一样的显示和操作&#xff1a;例如&#xff1a;漫游器、照相机、粒子效果、多个模型组合等。此时就要用到OSG提供的osgViewer::CompositeViewer类来实现这个需求…

音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法

一、介绍 音乐推荐与管理系统。本系统采用Python作为主要开发语言&#xff0c;前端使用HTML、CSS、BootStrap等技术搭建界面平台&#xff0c;后端使用Django框架处理请求&#xff0c;并基于Ajax等技术实现前端与后端的数据通信。在音乐个性推荐功能模块中采用通过Python编写协…

Jmeter和Postman哪个做接口测试会更好

软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中&#xff0c;有高手&#xff0c;自然也会有小白&#xff0c;但有一点我们无法否认&#xff0c;就是每一个高手都是从小白开始的&#xff0c;所以今天我们就来谈谈一大部分人在做的接口测试&#xff0c;小白变高手…

gcc -static 在centos stream8 和centos stream9中运行报错的解决办法

gcc -static 在centos stream8 和centos stream9中运行报错的解决办法&#xff1a; 报/usr/bin/ld: cannot find -lc 我们下载glibc-static&#xff1a; 选择x86_64的。 还有一个是libxcrypt-static&#xff0c;依旧在这个网站里搜。 rpm -ivh glibc-static-2.28-239.el8.x…

项目实战之理解代码一(vue.config.js)

文章目录 CDN 面经天天背&#xff0c;今天总算见到真的了。 OK&#xff0c;接下来让我们走进前端优化性能方式之一&#xff1a;CDN CDN CDN&#xff08;Content Delivery Network&#xff0c;内容分发网络&#xff09;是用于存储和传输静态资源&#xff08;如 JavaScript、CSS…

如何为一个Type类赋值

如何为一个Type类赋值 前言案例准备一、简单赋值 前言 今天我在写代码的时候遇到一个神奇的类——Type,虽然说我们都心知肚明这个类代表着什么&#xff08;字面意思嘛&#xff0c;很好理解&#xff09;&#xff0c;但是实操起来却无从下手&#xff0c;就如何对Type类进行赋值&…

基于 golang 从零到一实现时间轮算法 (二)

Go实现单机版时间轮 上一章介绍了时间轮的相关概念&#xff0c;接下来我们会使用 golang 标准库的定时器工具 time ticker 结合环状数组的设计思路&#xff0c;实现一个单机版的单级时间轮。 首先我们先运行一下下面的源码&#xff0c;看一下如何使用。 https://github.com/x…

一招优化百度网盘下载速度,不开会员也能提高几十倍倍下载速度

​ 百度网盘&#xff08;原百度云&#xff09;是百度推出的一项云存储服务&#xff0c;已覆盖主流PC和手机操作系统&#xff0c;包含Web版、Windows版、Mac版、Android版、Linux信创版、青春版、TV版、iPhone版和iPad版&#xff0c;并覆盖了主流联网车和非联网车。 用…

2023年山东省安全员C证证模拟考试题库及山东省安全员C证理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年山东省安全员C证证模拟考试题库及山东省安全员C证理论考试试题是由安全生产模拟考试一点通提供&#xff0c;山东省安全员C证证模拟考试题库是根据山东省安全员C证最新版教材&#xff0c;山东省安全员C证大纲整理…

Python 异常处理:try、except、else 和 finally 的使用指南

异常处理 当发生错误&#xff08;或我们称之为异常&#xff09;时&#xff0c;Python 通常会停止执行并生成错误消息。 try 块用于测试一段代码是否存在错误。 except 块用于处理错误。 else 块用于在没有错误时执行代码。 finally 块用于无论 try 和 except 块的结果如何…

vivado生成bit流错误---[DRC UCIO-1]

拿着开发板的例程&#xff0c;只修改了FPGA芯片&#xff0c;FPGA芯片是同一系列的。运行编译产生bit流出现如下错误 [DRC UCIO-1] Unconstrained Logical Port: 20 out of 22 logical ports have no user assigned specific location constraint (LOC). This may cause I/O con…

U盘显示无媒体怎么办?方法很简单

当出现U盘无媒体情况时&#xff0c;您可以在磁盘管理工具中看到一个空白的磁盘框&#xff0c;并且在文件资源管理器中不会显示出来。那么&#xff0c;导致这种问题的原因是什么呢&#xff1f;我们又该怎么解决呢&#xff1f; 导致U盘无媒体的原因是什么&#xff1f; 当您遇到上…