关于Hadoop集群物理及虚拟内存的检测的设置说明
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Hadoop集群物理及虚拟内存的检测的设置说明相关的知识,希望对你有一定的参考价值。
关于Hadoop集群物理及虚拟内存的检测的设置说明
- 参考
写在前面
- Linux:
CentOS7.5
- Java:
JDK8
- Hadoop:
Hadoop3.1.3
- 场景:
离线数仓集群搭建
正文
配置
yarn-site.xml
文件
不能关闭对物理内存的检测
-
集群规划图
如下图:
计算任务运行在
NodeManager
的 Container
容器中
-
任务运行细节说明
在 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
结束
深信服asv集群管理配置
集群原理
集群的原理实际上是基于共享存储。物理主机间通过集群通信口维持集群通信,更新主机状态。虚拟机运行在物理机上,虚拟机连接到虚拟交换机上,虚拟机通过虚拟交换机桥接到物理机的物理网口上连接外网。
启动集群虚拟机时会做一些检测,过滤出不满足虚拟机运行要求的主机。过滤的条件主要包括存储、内存和网络。
过滤后会从剩余的主机中随机选择一个主机来运行这个集群虚拟机。
集群组建
组建集群,您需要至少两台超融合架构平台的平台,通过添加主机的功能将两台主机组成一个集群。
初次使用时,会有一个集群配置引导菜单,在此我们选择开始配置
输入主机的密码
密码认证完成,我们选择下一步按钮
设置集群虚拟IP、子网掩码、群集名称
集群组建完成
虚拟机管理
在管理页面,点击虚拟机,新增,在此我们选择创建全新虚拟机
设置虚拟机名称、存储位置、运行位置、操作系统类型,并配置计算资源硬件
虚拟机正在创建
虚拟机创建完成,显示为为安装操作系统
上传虚拟机操作系统的镜像,并点击立刻安装
系统开始加载,后续操作不在演示
本文出自 “赵广生的博客” 博客,请务必保留此出处http://capfzgs.blog.51cto.com/7729146/1856766
以上是关于关于Hadoop集群物理及虚拟内存的检测的设置说明的主要内容,如果未能解决你的问题,请参考以下文章
运行hadoop的时候提示物理内存或虚拟内存溢出的解决方案running beyond physical memory或者beyond vitual memory limits