zoukankan      html  css  js  c++  java
  • CDH配置YARN动态资源分配

    场景:根据不同项目或不同用户,对yarn资源队列进行划分,达到资源管控,任务管控的目的

    yarn资源队列参数设置

    当设置为 true 时,如果未指定池名称,Fair Scheduler 将会使用用户名作为默认的池名称,当设置为 false 时,所有应用程序都在一个名为 default 的共享池中运行,设置成false是为了不根据用户名而自动分配资源池

    yarn.scheduler.fair.user-as-default-queue false

    设置为 true 时,将使用默认设置创建在应用程序中指定但未明确配置的池,设置为 false 时,将在名为 default 的池中运行应用程序指定的未明确配置的池
    此设置适用于应用程序明确指定某个池时以及应用程序运行所在的池的名称为与该应用程序关联的用户名的情况

    yarn.scheduler.fair.allow-undeclared-pools false

    确定哪些用户和组可在任何池中提交和中止应用程序以及可以对 ResourceManager 角色发出命令的 AC,默认是*(所有用户都可以终止任务)

    启用 ResourceManager ACL  true
    
    yarn.admin.acl            yarn

    修改完配置重启服务

    创建测试用户

    useradd heboan
    passwd heboan
    
    useradd dev
    passwd dev
    
    hdfs dfs -mkdir /user/heboan
    hdfs dfs -chown heboan:heboan /user/heboan
    
    hdfs dfs -mkdir /user/dev
    hdfs dfs -chown dev:dev /user/dev
    
    su - heboan
    echo "Hello World Bye World" > file0
    echo "Hello Hadoop Goodbye Hadoop" > file1
    hdfs dfs -mkdir -p /user/heboan/wordcount/input
    hdfs dfs -put file* /user/heboan/wordcount/input
    
    su - dev
    echo "Hello World Bye World" > file0
    echo "Hello Hadoop Goodbye Hadoop" > file1
    hdfs dfs -mkdir -p /user/dev/wordcount/input
    hdfs dfs -put file* /user/dev/wordcount/input

    动态资源配置

    默认划分了2个资源池
    root.default: 默认池,没有划分资源池的用户会提交到default资源池
    root.user: 暂时没了解

    ①编辑root
    提交访问控制: 允许这些用户和组向该池提交: 用户: yarn
    管理访问空: Allow these users and groups to administer this pool 用户:hdfs

    ②编辑root.default
    提交访问控制: 允许这些用户和组向该池提交 用户: 允许提交的用户名,多个以逗号分隔,这里我配置的是heboan,dev
    管理访问控制: Allow these users and groups to administer this pool, 直接继承

    ③创建2个资源池root.dev和root.heboan
    提交访问控制分别设置各自的用户dev ,heboan
    管理访问控制直接继承

    备注:资源池权重数值越大,与优先

    刷新动态资源

    测试用户heboan提交任务

    su - heboan
    可以正常提交到root.heboan资源池

    hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-examples.jar wordcount -Dmapreduce.job.queuename=root.heboan wordcount/input wordcount/output

    可以正常提交到root.default资源池

    hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-examples.jar wordcount -Dmapreduce.job.queuename=root.default wordcount/input wordcount/output

    无法提交的root.dev资源池

    hadoop jar /opt/cloudera/parcels/CDH/jars/hadoop-examples.jar wordcount -Dmapreduce.job.queuename=root.dev wordcount/input wordcount/output

    su - dev
    结果同理
    因为配置了只是允许yarn管理所有的资源池,并且资源池直接继承,hdfs用户才能管理,所以heboan提交的任务只能被自己删除,或者yarn/hdfs, 当然dev提交的任务也是同理

  • 相关阅读:
    3个同一行div的摆放div
    Android 项目开发
    iOS 8
    iOS 8
    __FILE__ 与 $_SERVER['SCRIPT_FILENAME']的区别
    高德百度坐标系转换方法
    高德百度坐标系转换方法
    在iOS开发中使用icon font的方法
    在iOS开发中使用icon font的方法
    UIView的setNeedsLayout, layoutIfNeeded 和 layoutSubviews 方法之间的关系解释
  • 原文地址:https://www.cnblogs.com/sellsa/p/11238250.html
Copyright © 2011-2022 走看看