23.hadoop系列之Yarn常用命令及生产环境核心参数配置

我们先按照之前的配置启动好hadoop集群,连接到resourcemanager节点shell

1.常用命令

// 列出所有Application
# yarn application -list
// 列出所有已结束的Application
# yarn application -list -appStates FINISHED
// KILL调Application
# yarn application -kill <Application ID>
// 查看Application日志
# yarn logs -applicationId <Application ID>
// 查看Container日志
# yarn logs -applicationId <Application ID> -containerId <Container ID>
// 查看所有Application尝试的列表,此中会显示出ApplicationAttempt-Id、AM-Container-Id等信息
# yarn applicationattempt -list <Application ID>
// 打印ApplicationAttempt状态
# yarn applicationattempt -status <Application Attempt ID>
// 列出所有容器,容器只有在运行的时候才可查看到
# yarn container -list <Application Attempt ID>
// 打印container状态
# yarn container -status <Container ID>
// 列出所有节点
# yarn node -list -all
// 加载队列配置
# yarn rmadmin -refreshQueues
// 打印队列信息, default为默认队列名
# yarn queue -status <Queue Name>

2.生产环境核心配置

需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程
分析:1G/128m(默认块大小)=8个MapTask,1个ReduceTask,1个MrAppMaster。平均每个节点运行10个/3台≈3个任务(4 3 3)

以下hadoop.env配置会被映射到/opt/hadoop-3.2.1/etc/hadoop/yarn-site.xml

// 调度器类型指定
YARN_CONF_yarn_resourcemanager_scheduler_class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
// ResourceManager处理调度器请求的线程数量,默认50;如果提交的任务数大于50,可以增加该值,但是不能超过3台*4线程(去除其他应用程序实际不超过8)
YARN_CONF_yarn_resourcemanager_scheduler_client_thread__count=8
// 是否yarn自动检测硬件进行配置,默认false,如果该节点有很多其他应用程序,建议手工配置。
YARN_CONF_yarn_nodemanager_resource_detect__hardware__capabilities=false
// 是否将虚拟核数当做CPU核数,默认false,采用物理CPU核数,对于节点机器配置相同的话,默认就好
YARN_CONF_yarn_nodemanager_resource_count__logical__processors__as__cores=false
// 虚拟核数和物理核数乘数,默认1.0
YARN_CONF_yarn_nodemanager_resource_pcores__vcores__multiplier=1.0
// NodeManager使用内存数,默认8G,修改为4G
YARN_CONF_yarn_nodemanager_resource_memory___mb=4096
// NodeManager的CPU核数,不按照硬件环境自动设定时默认是8个,修改为4个
YARN_CONF_yarn_nodemanager_resource_cpu___vcores=4
// 容器最大内存,默认8G,修改为2G
YARN_CONF_yarn_scheduler_maximum_allocation_mb=2048
// 容器最大CPU核数,默认4个,修改为2个
YARN_CONF_yarn_scheduler_maximum___allocation___vcores=2
// 虚拟内存检查,默认打开,修改为关闭,因为JDK实际使用的虚拟内存不用Linux系统为Java进程预留的虚拟内存,导致虚拟内存分配使用率低
YARN_CONF_yarn_nodemanager_vmem__check__enabled=false
// 虚拟内存和物理内存设置比例,默认2.1
YARN_CONF_yarn_nodemanager_vmem__pmem__ratio=2.1
// 注意检查下面配置也相应缩小,否则ResourceManager无法启动
YARN_CONF_yarn_scheduler_capacity_root_default_maximum___allocation___mb=2048
YARN_CONF_yarn_scheduler_capacity_root_default_maximum___allocation___vcores=2

欢迎关注公众号算法小生与我沟通交流

猜你喜欢

转载自blog.csdn.net/SJshenjian/article/details/129344538