以下只是对yarn配置文件(yarn.site.xml)简单的一个配置
yarn.resourcemanager.connect.retry-interval.ms 2000 yarn.resourcemanager.ha.enabled true 启动Yran HA模式 yarn.resourcemanager.ha.rm-ids rm1,rm2 resourcemanager id ha.zookeeper.quorum master:2181,slave1:2181,slave2:2181 Zookeeper 队列 yarn.resourcemanager.ha.automatic-failover.enabled true 开启 ResourceManager 故障自动切换 yarn.resourcemanager.hostname.rm1 master rm1 的hostname yarn.resourcemanager.hostname.rm2 slave1 rm2 的hostname yarn.resourcemanager.ha.id rm1 本机的rmid yarn.resourcemanager.recovery.enabled true yarn.resourcemanager.zk-state-store.address master:2181,slave1:2181,slave2:2181 yarn.resourcemanager.store.class org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore yarn.resourcemanager.zk-address master:2181,slave1:2181,slave2:2181 yarn.resourcemanager.cluster-id my-yarn 集群ID yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms 5000 以下开始对 rm1 进行配置,rm2 改成对应的值!!! yarn.resourcemanager.address.rm1 master:8032 yarn.resourcemanager.scheduler.address.rm1 master:8030 yarn.resourcemanager.webapp.address.rm1 master:8088 yarn.resourcemanager.resource-tracker.address.rm1 master:8031 yarn.resourcemanager.admin.address.rm1 master:8033 yarn.resourcemanager.ha.admin.address.rm1 master:23142 yarn.resourcemanager.address.rm2 slave1:8032 yarn.resourcemanager.scheduler.address.rm2 slave1:8030 yarn.resourcemanager.webapp.address.rm2 slave1:8088 yarn.resourcemanager.resource-tracker.address.rm2 slave1:8031 yarn.resourcemanager.admin.address.rm2 slave1:8033 yarn.resourcemanager.ha.admin.address.rm2 slave1:23142 yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.nodemanager.local-dirs /home/hadoop/hadoop-2.9.0/data/nm yarn.nodemanager.log-dirs /home/hadoop/hadoop-2.9.0/log/yarn mapreduce.shuffle.port 23080 yarn.client.failover-proxy-provider org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider yarn.resourcemanager.ha.automatic-failover.zk-base-path /yarn-leader-election yarn.nodemanager.vcores-pcores-ratio 1 yarn.nodemanager.vmem-pmem-ratio 5.2 yarn.nodemanager.vmem-check-enabled false yarn.nodemanager.resource.cpu-vcores 1 yarn.nodemanager.resource.memory-mb 1024 yarn.scheduler.minimum-allocation-mb 512 yarn.scheduler.maximum-allocation-mb 1024
补充:
1、yarn监控nodemanager的运行状况
Hadoop提供了一种机制,管理员可以通过该机制定期运行管理员提供的脚本以确定节点是否健康。
管理员可以通过在脚本中执行对其选择的任何检查来确定节点是否处于正常状态。如果脚本检测到节点处于不健康状态,则必须以字符串ERROR开头的标准输出行。NodeManager定期生成脚本并检查其输出。如果脚本的输出包含字符串ERROR,如上所述,节点的状态将报告为运行状况不佳并且ResourceManager将节点列入黑名单。不会为此节点分配其他任务。但是,NodeManager继续运行脚本,因此如果节点再次变得健康,它将自动从ResourceManager上的黑名单节点中删除。如果节点不健康,则可以在ResourceManager Web界面中为管理员提供节点的运行状况以及脚本的输出。自节点健康以来的时间也显示在Web界面上。
以下参数在yarn.site.xml配置
参数 | 值 | 说明 |
---|---|---|
yarn.nodemanager.health-checker.script.path | 节点健康脚本 | 用于检查节点健康状况的脚本。 |
yarn.nodemanager.health-checker.script.opts | 节点健康脚本选项 | 用于检查节点健康状态的脚本选项。 |
yarn.nodemanager.health-checker.interval-ms | 节点健康脚本间隔 | 运行健康脚本的时间间隔。 |
yarn.nodemanager.health-checker.script.timeout-ms | 节点运行状况超时间隔 | 健康脚本执行超时。 |
如果只有部分本地磁盘变坏,则运行状况检查程序脚本不应该给出错误。NodeManager能够定期检查本地磁盘的运行状况(具体检查nodemanager-local-dirs和nodemanager-log-dirs),并在达到配置属性yarn.nodemanager.disk-health-checker.min-healthy-disks设置的错误目录数阈值,整个节点被标记为运行状况不佳,此信息也会发送给资源管理器。引导磁盘被突袭或健康检查程序脚本识别引导磁盘中的故障。