相关文章链接

CentOS7安装CDH 第一章:CentOS7系统安装

CentOS7安装CDH 第二章:CentOS7各个软件安装和启动

CentOS7安装CDH 第三章:CDH中的问题和解决方法

CentOS7安装CDH 第四章:CDH的版本选择和安装方式

CentOS7安装CDH 第五章:CDH的安装和部署-CDH5.7.0

CentOS7安装CDH 第六章:CDH的管理-CDH5.12

CentOS7安装CDH 第七章:CDH集群Hadoop的HA配置

CentOS7安装CDH 第八章:CDH中对服务和机器的添加与删除操作

CentOS7安装CDH 第九章:CDH中安装Kafka

CentOS7安装CDH 第十章:CDH中安装Spark2

CentOS7安装CDH 第十一章:离线升级CDH版本

CentOS7安装CDH 第十二章:YARN的资源调优

CentOS7安装CDH 第十三章:CDH资源池配置

CentOS7安装CDH 第十四章:CDH的优化

1. 静态资源池

在CDH中,一般情况下不建议使用静态资源池,在CDH中默认的资源池是动态资源池,为什么不建议使用静态资源池,原因如下:

假设给NodeManager分配了4G内存,刚刚开始使用的时候使用了3G,一段时间后任务增多,使用到了4G内存,当任务再增多时,静态资源池会OOM,但动态资源池会从其他地方调集资源过来接着使用。

2. 动态资源池的三种默认使用池

1、使用池已在运行时指定 ,如果该池不存在则加以创建:

  hadoop jar -Dmapreduce.job.queuename=etl xxx.jar

  假如有资源池就使用etl,没有创建etl

2、使用池 root.users.[username] ,如果该池不存在则加以创建:

  hadoop jar xxxx.jar

  以root来提交 root.users.root

  以hdfs来提交 root.users.hdfs

3、使用池 root.default:

  此规则始终满足。不会使用后续规则

3. 使用动态资源池

3.1. 动态资源池的其中2种性质

1、根据多个项目一个大的资源池的性质:

  A项目(spark streaming),B项目(spark sql/hive)

  一个项目:

  spark streaming  10%

  hive 30%

  spark sql 60%

  ---Dmapreduce.job.queuename=root.sparkstreaming

2、根据一个项目一个大的资源池性质:

  生产项目product,开发项目develop, 测试项目qa, 默认资源池

  人员:

  product1、product2: product

  develop1、develop2: develop

  qa1、qa2: qa

3.2. 配置动态资源池示例

1、创建资源池product,develop,qa和default,这些都是root的子资源池,其中内存和CPU可以自己设置,但一般不设置,就只设置权重就可以了,记得修改后要刷新动态资源池:

  

  

2、创建我们自己的放置规则:

  

  当product1用户提交hadoop jar xxxx.jar命令时,是使用的哪个资源池?

  product1用户提交的时候,取用户组是product,拼接root.product

  此时判断root.product池在不在系统配置里?

  假如在,就使用root.product,假如不在,第二条规则

3、配置CDH集群的Java Home目录:

   

  在所有主机界面的配置选项中,使用安装JDK建议使用tar包解压安装,解压的目录为/usr/java下,配置好Java Home目录后请到CDH主界面更新配置,如果不更新那该资源就不会生效。

4、开启HDFS权限检查(dfs.permissions):

  

5、创建用户组和用户:

  

6、开启资源管理器ACL和设置相应的用户或者用户组:

  

  管理ACL的格式为:" 以逗号分隔的用户列表+空格+以逗号分隔的用户组列表" ,例如 "user1,user2 group1,group2"

7、不允许未声明的池:

  

8、不使用默认队列时的 Fair Scheduler 用户:

  

9、生效配置,重启服务:

  

  或点击电源按钮。

10、提交访问控制:

  对root用户进行设置:

  

  

  对其他用户进行设置,以下以develop举例,其他类似:

  

  

  在动态资源池中主要刷新动态资源池就可以生效了,不需要重启服务。

3.3. 使用动态资源池示例

1、创建用户和用户组:

  

2、在HDFS中创建目录:

  

3、给创建的目录授权:

  hdfs dfs -chmod -R 777 /example

4、使用product1用户上传一个文件到创建的目录下:

  

5、使用product1用户在HDFS中创建一个文件夹:

  

6、使用product1用户创建一个测试文件夹,并上传到/example/input/目录下:

  

7、进入到hadoop的跟目录下,并找到hadoop自带的测试jar包:

  

8、使用product1用户执行此jar包下的wordcount程序:

hadoop jar \

/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.16.1.jar \

wordcount \

/example/input \

/example/output1

错误一:/user目录访问权限问题,可以通过修改HDFS的/user目录权限解决

修改前:

修改命令(需使用hdfs用户来修改):

[hdfs@bigdata01 ~]$ hdfs dfs -chmod -R 777 /user/

修改后:

注:该文件列表中user文件夹可以进行修改,但一些业务数据的文件夹,比如hbase文件夹就不能进行修改了。

错误二:用户根无法向队列root.default提交应用程序

此错误为没有将任务提交到product资源池中,可以将default资源池池设置成所有用户都可以访问即可,还可以进行其他设置,请去百度查看。

3.4. 提交一个spark程序中遇到的问题

1、当在CDH中安装spark2后,提交spark程序的命令为spark2-submit \;

2、提交任务命令如下:

cd /opt/cloudera/parcels/SPARK2/lib/spark2/examples/jars

spark2-submit \

--master yarn \

--queue $QUEUE_NAME \

--class org.apache.spark.examples.GroupByTest \

spark-examples_2.11-2.2.0.cloudera4.jar

3、错误一

17/10/21 13:18:48 INFO spark.SparkContext: Successfully stopped SparkContext

Exception in thread "main" java.lang.IllegalArgumentException:

Required executor memory (1024+384 MB) is above the max threshold (1049 MB) of this cluster!

Please check the values of 'yarn.scheduler.maximum-allocation-mb' and/or 'yarn.nodemanager.resource.memory-mb'.

at org.apache.spark.deploy.yarn.Client.verifyClusterResources(Client.scala:334)

at org.apache.spark.deploy.yarn.Client.submitApplication(Client.scala:168)

需要在yarn中配置yarn.nodemanager.resource.memory-mb参数

4、错误二

job的日志 HDFS:

User [dr.who] is not authorized to view the logs for container_e25_1508567262904_0002_01_000001 in log file [i-bsbhj3uw_8041]

此时是没有权限访问hdfs中的日志,需要在hdfs的配置文件中查找core-site,然后添加如下配置:

CentOS7安装CDH 第十三章:CDH资源池配置的更多相关文章

  1. CentOS7安装GitLab、汉化、邮箱配置及使用

    同步首发:http://www.yuanrengu.com/index.php/20171112.html 一.GitLab简介 GitLab是利用Ruby On Rails开发的一个开源版本管理系统 ...

  2. CentOS7安装GitLab、汉化、邮箱配置及使用(转载)

    同步首发: https://www.cnblogs.com/heyonggang/p/7778203.html http://www.yuanrengu.com/index.php/20171112. ...

  3. Centos7安装完成后设定基本的网络配置

    Centos7设定网络 新安装的centos7,网络默认是不启动的,需要人为的手工修改配置文件,在这里把这个过程简要的记录一下. 设定ip地址与mac地址自定义 [root@web ~]# cd /e ...

  4. Linux 笔记 - 第二十三章 MySQL 主从复制配置

    一.前言 MySQL Replication,也被称为主从复制.AB 复制.简单来说就是 A 和 B 两台服务器做主从后,在 A 服务器上写入数据,B 服务器上也会跟着写入输入,两者之间的数据是实时同 ...

  5. CentOS7安装CDH 第十四章:CDH的优化

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  6. CentOS7安装CDH 第十二章:YARN的资源调优

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  7. CentOS7安装CDH 第十一章:离线升级CDH版本

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  8. CentOS7安装CDH 第九章:CDH中安装Kafka

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  9. CentOS7安装CDH 第七章:CDH集群Hadoop的HA配置

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

随机推荐

  1. php cURL error 60: SSL certificate problem: unable to get local issuer certificate 解决办法

    错误例子如下: php5.6以上的版本会出现这种问题 关于“SSL证书问题:无法获取本地颁发者证书”错误.很明显,这适用于发送CURL请求的系统(并且没有服务器接收请求) 1)从https://cur ...

  2. 转 检查rac服务时,发现ons服务offline

    检查rac服务时,发现ons服务offline 时间:2014-12-23 11:17:37  作者:solgle  来源:www.solgle.com  查看:4075  评论:0         ...

  3. [ kvm ] 学习笔记 5:QEMU-KVM 命令详解

    1. QEMU.KVM .QEMU-KVM QEMU 提供了一系列的硬件模拟设备(cpu.网卡.磁盘等),客户机指令都需要QEMU翻译,因此性能较差.KVM 是Linux 内核提供的虚拟化模块,负责C ...

  4. 【VS开发】IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)

    1.htonl ()和ntohl( ) u_long PASCAL FAR ntohl (u_long netlong); u_short PASCAL FAR ntohs (u_short nets ...

  5. java设计模式(一)——单例模式

    1.基本介绍 单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供-一个取得其对象实例的方法(静态方法).如:一般情况下,数据库的连接 2.创建方式: ...

  6. php mqtt client

    <?php /* phpMQTT */ class phpMQTT { private $socket; /* holds the socket */ private $msgid = 1; / ...

  7. EFCore 通过实体Model生成创建SQL Server数据库表脚本

    在我们的项目中经常采用Model First这种方式先来设计数据库Model,然后通过Migration来生成数据库表结构,有些时候我们需要动态通过实体Model来创建数据库的表结构,特别是在创建像临 ...

  8. [C++] 例题 2.7.1 用栈实现简易计算器

    目录 前置技能 栈 (stack) 中缀表达式 (InfixExp) 与后缀表达式 (PostfixExp) 需求描述 概要设计 函数详细设计 中缀转后缀 infix_to_postfix(strin ...

  9. binlogserver搭建

    在MySQL 5.7.x版本中,mysqlbinlog工具解析任何一个本地的binlog或relay log时,都不会在mysqlbinlog命令执行结束时追加rollback语句, 但在MySQL ...

  10. golang 单元测试(一)

    单元测试函数类型 Test(功能测试) 函数规则: 函数名: TestXxxx , 以Test为前缀.Xxxx以大写字母开头 参数类型: *testing.T func TestXxxx(t *tes ...