关于Hadoop集群物理及虚拟内存的检测的设置说明

关于Hadoop集群物理及虚拟内存的检测的设置说明


在这里插入图片描述


写在前面

  • Linux:CentOS7.5
  • Java:JDK8
  • Hadoop:Hadoop3.1.3
  • 场景:离线数仓集群搭建

正文

配置yarn-site.xml文件

不能关闭对物理内存的检测

  • 集群规划图

如下图:

在这里插入图片描述

计算任务运行在 NodeManagerContainer 容器中

  • 任务运行细节说明

在 NodeManager 中有一个Monitor线程,用于一直监控NodeManager的内存使用量,假设NodeManager 设置为3G,用于后面的资源(如 Kafka、Flume)的内存为1G;

若 NodeManager 内存使用率超过集群机器设置的内存,当 Monitor 线程发现 NodeManager 内存使用即将超过 3G 时,此时为了不让 NodeManager 内存使用量超过设置值,Monitor线程会将nodeManager挂掉

  • 挂掉的原因

一旦 NodeManager 内存使用即将超过 3G,将会「导致后面的组件及框架所需要的内存被其挂掉,内存被 NodeManager 占用」,则Kafka、Flume 需要进行 GC(内存不够,进行FullGC,即将自己Pass掉),此时数据传输通道不存在了,Kafka、Flume这些大数据框架就停止了运转,这是我们不愿意看到的。

我们只希望是 NodeManager 运行的任务挂掉而已,之后我们重新启动这个任务即可,这样不会影响其他组件|组件|框架的使用

故,不需要关闭对物理内存的检测
yarn.nodemanager.pmem-check-enabled设置为true(默认就是为true)

关闭对虚拟内存的检测

  • 原因是:

JDK8与CentOS7存在Bug

  • 虚拟内存定义

虚拟内存是内存和磁盘交互的第二个媒介。虚拟内存是指把磁盘的一部分作为假想内存来使用。这与磁盘缓存是假想的磁盘(实际上是内存)相对,虚拟内存是假想的内存(实际上是磁盘)。

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个完整的地址空间),但是实际上,它通常被分割成多个物理碎片,还有部分存储在外部磁盘管理器上,必要时进行数据交换。

通过借助虚拟内存,在内存不足时仍然可以运行程序。

例如,在只剩 5MB 内存空间的情况下仍然可以运行 10MB 的程序。由于 CPU 只能执行加载到内存中的程序,因此,虚拟内存的空间就需要和内存中的空间进行置换(swap),然后运行程序。

又如:有时候电脑内存占比高达99%甚至于100%,但是你的电脑仍然可以继续工作,只不过是很卡而已,原因是超出的部分工作是在磁盘上运行的

  • 离线数仓之虚拟内存的应用

如果物理内存不够用,则采用虚拟内存计算一部分资源

假设一台机器内存为4G,目前4G已经被占满,此时会将资源放置到虚拟内存来计算,由于4G内存已被占据完毕,本质上是在磁盘上计算的.

CentOS7会预留出一部分内存给JDK

在这里插入图片描述

JDK实际使用的虚拟内存占比比CentOS7会预留给JDK的虚拟内存低,可能会出现任务挂掉的情况,会有报错产生。
关闭对虚拟内存的检测,即将yarn.nodemanager.vmem-check-enabled 设置为false,可以忽略过报错,依然可以继续运行

关于虚拟内存的大小,Hadoop官网说明如下:

yarn.nodemanager.pmem-check-enabled	true
yarn.nodemanager.vmem-check-enabled	true
yarn.nodemanager.vmem-pmem-ratio	2.1

虚拟内存和物理内存的比例关系是:2.1倍

物理内存此时有4G,则对应的虚拟内存为8.2G

预留出来给JDK的虚拟内存可能高达6G,而实际使用的虚拟内存低于3G

参考

https://hadoop.apache.org/docs/r3.1.3/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

结束

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个比较复杂的任务,需要一定的Linux系统和网络知识。以下是一些大致的步骤: 1. 安装虚拟化软件:首先需要在你的物理机上安装一款虚拟化软件,例如VMware或VirtualBox等。 2. 创建虚拟机:使用虚拟化软件创建5台虚拟机,并安装Linux操作系统。在安装时,选择相同版本的Linux操作系统,例如CentOS或Ubuntu等。 3. 配置网络:为每台虚拟机分配IP地址,并确保它们能够相互访问。可以使用桥接模式或者NAT模式连接虚拟机和宿主机的网络。 4. 安装和配置hadoop:下载hadoop安装包并解压,在每台虚拟机上安装hadoop,并进行配置,包括设置hadoop的环境变量、修改配置文件,如core-site.xml、hdfs-site.xml和mapred-site.xml等。 5. 配置hadoop集群:在hadoop集群中,需要有一个节点作为主节点(NameNode),其余节点作为从节点(DataNode)。需要在每台虚拟机上进行对应的hadoop配置。 6. 启动hadoop集群:启动hadoop集群,首先启动主节点,然后启动从节点。可以使用命令行或图形界面方式来启动hadoop集群。 7. 测试hadoop集群:在hadoop集群中创建一个简单的测试任务,例如WordCount,来验证hadoop是否正确运行。 以上是大致的步骤,具体实现可能会有所差异。在实际操作中,需要注意一些细节,例如防火墙设置、SSH配置、硬件配置等。建议在进行实际操作前,先进行一定的学习和实验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值