1.总结


"Slow ReadProcessor" 和"Slow BlockReceiver"往往是因为集群负载比较高或者某些节点不健康导致的,本文主要是帮助你确认是因为集群负载高导致的还是因为某些节点的硬件问题。

2.症状


1.作业比以前运行的时间变长

2.Job的日志中有以下WARN的信息

2018-04-18 00:16:11,632 WARN [ResponseProcessor for block BP-<pool_id>:blk_<block_id>] org.apache.hadoop.hdfs.DFSClient: Slow ReadProcessor read fields took 57485ms (threshold=30000ms);
ack: seqno: 4 status: SUCCESS status: SUCCESS status: SUCCESS downstreamAckTimeNanos: 3284342, targets:
[DatanodeInfoWithStorage[x.x.x.x:50010,DS-26391dd6-c34d-4f7a-a6ff-6b9d264a6edd,DISK],
DatanodeInfoWithStorage[x.x.x.x:50010,DS-1840e064-e616-49d5-8ead-91f65bb3af93,DISK],
DatanodeInfoWithStorage[x.x.x.x:50010,DS-e884e0d2-b1a1-414d-925c-5d6efd1258e4,DISK]]

3.Datanode的日志中有以下WARN信息

2018-04-17 06:23:48,796 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Slow BlockReceiver write packet to mirror took 341ms (threshold=300ms)
2016-06-21 06:23:55,775 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Slow BlockReceiver write data to disk cost:873ms (threshold=300ms)
2018-04-17 08:37:52,397 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Slow flushOrSync took 534ms (threshold=300ms), isSync:false, flushTotalNanos=533345033ns
2018-04-17 08:38:57,929 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Slow manageWriterOsCache took 331ms (threshold=300ms)

请注意,单个节点的硬件问题可能会在整个群集中导致“Slow”错误。

3.原因


症状

原因

集群负载高

如果你的集群处于或接近资源上限(内存,cpu或磁盘),则你在处理作业时,你的集群可能无法确保数据本地化,因此需要在网络上传输数据块。如果是这种情况,由于使用集群上的额外负载来传输数据块,因此可能会在作业或数据节点中看到WARN消息。

Slow BlockReceiver write packet to mirror

这表明在网络上写入块时有延迟

Slow BlockReceiver write data to disk cost

这表示在将块写入OS缓存或磁盘时存在延迟

Slow flushOrSync

这表示在将块写入OS缓存或磁盘时存在延迟

Slow manageWriterOsCache

这表示在将块写入OS缓存或磁盘时存在延迟

需要注意的是,在生产环境的正常负载下,一些集群的WARN消息在datanode日志中是正常的。当单个节点具有比正常情况更多的上述WARN消息时,表明存在底层硬件问题。

4.解决办法


以下步骤将有助于确定导致DataNode日志中的“Slow”消息的底层硬件问题。

1.在每个DataNode上运行以下命令来收集所有Slow消息的计数:

egrep -o "Slow.*?(took|cost)" /path/to/current/datanode/log | sort | uniq -c

该命令将提供DataNode日志中所有“Slow”消息的计数。输出将类似于:

1000 Slow BlockReceiver write data to disk cost
234 Slow BlockReceiver write packet to mirror took
4 Slow flushOrSync took
6 Slow manageWriterOsCache took

2.如果单个节点的一个或多个类别的”Slow“消息比其他主机的”Slow“消息数量多出数量级,则需要调查底层硬件问题。

3.如果Slow消息数最多的是Slow BlockReceiver write packet tomirror took,请通过以下命令的输出来调查可能的网络问题:

  • ifconfig -a(定期检查问题主机上增加的errors和dropped的数量,往往代表的是网卡,网线或者上游的网络有问题)
  • netstat -s(与正常节点相比,查找大量重新传输的数据包或其他异常高的指标)。
  • netstat -s | grep -i retrans(整个集群执行)。 (在一个或多个节点上查找大于正常的计数)。

4.如果Slow消息最多的是一些其他消息,请使用以下命令检查磁盘问题:

  • iostat[高iowait百分比,超过15%]
  • iostat -x和sar -d(特定分区的高await或%util)
  • dmesg (磁盘错误)
  • 使用smartctl对磁盘进行健康检查:停止受影响节点的所有Hadoop进程,然后运行sudo smartctl -H /dev/<disk>,检查HDFS使用的每块<disk>
posted @
2019-04-09 15:14 
北漂-boy 
阅读(...) 
评论(...) 
编辑 
收藏

(转)SLOW READPROCESSOR;ERROR SLOW BLOCKRECEIVER错误日志分析的更多相关文章

  1. Slow ReadProcessor&amp;Error Slow BlockReceiver错误日志分析(转)

    1.总结 "Slow ReadProcessor" 和"Slow BlockReceiver"往往是因为集群负载比较高或者某些节点不健康导致的,本文主要是帮助你 ...

  2. [Apache]如何查看apache服务器的error log(错误日志)

    在进行网页和服务器的测试时, 有时会提醒 500 Internal Server Error: The server encountered an internal error or misconfi ...

  3. nginx 错误日志分析

    502 1.查看nginx错误日志 tailf /data/log/nginx/error.log // :: [error] #: * recv() failed (: Connection res ...

  4. 友盟错误日志分析(转自:COCOACHINA shemy )

      在做的项目中,用到了友盟的组件,在没有禁用错误日志上传之前,收集了一些错误日志. 有一些朋友看到了错误日志,却不知道怎么定位到程序的的代码中,实际上,这一步是非常的简单.友盟没有集成.dSYM文件 ...

  5. nginx 错误日志分析 以及说明

    1.日志简介 nginx日志主要有两种:访问日志和错误日志.访问日志主要记录客户端访问nginx的每一个请求,格式可以自定义:错误日志主要记录客户端访问nginx出错时的日志,格式不支持自定义.两种日 ...

  6. apache的错误日志分析

  7. mysql错误日志/var/log/mariadb/mariadb.log,二进制日志

    mariadb-日志 IT_luo关注0人评论65人阅读2018-10-15 08:59:03   mariadb日志 mariadb日志: 1.查询日志:query log: 2.慢查询日志:slo ...

  8. 《Unix/Linux日志分析与流量监控》书稿完成

    <Unix/Linux日志分析与流量监控>书稿完成 近日,历时3年创作的75万字书稿已完成,本书紧紧围绕网络安全的主题,对各种Unix/Linux系统及网络服务日志进行了全面系统的讲解,从 ...

  9. ubuntu1404下Apache2.4错误日志error.log路径位置

    首先打开/etc/apache2路径下的apache2.conf文件,找到ErrorLog如下 ErrorLog ${APACHE_LOG_DIR}/error.log 这里{APACHE_LOG_D ...

随机推荐

  1. 编写Postgres扩展之三:调试

    原文:http://big-elephants.com/2015-10/writing-postgres-extensions-part-iii/ 编译:Tacey Wong 在上一篇关于编写Post ...

  2. oracle 的分页、截断查询

    oracle 分页.截断查询 需求:从车管所的备案库中(oracle)取出数据,放到车综大数据平台(http方式) 现场情况:oracle中有三张表,CZRKXX(常住人口信息),ZDRYXX(重点人 ...

  3. Java Web-Ajax学习

    Java Web-Ajax学习 概念 Ajax(Asynchronous JavaScript And XML,异步的JavaScript和XML). 异步和同步:在客户端和服务器端相互通信的基础上来 ...

  4. VBA子程序(十六)

    子程序(Sub Procedures,也叫子过程)与函数类似,但有一些差异. 子过程不需要有返回一个值,而函数可能会或可能不会有返回一个值. 子程序可以不用call关键字来调用. 子程序总是包含在Su ...

  5. 安装HANA Rules Framework(HRF)

    1. 收集文档 1.1  SAP HANA Rules Framework by the SAP HANA Academy link 1.2  HANA Rules Framework (HRF) b ...

  6. Powershell-常用脚本

    function Test-Port { Param([string]$ComputerName,$port = 5985,$timeout = 1000) try { $tcpclient = Ne ...

  7. java.lang.Override注解

    @Override注解的作用 当你想重写父类的某个方法时,它可以帮你检查方法的正确性. 举例说明 比如说我们重写父类的toString()方法,但我们现在将toString这个方法名拼错了,这是它会在 ...

  8. IDEA实用教程(四)—— 创建JavaSE工程

    三. 创建JavaSE工程 第一步 第二步 第三步 第四步 第五步 第六步 运行代码.右键选中图中按钮 选择Run

  9. 0022SpringMVC解决post请求中文乱码的问题

    我们在页面难免提交一些中文数据给后台处理,但是发现后台拿到的数据乱码,可以在每一个controller中都设置编码,但是太过于麻烦, 正确的解决办法应该是在web.xml中配置解决中文乱码的过滤器: ...

  10. 云计算(1)-为什么要使用cloud

    云计算-为什么要使用cloud Many cloud providers(一些提供云服务的商家) EC2:提供computing services S3:提供the ability to store ...