您的位置:首页 > Web前端 > Node.js

HadoopSourceAnalyse --- NodeManager -- initiate

2013-05-06 14:52 323 查看

Overview

NodeManager 是hadoop cluster的server中,负责管理,执行任务相关的资源,主要通过ResouceManager和ApplicationsManager通信,通过ContainerManager与ApplicationMasterService 通信,

Initiate



Services
DeletionService
NodeHealthCheckerService
NodeResouceMonitor
ContainerManager
WebServer
Dispatcher
NodeStatusUpdate
Event Handler
ContainerManagerEventTypeContainerManagerImpl
NodeManagerEventTypeNodeManager

NodeHealthCheckerService init and Startup



LocalDirsHandlerService init and startup

LocalDirsHandlerService 主要用来定时检查本地工作目录及日志目录的状态,并向请求的service报告状态信息,初始化时会读取下列信息:

yarn.nodemanager.disk-health-checker.interval-ms,  Default is: 120000 定义了,检查目录的时间间隔;
yarn.nodemanager.disk-health-checker.enable,  Default is: true 定义了是否启用health checker;
yarn.nodemanager.disk-health-checker.min-healthy-disks: Default is 0.25, 定义了启动一个containe所需用的最少空间百分比;
yarn.nodemanager.local-dirs:定义了存放localize 文件的本地目录;
yarn.nodemanager.log-dirs: 定义了log文件的本地目录;



NodeHealthScriptRunner init and startup

通过这个服务 ,我们可以提供一个脚本来定期检查Node的状态,启动时会从下列配置中读取脚本信息:

yarn.nodemanager.health-checker.script.path:
定义了 执行检查的脚本的绝对路径;
yarn.nodemanager.health-checker.interval-ms: Default is: 600000ms, 定义了检查的时间间隔;
yarn.nodemanager.health-checker.script.timeout-ms: Default is: 1200000ms, 定义超时时间间隔;
yarn.nodemanager.health-checker.script.opts:
定义了,检查脚 本的执行选项。

NodeStatusUpdater Init and startup

NodeStatusUpdater主要用来和Resource mamanger通信,并更当前node的状态信息,启动时要从配置文件中读取下列信息:

yarn.resourcemanager.resource-tracker.address:
Default is 0.0.0.0:8031, 定义了ResourceManager的监听地址;
yarn.nodemanager.resource.memory-mb: Default is: 8192 MB, 定义了,node manager 运行时分配的物理内存;
yarn.nodemanager.vmem-pmem-ratio: Default is 2.1, 定义了虚拟内存与物理央存的比例,用来计算应该分配多少虚拟内存;
yarn.nodemanager.resource.cpu-cores: Default is 8, 定义了物理机器CPU核心数量;
yarn.nodemanager.vcores-pcores-ratio: Default is 2.0 定义了虚拟CPU(线程)与物理核心的比例,用来计算可以同时运行多少个虚拟CPU(线程);
yarn.nodemanager.webapp.address: Default is:0.0.0.0:8042,定义了 node manager的Web监听地址。



ContainerManager Init and startup

ContainerManager 主要是用来和ApplicationMaster通信,管理,分配、启动、停止containers



Event Handler
ContainerEventTypeContainerEventDispatcher
ApplicationEventTypeApplicationEventDispatcher
LocalizationEventTypeResourceLocalizationService
AuxServicesEventTypeAuxServices
ContainersMonitorEventTypeContainersMonitorImpl
ContainersLauncherEventTypeContainersLauncher
LogHandlerEventTypeLogAggregationService/NonAggregatingLogHandler
当ContainerManager 启动时,需从配置方件读取下列信息:

yarn.nodemanager.address :Default is:0.0.0.0:0 用来接收从ApplicationMaster过来的请求。

ResourceLocalizationService init and startup

ResourceLocalizationService 主要用来管理用户相关及Application相关的localization 信息,这些信息都是存储在本地文件系统中的,Service启动之前会读取以 下配置信息:

yarn.nodemanager.local-cache.max-files-per-directory: Default is: 8192 如果配置的文件个数少于37, 则系统会报错,启动失败;
yarn.nodemanager.localizer.cache.target-size-mb: Default is 10240MB定义了,cache 目录的最大容量;
yarn.nodemanager.localizer.cache.cleanup.interval-ms: 600000 ms 定义了,cache 目录清除的时间间隔;
yarn.nodemanager.localizer.address: Default is: 0.0.0.0.0:8040 定义了ResourceLocalizer 监听地址;



ContainersLauncher Init and Startup

AuxServices Init and Startup

ContainersMonitor Init and Startup

ContainersMonitor 主要是用来监视当前node中的所有Containers 对系统资源的使用情况,目前只监视内存及虚拟内存的使用情况, 当Monitor启动时需从配置文件中读取下列信息:

yarn.nodemanager.container-monitor.interval-ms: Default is: 3000 ms 定义了监视间隔时间;
yarn.nodemanager.container-monitor.resource-calculator.class: 定义了计算系统资源的对像类型;
yarn.nodemanager.container-monitor.process-tree.class:定义了计算系统进程信息的对 像类型;
yarn.nodemanager.resource.memory-mb: Default is: 8192MB (8G) 定义了当前系统可用的总的物理内存数;
yarn.nodemanager.vmem-pmem-ratio: Default is 2.1 定
4000
义了当前系统中总的虚拟内存与物理内存的比例, 用来计算系统中总的可用的虚拟内存数,该值必须大于或等于1.0;
yarn.nodemanager.pmem-check-enabled: Default true. 定义是否检查物理内存限制;
yarn.nodemanager.vmem-check-enabled: Default true, 定义是否检查虚拟面存限制。



LogHandler Init and Startup

Log container start, finish, and Application start, finish;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Hadoop source code 集群