概述
节点健康状况检测是YARN为每个NodeManager提供的机制,通过该机制,NodeManager可通过心跳机制将节点健康状况实时汇报给ResourceManager,而ResourceManager则会根据每个NodeManager的健康状况适当调整分配的任务数目。当NodeManager认为自己的健康状况“欠佳”时,可让ResourceManager不再分配任务,待健康状况好转时,再分配新任务。
(注意:本文分析基于hadoop-2.0.3-alpha)
实现原理
NodeManager上有专门一个服务判断所在节点的健康状况,该服务通过两种办法判断 节点健康状况,第一种是通过管理员自定义的Shell脚本,NodeManager上专门有一个周期性任务执行该脚本,一旦该脚本输出以“ERROR”开头的字符串,则认为节点处于不健康状态,另一种是判断磁盘好坏,NodeManager上专门有一个周期性任务检测磁盘的好坏,如果坏磁盘数目达到一定的比例,则认为节点处于不健康状态。
(1)编写健康状况检测脚本
管理员需编写一个shell脚本,当认为节点处于不健康状态时,输出一个以“ERROR”开头的字符串,一段伪代码如下:
#! /bin/bash
If [ free memory is lower than 1GB ];do
echo “ERROR, free memory is lower than 1GB!”
done
然后管理员通过参数yarn.nodemanager.health-checker.script.path在yarn-site.xml中指定脚本所在位置。这样,当剩余内存量低于1GB时,NodeManager会将健康状况置为false,并通过心跳机制 汇报给ResourceManager,当ResourceManager收到该消息后,将该节点移到黑名单中,不再为其分配新任务,直到健康状况为true。
(2) 检测磁盘好坏
NodeManager会通过参数yarn.nodemanager.local-dirs和yarn.nodemanager.log-dirs配置一系列目录(磁盘),用于存储Application中间结果(比如MapReduce中Map Task的中间输出结果)和日志文件。NodeManager上专门有一个周期性任务检测这些目录的好坏,一旦发现正常磁盘的比例低于yarn.nodemanager.disk-health-checker.min-healthy-disks(默认是25%),则认为该节点处于“不健康”的状态。管理员可通过参数yarn.nodemanager.disk-health-checker.enable设置是否启用该功能,默认情况下是启用的。
NodeManager判断一个目录(磁盘)好坏的方法是,当它同时满足以下条件时才认为是正常目录:可读、可写、写执行。
分享到:
相关推荐
YARN(MRv2)搭建
yarn-v0.23.2.tar.gz 在安装ambari,源码编译的时候下载的文件有问题 手动下载 地址 https://github.com/yarnpkg/yarn/releases/download/v0.23.2/yarn-v0.23.2.tar.gz
TypeError: self.env.emit is not a function at /usr/local/share/.config/yarn/global/node_modules/yeoman-generator/lib/index.js:653:22 at processTicksAndRejections (internal/process/task_queues.js:97:5)...
在Windows环境下进行前端开发,Node.js和Yarn是两个至关重要的工具。`node12.2_yarn1.22.5安装包`是专为Windows开发者设计的,包含了Node.js v12.22.1和Yarn v1.22.5的安装文件,确保了开发环境的一键式搭建。 **...
yarn npm cnpm pnpm可通用的,就是底层node_modules位置不一样而已,不过修改原理都是一样的,大家可以自行下载研究,目前仅在windows下测试,macos跟linux还未测试。 下面说下安装步骤: 1.在项目更目录中安装,...
node.js-v12.16.1安装包,和yarn-1.22.4安装包的存档。 方便国内下载。 node.js ,简单的说 Node.js 就是运行在服务端的 JavaScript。是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O...
Yarn 是一个现代化的、高性能的 JavaScript 包管理器,由 Facebook 在 2016 年推出,旨在解决 npm(Node Package Manager)在大型项目中的性能和可预测性问题。Yarn v1.22.5 是 Yarn 的一个稳定版本,提供了更快的...
Apache Flink是一个开源的分布式流处理框架,用于在...通过这些资源,用户可以深入了解Flink在分布式环境中的运行机制,掌握在YARN/K8S平台上部署Flink集群的最佳实践,并对Flink的核心概念和技术细节有更全面的认识。
Node.js 是一个开源的、跨平台的 JavaScript 运行环境,它允许开发者在服务器端运行 JavaScript 代码。Node.js 的核心特性是其非阻塞I/O模型和事件驱动的架构,这使得它非常适合构建高性能的网络应用,如实时聊天、...
yarn npm cnpm pnpm可通用的,就是底层node_modules位置不一样而已,不过修改原理都是一样的,大家可以自行下载研究,支持windows,macos跟linux。 下面说下安装步骤: 1.在项目更目录中安装,执行npm install @...
节点缓存管理器的 Redis 存储用于节点缓存管理器的 Redis 缓存存储。这个包和 有什么不同node-cache-manager-redis?这是与早期node-cache-manager-redis完全不同的版本。此包不使用不必要的且未积极维护的版本。...
《Hadoop技术内幕深入解析YARN架构设计与实现原理》这本书深入探讨了Hadoop生态系统中的核心组件YARN(Yet Another Resource Negotiator),它是Hadoop 2.x版本中的关键改进,旨在解决早期Hadoop MapReduce的资源...
在IT行业中,Node.js、npm和...通过阅读`yarn安装与使用.md`和`node.js与npm安装.md`这两个文档,你将得到更深入的指导,而`resources`目录可能包含了一些辅助资源,如示例代码或安装指南,有助于你更好地理解和实践。
MaxMind GeoIP2 Node.js API 描述 该软件包提供了用于的API和用于的API。 该API还可以与MaxMind的免费。 安装 yarn add @maxmind/geoip2-node 如果您不能使用yarn ,也可以使用npm : npm install @maxmind/geoip2...
Yarn是Facebook推出的一款JavaScript包管理器,旨在提高npm(Node Package Manager)的性能和可靠性。而Node.js v14.18.1则是一个基于Chrome V8引擎的JavaScript运行环境,用于构建服务器端和网络应用。 Yarn 1.22....
例如,可以定期调用上述API,收集数据并存储到数据库,然后通过可视化工具展示出来,以便于团队成员快速理解集群的健康状况和任务执行情况。 总的来说,Cloudera提供的YARN任务监控API和Hadoop MapReduce API是强大...
**yarn的使用** Yarn是Facebook开发的一款用于管理和维护代码包的工具,它强调速度、安全性和可预测性。Yarn通过缓存已下载的包来提高速度,确保在不同环境中安装的依赖版本一致,从而提高可靠性。以下是一些基本的...
2. Node Manager(NM):每个节点上运行的NM负责管理本节点的资源,包括内存、CPU等,接收RM的指令,启动和监控Container的运行。 3. Application Master(AM):每个应用程序都有一个AM,负责申请资源,协调任务...
检测包装经理 这是如何运作的? 当前工作目录中有yarn.lock或package-lock.json时,它将跳过其他操作并直接解析yarn或npm 当找不到锁文件时,它会检查yarn命令是否存在。 如果是这样,它可以解决yarn否则解决npm ...
Yarn是JavaScript社区广泛使用的包管理工具,它旨在提高npm(Node.js的包管理器)的性能、可预测性和安全性。这两个文件,"yarn-1.22.4.msi" 和 "yarn-1.22.5.msi",是Yarn的特定版本安装程序,适用于Windows操作...