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

hive动态分区导致xceivercount超限,hdfs无法创建新连接

目录

一、事件复盘:

二、解决方案:

三、讨论


一、事件复盘:

hdfs无法创建新的文件,xceivercount超过最大设置,平时每个datanode只有100个左右的连接,突然达到8000以上。

事故原因,跨多天的动态分区导致: sql如下

set hive.exec.reducers.max=1000;
INSERT INTO TABLE table1 PARTITION (dt)  
selectuid,times,memo,idfa,dtfrom table2 where dt>=20230101 and dt<=20231231 distribute by rand()

使用动态分区虽然非常方便,但会带来很多小文件,像上面这个sql,动态分区是365天,reduce是1000个,如果计算比较复杂,资源充足,就会同时创建365*1000个文件。 因为是动态分区,每个reduce都要写365个文件到各自的分区中,因为数据by rand()把数据打散了。

二、解决方案:

1、降低同时正在运行的reduce数

配置如下:

mapreduce.job.running.reduce.limit=200;

这样同时运行的reduce只能到200,就是有一年的分区,也最多创建 365*200个文件。

2、如果想限制动态分区的跨天范围,也可以做如下限制

hive.exec.max.dynamic.partitions=100;

也就是动态分区只能一次创建100个,超过会报错。

3、其实动态分区不适合跨天的情况,跨天数据重跑完全可以按天一天一天的补,通过提高重跑天的次数来完成并发。

三、讨论

有人会觉得我可以增大xceivercount的数目,来避免这个问题,但是这个首先要重启datanode,另外,这个方案始终(目前已经达到了8000个连接一台机器)还是会导致大量的连接数存在,对整个集群不是很友好,还是尽量减少小文件的生成为最佳

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • R语言实现神经网络ANN
  • 从微软发iPhone,聊聊企业设备管理
  • 【机器学习】无监督学习和自监督学习
  • Kafka(四) Consumer消费者
  • 大鲸鱼docker-compose单机容器集群编排工具
  • C语言实例-约瑟夫生者死者小游戏
  • jenkins 插件版本冲突
  • JDBC常见用法
  • 下载安装VSCode并添加插件作为仓颉编程入门编辑器
  • Tensorflow入门实战 T09进行猫狗识别2
  • maven 私服搭建(tar+docker)
  • conda 复现论文部署环境常用操作
  • 缓存弊处的体验:异常
  • NEEP-EN2-2019-Text4
  • 敲详细的springframework-amqp-rabbit源码解析
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • angular组件开发
  • CODING 缺陷管理功能正式开始公测
  • Laravel Mix运行时关于es2015报错解决方案
  • Making An Indicator With Pure CSS
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • PhantomJS 安装
  • Promise面试题,控制异步流程
  • Python socket服务器端、客户端传送信息
  • vue:响应原理
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 讲清楚之javascript作用域
  • 今年的LC3大会没了?
  • 警报:线上事故之CountDownLatch的威力
  • 聊聊sentinel的DegradeSlot
  • 为什么要用IPython/Jupyter?
  • 用简单代码看卷积组块发展
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • ionic异常记录
  • linux 淘宝开源监控工具tsar
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • (35)远程识别(又称无人机识别)(二)
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (南京观海微电子)——示波器使用介绍
  • (十三)Flask之特殊装饰器详解
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原)本想说脏话,奈何已放下
  • (转)ABI是什么
  • (转)Mysql的优化设置
  • (转)ObjectiveC 深浅拷贝学习
  • (转)程序员技术练级攻略
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理出现中文乱码的情况
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端