当前位置: 首页 > news >正文

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,如需转载请自行联系原作者



相关文章:

  • 安装heartbeat
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • 菜鸟学Linux 第065篇笔记 nfs
  • 更改INSM地址的操作
  • centos 7 yum安装kubernetes cluster 1.0
  • C++字符串string类常用操作详解(一)【初始化、遍历、连接】
  • Java设计模式圣经连载(03)-抽象工厂模式
  • Centos中文乱码问题的解决。
  • Python函数知识汇总-课堂笔记
  • AD与DNS集成,且有备份AD与DNS,主AD与DNS坏,备份DNS如何成为主
  • SubSonic3.0使用外连接查询时查询不出数据的问题修改
  • 海量文件拷贝(Windows/Linux)
  • VS.net和Reflector 图标解释
  • EPEL源
  • centos7 修改mac地址
  • 【Linux系统编程】快速查找errno错误码信息
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • codis proxy处理流程
  • django开发-定时任务的使用
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Git初体验
  • gops —— Go 程序诊断分析工具
  • JavaScript HTML DOM
  • java正则表式的使用
  • 当SetTimeout遇到了字符串
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 力扣(LeetCode)22
  • 时间复杂度与空间复杂度分析
  • 移动端解决方案学习记录
  • 用element的upload组件实现多图片上传和压缩
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​渐进式Web应用PWA的未来
  • #NOIP 2014#Day.2 T3 解方程
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • $jQuery 重写Alert样式方法
  • (1) caustics\
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (全注解开发)学习Spring-MVC的第三天
  • (五)MySQL的备份及恢复
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转)创业的注意事项
  • (转)关于多人操作数据的处理策略
  • .NET BackgroundWorker
  • .NET CF命令行调试器MDbg入门(一)
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .Net 垃圾回收机制原理(二)
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .Net接口调试与案例
  • .NET下ASPX编程的几个小问题