zoukankan      html  css  js  c++  java
  • 记一次hadoop datanode进程问题分析

    症状:datanode进程还在,但是在web ui接口发现该节点已经被置为dead节点。监测datanode进程日志,开始时一直狂刷很忙,后来停止刷新日志。

    分析datanode进程日志,发现如下一些错误:

    datanode.DataNode: PacketResponder java.io.IOException: Connection reset by peer

    DataXceiver error processing WRITE_BLOCK operation java.io.IOException: Interrupted receiveBlock
    java.io.EOFException: Premature EOF: no length prefix available

    permanently terminating periodic scanner java.lang.OutOfMemoryError: Java heap space
    Action: datanode process now is Xmx2048m 给datanode进程大一些 4G ? px集群现在是 xms3072m xmx8192m

    transfering block BP-1538154135-172.17.254.17-1382076983184:blk_7146956383243812346_445834476 to mirror 172.17.254.102:50010: java.net.ConnectException: Connection timed out
    DataXceiver error processing WRITE_BLOCK operation   java.net.ConnectException: Connection timed out
    主要是网络相关,可以看到 读写block的时候超时之类的。有可能是网络带宽问题,之前听同事们反馈这批网卡带宽不行。
    查看主配置文件hdfs-site.xml
    <name>dfs.balance.bandwidthPerSec</name><value>104857600</value> 100M
    dfs.socket.timeout --1800000  30min
     
    dfs.namenode.handler.count  --20  
    python -c 'import math ; print int(math.log(32) * 20)'  64
    Action: 根据<hadoop operations>的计算公式,建议改为64 计算得出69.
    可以减少datanode向namenode汇报心跳超时之类的问题

    Action:
    dfs.datanode.socket.write.timeout  480000   8m
    建议增大时长至20分钟

    Action:
    dfs.datanode.max.xcievers  4096
    建议修改为8192 可以打开的文件数量更多,减少读写块时出错的机率

  • 相关阅读:
    matplotlib imshow
    django restframework Serializers
    python assert用法
    nginx 深入篇
    scrapy 中间件
    mysql 存储引擎
    scrapy 部署
    pyinstaller模块使用
    wechat 网页版通信全过程
    hadoop YARN
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/4992113.html
Copyright © 2011-2022 走看看