yarn 生产环境核心参数配置,yarn作为hadoop的资源分配和调度的基础组件,组件基础:
1、ResourceManager相关 yarn.resourcemanager.scheduler.class ? ?#配置调度器,apache yarn默认容量调度器,CDH默认公平调度器 yarn.resourcemanager.scheduler.client.thread-count ? ?# ResourceManager处理调度器请求的现场数量,默认50
2、NodeManager相关
yarn.nodemanager.resource.detect-hardware-capabilities ? ?#是否让yarn自己检测硬件进行配置,默认false yarn.nodemanager.resource.count-logical-processor-as-cores ? ?#是否将虚拟核数当作CPU核数,默认false yarn.nodemanager.resource.pcores-vcores-multiplier ? ?#虚拟核数和物理核数乘数,默认为1.0 yarn.nodemanager.resource.memory-mb ? ?# NodeManager使用内存,默认8G yarn.nodemanager.resource.system-reserved-memory-mb ? ? #NodeManager为系统保留多少内存,以上二个参数配置一个即可 yarn.nodemanager.resource.cpu-vcores ? ? #NodeManager使用CPU核数,默认8个 yarn.nodemanager.pmem-check-enabled ? ?#是否开启物流内存检查限制container,默认打开 yarn.nodemanager.vmem-check-enabled ? ? #是否开启虚拟内存检查限制container,默认代开 yarn.nodemanager.vmem-pmem-ratio ? ?#虚拟内存物理内存比例,默认2.1
3、Container相关
yarn.scheduler.minimum-allocation-mb ? ?#容器最小内存,默认1G yarn.scheduler.maximum-allocation-mb ? ?#容器最大内存,默认8G yarn.scheduler.minimum-allocation-vcores ? ?#容器最小CPU核数,默认1个 yarn.scheduler.maximum-allocation-vcores ? ?#容器最大CPU核数,默认4个
部署环境分配: eg:3台服务器,每台配置4G内存,4核CPU,4线程,如果我们处理的是1G的文件进行数据的count统计, 那么就会有 1G/128M=8个MapTask 1个ReduceTask,1个MrAppMaster,平均下来就是每个节点有3个任务, 那我们按4 ? 3 ? 3 的比例分配10个任务。
按照上边的参数进行配置下我们的yarn-site.xml文件:
<configuration> ? ? <property> ? ? ? ?<name>yarn.resourcemanager.hostname</name> ? ? ? ? <value>hadoop01</value> ? ? </property> ? ? <property> ? ? ? ? <name>yarn.nodemanager.aux-services</name> ? ? ? ? <value>mapreduce_shuffle</value> ? ? </property> ? ? <!-- 如果vmem、pmem资源不够,会报错,此处将资源监察置为false --> ? ? <property> ? ? ? ? <name>yarn.nodemanager.vmem-check-enabled</name> ? ? ? ? <value>false</value> ? ? </property> ? ? <property> ? ? ? ? <name>yarn.nodemanager.pmem-check-enabled</name> ? ? ? ? <value>false</value> ? ? </property> ? ? <!-- 选择调度器。默认容量--> ? ? <property> ? ? ? ? <name>yarn.resourcemanager.scheduler.class</name> ? ? ? ? <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value> ? ? </property> ? ? <!--ResourceManager处理调度器请求的现场数量,一共3*4=12,留出几个供其他使用--> ? ? <property> ? ? ? ? <name>yarn.resourcemanager.scheduler.client.thread-count</name> ? ? ? ? <value>8</value> ? ? </property> ? ? <!--是否让yarn自动检测硬件进行配置--> ? ? <property> ? ? ? ? <name>yarn.nodemanager.resource.detect-hardware-capabilities</name> ? ? ? ? <value>false</value> ? ? </property> ? ? <!--是否将虚拟核数当作CPU核数 默认false--> ? ? <property> ? ? ? ? <name>yarn.nodemanager.resource.count-logical-processors-as-cores</name> ? ? ? ? <value>false</value> ? ? </property> ? ? <!--虚拟核数和物理核数乘数--> ? ? <property> ? ? ? ? <name>yarn.nodemanager.resource.pcores-vcores-multiplier</name> ? ? ? ? <value>1.0</value> ? ? </property> ? ? <!--nodemanager使用内存数,默认8g,但是服务器只有4G,修改为4g--> ? ? <property> ? ? ? ? <name>yarn.nodemanager.resource.memory-mb</name> ? ? ? ? <value>4096</value> ? ? </property> ? ? <!--nodemanager的CPU核数,默认设置为8个,但是服务器只有4核,修改为4个--> ? ? <property> ? ? ? ? <name>yarn.nodemanager.resource.cpu-vcores</name> ? ? ? ? <value>4</value> ? ? </property> ? ? <!--容器最小内存,默认1g--> ? ? <property> ? ? ? ? <name>yarn.scheduler.minimum-allocation-mb</name> ? ? ? ? <value>1024</value> ? ? </property> ? ? <!--容器最大内存,默认8g,但是服务器只有4G,修改为2g--> ? ? <property> ? ? ? ? <name>yarn.scheduler.maximum-allocation-mb</name> ? ? ? ? <value>2048</value> ? ? </property> ? ? <!--容器最小CPU核数,默认1个--> ? ? <property> ? ? ? ? <name>yarn.scheduler.minimum-allocation-vcores</name> ? ? ? ? <value>1</value> ? ? </property> ? ? <!--容器最大CPU核数,默认4个,但是服务器只有4核,修改为2个--> ? ? <property> ? ? ? ? <name>yarn.schedluler.maximum-allocation-vcores</name> ? ? ? ? <value>2</value> ? ? </property> ? ? <!--虚拟内存和物理内存设置比例,默认2.1--> ? ? <property> ? ? ? ? <name>yarn.nodemanager.vmem-pmem-ratio</name> ? ? ? ? <value>2.1</value> ? ? </property> </configuration>
?
|