hadoop配置优化

本文详细介绍了如何通过配置Hadoop和YARN来优化大数据处理环境,包括预留磁盘空间、调整YARN CPU核心数量、配置资源调度器以及设置队列参数等内容,帮助读者提升大数据集群的稳定性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##磁盘空间占用

防止hdfs文件占用全部磁盘空间,在hdfs-site.xml中配置dfs.datanode.du.reserved:预留磁盘空间,详情请参考hadoop预留空间配置方法

 <property>
    <name>dfs.datanode.du.reserved</name>
    <value>10737418240</value>
 </property>

##yarn vcore和memory错误

修改yarn-site.xml
yarn.nodemanager.resource.cpu-vcores: 表示该节点上YARN可使用的虚拟CPU个数,默认是8,注意,目前推荐将该值设值为与物理CPU核数数目相同。如果你的节点CPU核数不够8个,则需要调减小这个值,而YARN不会智能的探测节点的物理CPU总数。

  <property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>4</value>
  </property>

修改capacity-scheduler.xml
DominantResourceCalculator按照所有的节点计算内存

  <property>
    <name>yarn.scheduler.capacity.resource-calculator</name>
    <value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
  </property>

###hadoop工作模式

hadoop三种任务执行方式
FIFO (默认) 先进先出,一次只执行一个任务。
FAIR 公平调度,多个任务平分资源
capacity 容量调度,同一队列下任务为FIFO模式

####公平模式配置

具体配置项含义参考yarn中资源调度fair schedule详解
修改队列方式yarn-site.xml

  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
  </property>
  <!-- 是否运行资源抢占,默认false -->
  <property>
    <name>yarn.scheduler.fair.preemption</name>
    <value>true</value>
  </property>
  <!-- 是否允许应用提交时创建新队列,默认true。当flase时,应用提交时指定队列不存在,则将该应用放到默认队列中执行 -->
  <property>
    <name>yarn.scheduler.fair.allow-undeclared-pools</name>
    <value>true</value>
  </property>

新建fair-scheduler.xml文件,具体配置项参考Fair Scheduler相关参数yarn fair-scheduler 公平调度的一个实例
fair-scheduler.xml修改后执行命令生效,可以不用重启yarn集群

yarn rmadmin -refreshQueues
或
yarn-daemon.sh stop resourcemanager
yarn-daemon.sh start resourcemanager

####容量模式配置

修改队列方式yarn-site.xml

  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
  </property>

队列配置

<!-- root目录下的队列 -->
<property>
  <name>yarn.scheduler.capacity.root.queues</name>
  <value>default,sparksql</value>
</property>
<!-- 弹性设置,最大时占用多少比例资源,同一层级下相加最好为100,防止资源占用过多 -->
<!-- default占用70% -->
<property>
  <name>yarn.scheduler.capacity.root.default.capacity</name>
  <value>70</value>
</property>

<!-- sparksql占用30% -->
<property>
  <name>yarn.scheduler.capacity.root.sparksql.capacity</name>
  <value>30</value>
</property>
<!-- queue capacity最大占比 -->
<property>
  <name>yarn.scheduler.capacity.root.sparksql.maximum-capacity</name>
  <value>100</value>
</property>

<property>
  <name>yarn.scheduler.capacity.root.default.user-limit-factor</name>
  <value>1</value>
</property>

<!-- 队列状态,可以是RUNNING或STOPPED -->
<property>
  <name>yarn.scheduler.capacity.root.sparksql.state</name>
  <value>RUNNING</value>
</property>
<!--限定哪些Linux用户/用户组可向给定队列中提交应用程序-->
<property>
  <name>yarn.scheduler.capacity.root.sparksql.acl_submit_applications</name>
  <value>*</value>
</property>
<!--为队列指定一个管理员,该管理员可控制该队列的所有应用程序,比如杀死任意一个应用程序等。-->
<property>
  <name>yarn.scheduler.capacity.root.sparksql.acl_administer_queue</name>
  <value>*</value>
</property>

capacity-scheduler.xml修改后执行命令

yarn rmadmin -refreshQueues
或
yarn-daemon.sh stop resourcemanager
yarn-daemon.sh start resourcemanager
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值