记一次 Flink 作业启动缓慢

这篇具有很好参考价值的文章主要介绍了记一次 Flink 作业启动缓慢。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

记一次 Flink 作业启动缓慢

背景

应用发现,Hadoop集群的hdfs较之前更加缓慢,且离线ELT任务也以前晚半个多小时才能跑完。此前一直没有找到突破口所以没有管他,推测应该重启一下Hadoop集群就可以了。今天突然要重启一个Flink作业,发现有一个过程卡了五分钟。

现象

记一次 Flink 作业启动缓慢,Hadoop,大数据,Flink,flink,大数据,hadoop,hdfs

由上图可知09:36到09:41这两个过程中间花了五分钟,这两条都是Flink的日志,所以推测中间是Flink的某些过程卡住了。那Flink中间做了什么呢?

原因分析

可以看到这两条日志都是由flink同一个类所打印的:org.apache.flink.yarn.YarnClusterDescriptor ,所以去看下这个类的源码就知道了。
我们找到Flink源码的这个类org.apache.flink.yarn.YarnClusterDescriptor ,发现卡住之前的那条日志,也就是09:36那条日志,是由下面这条代码打印。

记一次 Flink 作业启动缓慢,Hadoop,大数据,Flink,flink,大数据,hadoop,hdfs

我们在看下 09:41 的那条日志是怎么打印的,我们找到了下面这个方法

记一次 Flink 作业启动缓慢,Hadoop,大数据,Flink,flink,大数据,hadoop,hdfs

看下在哪里调用了这个方法:
记一次 Flink 作业启动缓慢,Hadoop,大数据,Flink,flink,大数据,hadoop,hdfs

而正是startAppMaster这个方法调用了removeLocalhostBindHostSetting

记一次 Flink 作业启动缓慢,Hadoop,大数据,Flink,flink,大数据,hadoop,hdfs

现在我们再看下第一条日志代码位置

记一次 Flink 作业启动缓慢,Hadoop,大数据,Flink,flink,大数据,hadoop,hdfs

可以得出一个结论,卡住的代码是startAppMaster 方法从开始执行到调用 startAppMasterremoveLocalhostBindHostSetting 这个方法中间的那些代码,那我们可以看下这中间代码在做什么操作。
发现基本都是在调用YarnApplicationFileUploader 这个用于上传文件到YARN应用程序staging目录的工具类在往HDFS上传Flink作业所需的jar包或者配置文件。

final YarnApplicationFileUploader fileUploader =
                YarnApplicationFileUploader.from(
                        stagingDirFs,
                        stagingDirPath,
                        providedLibDirs,
                        appContext.getApplicationId(),
                        getFileReplication());

        // The files need to be shipped and added to classpath.
        Set<Path> systemShipFiles = new HashSet<>(shipFiles)

所以基本可以断定,这个Flink作业在向HDFS写文件花了太多时间(5分钟)。那这个时间是正常的吗?我们找了一下此前启动这个任务的日志,发现当时这一步就快很多,一分多钟就完事了。

记一次 Flink 作业启动缓慢,Hadoop,大数据,Flink,flink,大数据,hadoop,hdfs

所以应该是HDFS变慢了,测试一下上传个文件看看:

记一次 Flink 作业启动缓慢,Hadoop,大数据,Flink,flink,大数据,hadoop,hdfs

发现传输一个23GB的文件需要10分钟左右。

再看下集群负载,都是正常范围以内,与此前持平,其他作业也无异常。

HDFS慢的原因可能和集群负载、集群小文件过多、网络、磁盘故障、namenode请求负载等等有关系。根据之前经验,太久没有重启集群HDFS也会变慢。因为排查集群各个方面都正常,所以计划使用重启大法 :)

再重启之后再尝试HDFS上传文件测试,发现明显快了很多了,同样一个23GB的文件现在只需要1分多钟。

记一次 Flink 作业启动缓慢,Hadoop,大数据,Flink,flink,大数据,hadoop,hdfs

本文的重点主要在于如何判断Flink作业卡住原因,如有错误,欢迎指正。文章来源地址https://www.toymoban.com/news/detail-834308.html

到了这里,关于记一次 Flink 作业启动缓慢的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何处理 Flink 作业中的数据倾斜问题?

    什么是数据倾斜? 由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点。 举例:一个 Flink 作业包含 200 个 Task 节点,其中有 199 个节点可以在很短的时间内完成计算。但是有一个节点执行时间远超其他结果,并且随着数据量的持续增加,导致该计算节点挂掉,从

    2024年02月10日
    浏览(52)
  • Flink 内容分享(二十七):Hadoop vs Spark vs Flink——大数据框架比较

    大数据开发离不开各种框架,我们通过学习 Apache Hadoop、Spark 和 Flink 之间的特征比较,可以从侧面了解要学习的内容。众所周知,Hadoop vs Spark vs Flink是快速占领 IT 市场的三大大数据技术,大数据岗位几乎都是围绕它们展开。 本文,将详细介绍三种框架之间的区别。 Hadoop:为

    2024年02月01日
    浏览(64)
  • 【数据可靠性】Flink和Kafka连接时的精确一次保证

    端到端的 exactly-once(精准一次) kafka - Flink - kafka 输入数据源端的 Kafka 可以对数据进行持久化保存,并可以重置偏移量(offset) Flink 内部可以通过检查点机制保证状态和处理结果的 exactly-once 语义 两阶段提交(2PC) 。 写入 Kafka 的过程实际上是一个两段式的提交:处理完毕

    2024年02月02日
    浏览(39)
  • 记一次docker启动失败的问题排查

    以前在虚拟机上安装了一个docker,可以正常使用的,今天突然宿主机机器内存条坏了,换了内存条后启动机器,再使用 systemctrl start docker 启动docker,最后使用 docker start containID 启动报错 网上没有找到相应的描述,仔细分析看是 write /proc/sys/kernel/shmmni 报错了,错误原因是 in

    2024年02月14日
    浏览(60)
  • 记一次Linux启动Mysql异常解决

    并没有发现3306数据库端口 service mysqld start systemctl start mysqld.service 都无效,报错 发现是磁盘空间不足。。。 (下图是已经清理过的结果截图) 然后把磁盘的不重要文件直接删除即可 rm -rf * 总结: 第一步看全局端口占用情况 第二步看日志/根据提示命令看信息 其实,在启动My

    2024年02月14日
    浏览(49)
  • 记一次docker服务启动失败解决过程

    环境:centos 7.6 报错:start request repeated too quickly for docker.service 由于服务器修复了内核漏洞,需要重启,没想到重启后,docker启动失败了 查看状态 如下图 里面有一行提示: 提示要 journalctl -x 这个命令查看详细问题,其实用这个命令无法定位到具体问题的,于是使用了另外一

    2024年01月18日
    浏览(76)
  • 大数据系统常用组件理解(Hadoop/hive/kafka/Flink/Spark/Hbase/ES)

    一.Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。 Hadoop的核心是yarn、HDFS和Mapreduce。yarn是资源管理系统,实现资源调度,yarn是Hadoop2.0中的资源管理系统,总体上是master/slave结构。对于yarn可以粗浅将其理解

    2024年02月20日
    浏览(44)
  • Flink流批一体计算(3):FLink作业调度

    架构 所有的分布式计算引擎都需要有集群的资源管理器,例如:可以把MapReduce、Spark程序运行在YARN集群中、或者是Mesos中。Flink也是一个分布式计算引擎,要运行Flink程序,也需要一个资源管理器。而学习每一种分布式计算引擎,首先需要搞清楚的就是:我们开发的分布式应用

    2024年02月10日
    浏览(46)
  • 记一次Elasticsearch GeoIpDownloader的启动异常排查过程

    最近碰到了Elasticsearch GeoIpDownloader相关的一个异常,花费了不少精力排查,故此记录一下,希望碰到同样问题的童鞋们少走弯路。 这个异常是在Elasticsearch启动的过程中报的error,如下所示,从提示信息来看是因为GeoIpDownloader更新数据库失败导致。 GeoIpDownloader是用于下载地图数

    2024年02月02日
    浏览(41)
  • 记一次.Net Core程序启动失败的排查过程

    阅文时长 | 2分钟 字数统计 | 3212字符 主要内容 | 1、引言背景 2、排查.NetCore启动失败详细过程 3、声明与参考资料 『记一次.Net Core程序启动失败的排查过程』 编写人 | SCscHero 编写时间 | 2021/12/23 PM2:6 文章类型 | 系列 完成度 | 已完成 座右铭 每一个伟大的事业,都有一个微不足

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包