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

Hadoop 请求数据长度 Requested Data length 超过配置的最大值

一、问题

现象

Spark 任务速度变慢,也不失败。

DataNode 内存足够 CPU 负载不高 GC 时间也不长。

查看 DataNode 日志,发现有些日志出现很多 Netty RPC 超时。超时的 destination 是一个 NameNode 节点,然后查看 NameNode 节点的日志,报错如下:

在这里插入图片描述

二、解决方案

查找对应 Hadopo 源码

源码
org.apache.hadoop.ipc.Server.Connection#checkDataLength

    private void checkDataLength(int dataLength) throws IOException {if (dataLength < 0) {String error = "Unexpected data length " + dataLength +"!! from " + getHostAddress();LOG.warn(error);throw new IOException(error);} else if (dataLength > maxDataLength) { String error = "Requested data length " + dataLength +" is longer than maximum configured RPC length " + maxDataLength + ".  RPC came from " + getHostAddress();LOG.warn(error);throw new IOException(error);    // <-------------- 异常从此处抛出来}}this.maxDataLength = conf.getInt(CommonConfigurationKeys.IPC_MAXIMUM_DATA_LENGTH,CommonConfigurationKeys.IPC_MAXIMUM_DATA_LENGTH_DEFAULT);/** Max request size a server will accept. */public static final String IPC_MAXIMUM_DATA_LENGTH ="ipc.maximum.data.length";/** Default value for IPC_MAXIMUM_DATA_LENGTH. */public static final int IPC_MAXIMUM_DATA_LENGTH_DEFAULT = 64 * 1024 * 1024;

修改NameNode的hdfs-site.xml配置文件,添加以下配置:

<property><name>ipc.maximum.data.length</name><value>67108864</value><description>This indicates the maximum IPC message length (bytes) that can beaccepted by the server. Messages larger than this value are rejected by theimmediately to avoid possible OOMs. This setting should rarely need to bechanged.</description>
</property>

64M -> 256M

67108864 * 4 = 268435456

允许ipc通讯最大的数据包为256MB,默认配置为64MB。

最后重启 NameNode,再重启 DataNode。

http://www.lryc.cn/news/209282.html

相关文章:

  • 搜索与图论:染色法判定二分图
  • 磁场设备主要有哪些
  • 【wespeaker】模型ECAPA_TDNN介绍
  • GPT技术的广泛使用
  • 银河麒麟V10安装MySQL8.0.28并实现远程访问
  • [AUTOSAR][诊断管理][ECU][$27] 安全访问
  • Android Studio编译旧的app代码错误及解决方法
  • Docker的架构与自制镜像的发布
  • 嵌入式系统中C++ 类的设计和实现分析
  • 【torch高级】一种新型的概率学语言pyro(02/2)
  • Git基本概念与使用
  • Kubernetes数据卷Volume和数据卷分类(emptyDir、nfs、hostPath、ConfigMap)详解
  • 【MATLAB源码-第59期】基于matlab的QPSK,16QAM164QAM等调制方式误码率对比,调制解调函数均是手动实现未调用内置函数。
  • 经典目标检测神经网络 - RCNN、SSD、YOLO
  • mysql存在10亿条数据,如何高效随机返回N条纪录,sql如何写
  • c语言中啥时候用double啥时候用float?
  • vscode 保存 “index.tsx“失败: 权限不足。选择 “以超级用户身份重试“ 以超级用户身份重试。
  • 综合性练习
  • threejs(7)-精通粒子特效
  • 使用了百度OCR,记录一下
  • 5.OsgEarth加载地形
  • 基于回溯搜索算法的无人机航迹规划-附代码
  • 微信小程序云开发笔记-初始化商城小程序
  • vulnhub_DeRPnStiNK靶机渗透测试
  • 网站如何判断请求是来自手机-移动端还是PC-电脑端?如何让网站能适应不同的客户端?
  • sass和 scss的区别?
  • Vuex 动态模块状态管理器
  • 实现分片上传、断点续传、秒传 (JS+NodeJS)(TypeScript)
  • 浅谈安科瑞EMS能源管控平台建设的意义-安科瑞 蒋静
  • 【原创】指针变量作为函数参数要点注意+main函数中值是否改变