Datanode Hang with High thread blocked

简介:

前段时间线上的Flume突然不稳定起来,各种socket read/write timeout. Block recover也一直不成功.查看Datanode的日志确实这段时间packresponder各种连接失败,读取失败,各种异常:PrematureEOF from inputStream/Connection reset/Interrupted receiveBlock/,在某些条件下也触发坏块的产生.

奇怪的是这段时间有问题的datanode的负载,网卡IO都不高,只是出问题时datanode会伴随着high session.接着部署个集群的thread监控才发现了原因:

Datanode默认每6dfs.datanode.directoryscan.interval)小时调用DirectoryScanner去做内存和磁盘数据集块校验,而这个过程fdataset这个数据结构一直持有独占锁,导致其他的线程都被BLOCK住,而数据量越大在默认情况1个(dfs.datanode.directoryscan.threads)线程的执行时间越久.虽然在HADOOP-4584后分离了diskscanner和heartbeat sender但是还是存在共享竞争资源,所以严重情况下仍然可能导致假死.知道了原因后,把这个参数调大后可以加速扫描速度,进而降低锁的时间使得datanode快速恢复服务:

可以看到,调整后threadblock数极大降低了:

wKiom1MUsYuQxZu7AAOq5VKvJcY350.jpg


这个问题在HADOOP2.3.0改善了一部分,将getfilelength部分以async disk scan的方式获取,降低了锁定的时间.



本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1367235,如需转载请自行联系原作者



相关文章
|
缓存
IDEA找不到或无法加载主类
IDEA找不到或无法加载主类
4476 0
IDEA找不到或无法加载主类
|
人工智能 自然语言处理 搜索推荐
阿里云百炼产品月刊【2025年2月】
本期⽉刊主要亮点包括推出全新多模态理解生成大模型通义千问Omni系列,支持文本、图像、语音和视频输入,提供流式输出和四种自然对话音色,新增高性价比图生视频模型wanx2.1-i2v-turbo,生成速度快,耗时仅为旧模型的三分之一。此外,qwen-plus采购季资源包上线,享受8.6折优惠;qwen-max模型降价88%,极大降低使用门槛。智能体应用和工作流应用现支持DeepSeek系列模型,增强私有知识库问答和任务型、对话型工作流构建能力。文件交互和批量节点功能进一步提升应用灵活性和实用性。本月还推出了AI实训营和应用开发实训营,提供手把手AI课程和企业级多模态应用构建指导。
1409 0
|
机器学习/深度学习 存储 监控
Elasticsearch 在日志分析中的应用
【9月更文第2天】随着数字化转型的推进,日志数据的重要性日益凸显。日志不仅记录了系统的运行状态,还提供了宝贵的洞察,帮助企业改进产品质量、优化用户体验以及加强安全防护。Elasticsearch 作为一个分布式搜索和分析引擎,因其出色的性能和灵活性,成为了日志分析领域的首选工具之一。本文将探讨如何使用 Elasticsearch 作为日志分析平台的核心组件,并详细介绍 ELK(Elasticsearch, Logstash, Kibana)栈的搭建和配置流程。
949 4
|
机器学习/深度学习 编解码 边缘计算
YOLOv5改进 | 卷积模块 | 用ShuffleNetV2卷积替换Conv【轻量化网络】
本文介绍了如何在YOLOv5中用ShuffleNetV2替换卷积以减少计算量。ShuffleNetV2是一个轻量级网络,采用深度可分离卷积、通道重组和多尺度特征融合技术。文中提供了一个逐步教程,包括ShuffleNetV2模块的代码实现和在YOLOv5配置文件中的添加方法。此外,还分享了完整的代码链接和GFLOPs的比较,显示了GFLOPs的显著减少。该教程适合初学者实践,以提升深度学习目标检测技能。
YOLOv5改进 | 卷积模块 | 用ShuffleNetV2卷积替换Conv【轻量化网络】
|
XML 关系型数据库 MySQL
支付系统----微信支付19---集成MyBatis-plus,数据库驱动对应的依赖版本设置问题,5没版本没有cj这个依赖,mysql驱动默认的是版本8,这里是一个父类,数据库都有,写个父类,继承就行
支付系统----微信支付19---集成MyBatis-plus,数据库驱动对应的依赖版本设置问题,5没版本没有cj这个依赖,mysql驱动默认的是版本8,这里是一个父类,数据库都有,写个父类,继承就行
|
缓存 Java 大数据
CDH大数据环境参数优化指南
CDH大数据环境参数优化指南
|
消息中间件 Java Kafka
zookeeper:Unexpected exception, exiting abnormally ::java.io.EOFException
zookeeper:Unexpected exception, exiting abnormally ::java.io.EOFException
630 1
zookeeper:Unexpected exception, exiting abnormally ::java.io.EOFException
|
缓存 监控 Java
"Java垃圾回收太耗时?阿里HBase GC优化秘籍大公开,让你的应用性能飙升90%!"
【8月更文挑战第17天】阿里巴巴在HBase实践中成功将Java垃圾回收(GC)时间降低90%。通过选用G1垃圾回收器、精细调整JVM参数(如设置堆大小、目标停顿时间等)、优化代码减少内存分配(如使用对象池和缓存),并利用监控工具分析GC行为,有效缓解了高并发大数据场景下的性能瓶颈,极大提升了系统运行效率。
489 4
|
资源调度 分布式计算 Hadoop
实时计算 Flink版操作报错合集之perjob提交给yarn,报错显示无法连接yarn- Connecting to ResourceManager,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
分布式计算 API Spark
Spline部署&测试
Spline是Spark的元数据管理和血缘追踪工具,通过Docke部署。安装涉及下载docker-compose.yml和.env文件,使用`docker compose up -d`命令启动,包括rest-server(核心,处理血缘数据并存储在ArangoDB)、arangodb(多模型数据库)、ui(Web服务)等组件。测试中使用pyspark进行血缘捕获,通过spark-submit命令指定Spline相关依赖并连接到Spline服务器。成功后,血缘数据可在Spline UI中查看。未来计划在DolphinScheduler上测试Spark SQL任务并启用血缘追踪。
789 0