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

目录

一、事件复盘:

二、解决方案:

三、讨论


一、事件复盘:

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

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

set hive.exec.reducers.max=1000;
INSERT INTO TABLE table1 PARTITION (dt)  
select
    uid,
    times,
    memo,
    idfa,
    dt
   from 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个连接一台机器)还是会导致大量的连接数存在,对整个集群不是很友好,还是尽量减少小文件的生成为最佳

相关推荐

  1. Hive-基础】表数据的导出导入HDFS、本地)

    2024-07-17 12:06:02       54 阅读
  2. hive动态分区

    2024-07-17 12:06:02       26 阅读
  3. Hive动态分区静态分区

    2024-07-17 12:06:02       41 阅读
  4. kafka连接zookeeper失败导致无法启动

    2024-07-17 12:06:02       26 阅读
  5. 总结:HDFS+YARN+HIVE

    2024-07-17 12:06:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 12:06:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 12:06:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 12:06:02       58 阅读
  4. Python语言-面向对象

    2024-07-17 12:06:02       69 阅读

热门阅读

  1. c语言(7.15)

    2024-07-17 12:06:02       20 阅读
  2. 如何解决隐藏游戏服务器的源IP问题

    2024-07-17 12:06:02       22 阅读
  3. Python中的条件语句与三元运算符

    2024-07-17 12:06:02       24 阅读
  4. 计算机网络 VPN技术

    2024-07-17 12:06:02       20 阅读
  5. Hbase、hive以及ClickHouse的区别?

    2024-07-17 12:06:02       25 阅读
  6. electron中app.whenReady()和app.on(‘ready‘)的区别

    2024-07-17 12:06:02       22 阅读
  7. Scikit-Learn 基础教程

    2024-07-17 12:06:02       22 阅读
  8. 八部金刚功1.0.9-july 17th-冥想1.1.7

    2024-07-17 12:06:02       25 阅读
  9. docker-cli & nerdctl & ctr & crictl容器命令比较

    2024-07-17 12:06:02       17 阅读