概述
节点健康状况检测是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
yarn npm cnpm pnpm可通用的,就是底层node_modules位置不一样而已,不过修改原理都是一样的,大家可以自行下载研究,目前仅在windows下测试,macos跟linux还未测试。 下面说下安装步骤: 1.在项目更目录中安装,...
yarn npm cnpm pnpm可通用的,就是底层node_modules位置不一样而已,不过修改原理都是一样的,大家可以自行下载研究,支持windows,macos跟linux。 下面说下安装步骤: 1.在项目更目录中安装,执行npm install @...
yarn-v1.22.5.tar.gz
node.js-v12.16.1安装包,和yarn-1.22.4安装包的存档。 方便国内下载。 node.js ,简单的说 Node.js 就是运行在服务端的 JavaScript。是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O...
检测包装经理 这是如何运作的? 当前工作目录中有yarn.lock或package-lock.json时,它将跳过其他操作并直接解析yarn或npm 当找不到锁文件时,它会检查yarn命令是否存在。 如果是这样,它可以解决yarn否则解决npm ...
ln -s /home/download/node-v8.11.1-linux-x64/lib/node_modules/pm2/bin/pm2 /usr/local/bin/pm2 修改package.json scripts: { test: echo \Error: no test specified\ && exit 1, pm2: /home/download/node-v...
详细描述 node环境安装与配置 npm环境配置以及仓库配置 yarn环境配置
windows开发前端必装环境 windows开发前端必装环境 windows开发前端必装环境 windows开发前端必装环境 node12.2 yarn1.22.5
node.js 12.16.1安装+yarn安装.zip
此存储库是一个新的基于FRAME的节点,它是从substrate-developer-hub/substrate-node-templte :rocket: 它链接到所有Manta-API的 。 有关更多详细信息,请参见 。 如何运行Manta节点 make init make run 您将需要...
节点启动套件 Node Express、Sequelize 的样板 开始 克隆这个 repo git clone https://github.com/zinirun/node-start-kit 设置 yarn/npm 包yarn install # npm install 快乐黑客 启动 express 进行开发: yarn ...
该压缩包内含有 yarn1.22.5、node14.18.1
Hadoop技术内幕深入解析YARN架构设计与实现原理
高山Node.js码头工人形象标签与npm和纱线最新,9、9.0、9.0.0 8、8.1、8.1.4 与npm 12.14.1 10.13.0 6、6.11、6.11.1 仅节点10.13.0 base,base-9,base-9.0,base-9.0.0 base-8,base-8.1,base-8.1.4 base-6,base...
YARN配置、启动与验证 YARN配置、启动与验证 序号 任务名称 任务一 YARN组件参数配置 任务二 MapReduce组件参数配置 任务三 配置SSH无密钥登录(slave1为主节点) 任务四 分发YARN与MapReduce配置文件 任务五 启动...
用于节点缓存管理器的Redis存储Redis...安装npm install cache-manager-redis-store --save 要么yarn add cache-manager-redis-store使用范例请参阅以下示例,了解如何实现Redis缓存存储。单店var cacheManager = requ
hadoop YARN应用开发与核心源码剖析
使用Yarn2和Typescript构建的Express.js入门项目。 入门项目包括以下现成的项目: 授权中间件 错误处理中间件 记录仪中间件 验证中间件 数据库集成(TypeORM + PostgreSQL) 通过Docker进行容器化 单元测试(100%...