设置Hadoop守护进程的JVM参数

一般情况下我们不去动守护进程的JVM,这里的守护进程说的是NameNode、DataNode等Hadoop服务自己本身的进程。但是有一些特殊情况下需要限制,比如工作中虽然集群中资源队列会有10%左右的预留空余,不过这是整个集群队列的限制,对于DataNode节点自身来说通常是限制在配置文件中的定额可跑任务总资源起到一个直观的限制,而通常DataNode节点自身的大部分资源都会分配给计算以及部分系统预留,这就导致我们在使用一些能力的时候偶发一个JVM可分配到的内存不足的问题,如下

bash 复制代码
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2684354560 bytes for committing reserved memory.
# Possible reasons:
#   The system is out of physical RAM or swap space
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
#  Out of Memory Error (os_linux.cpp:2749), pid=989550, tid=0x00007f3ff4b66700
#
# JRE version:  (8.0_202-b08) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.202-b08 mixed mode linux-amd64 )
# Core dump written. Default location: /home/work/core or core.989550

上面这个是博主工作中,某次操作hadoop ls时报了一个内存不足的OOM错误,这种时候,就需要对守护可用的内存做一些限制,限制的方法是修改hadoop-evn.sh配置文件中的HADOOP_OPTS环境变量

bash 复制代码
export HADOOP_OPTS="$HADOOP_OPTS -Xmx2g -Xms1g"

这里-Xmx2g表示设置最大堆内存为2GB,-Xms1g表示设置初始堆内存为1GB。

除了全局的HADOOP_OPTS环境变量外,Hadoop还允许你为不同的组件(如NameNode、DataNode等)单独设置JVM参数。这通常通过在hadoop-env.sh中设置特定的环境变量(如HADOOP_NAMENODE_OPTS、HADOOP_DATANODE_OPTS等)来实现。

相关推荐
代码匠心1 天前
从零开始学Flink:Flink SQL四大Join解析
大数据·flink·flink sql·大数据处理
武子康2 天前
大数据-242 离线数仓 - DataX 实战:MySQL 全量/增量导入 HDFS + Hive 分区(离线数仓 ODS
大数据·后端·apache hive
SelectDB3 天前
易车 × Apache Doris:构建湖仓一体新架构,加速 AI 业务融合实践
大数据·agent·mcp
武子康4 天前
大数据-241 离线数仓 - 实战:电商核心交易数据模型与 MySQL 源表设计(订单/商品/品类/店铺/支付)
大数据·后端·mysql
IvanCodes4 天前
一、消息队列理论基础与Kafka架构价值解析
大数据·后端·kafka
武子康4 天前
大数据-240 离线数仓 - 广告业务 Hive ADS 实战:DataX 将 HDFS 分区表导出到 MySQL
大数据·后端·apache hive
字节跳动数据平台5 天前
5000 字技术向拆解 | 火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
武子康6 天前
大数据-239 离线数仓 - 广告业务实战:Flume 导入日志到 HDFS,并完成 Hive ODS/DWD 分层加载
大数据·后端·apache hive
字节跳动数据平台6 天前
代码量减少 70%、GPU 利用率达 95%:火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
得物技术6 天前
深入剖析Spark UI界面:参数与界面详解|得物技术
大数据·后端·spark