目录1、静态和动态资源描述2、静态资源池设置3、使用准入控制4、设置每个查询的内存限制5、动态资源池设置6、关于放置规则7、设置资源池权限控制8、可能出现的错误1、静态和动态资源描述
官网
yarn 的资源池设置:
名称说明
静态资源
使用静态服务池,Impala 和其他服务可以分配专用资源来满足预计的资源需求。静态服务池将服务相互隔离impala可以限制条件删数据么,因此负载较重的服务对其他服务的影响有限。您可以使用 CM 配置静态服务池,控制内存、CPU 和磁盘 I/O。
动态资源
池可以嵌套,每一层都可以支持不同的调度器,比如先进先出或公平调度器。每个池都可以配置为只允许特定的用户和组集访问该池。
2、静态资源设置
1、HDFS 通常需要至少 5-10% 的资源
2、一般情况下,Yarn 和 Impala 会拆分剩余的总资源:对于大多数批处理应用,可能需要分配 Yarn 的 60% 的资源,Impala 的 30%,HDFS 的 10%;对于大多数即席查询负载,可能需要分配 60% 的 Impala 资源、30% 的 Yarn 和 10% 的 HDFS。
3、使用准入控制
由于静态服务池的限制,需要使用准入控制功能来进一步细分Impala的资源。您可以在 CM 的动态资源池页面中配置 Impala 的准入控制池。
在多租户用例中,您可以使用准入控制来划分动态资源池的使用情况。合理和明智的资源分配可以让重要的查询更快、更可靠地执行。
动态资源池具有以下属性:
1、最大运行查询数:在指定资源池中,进入队列前的最大并发查询数
2、最大内存:在指定资源池中,查询入队前的最大内存使用量
3、默认队列内存限制:每个节点分配给每个查询的最大内存使用大小,这样对于集群来说,一个查询可以使用的最大内存是MEM_LIMIT * 节点数。
4、Maximum Queue Queries:资源池中排队查询的最大数量。超过此大小的查询将被拒绝。
5、Queue Timeout:设置排队查询可以等待多长时间,超时的查询将被取消。
4、设置每个查询的内存限制
每个查询的内存限制用于防止一个查询消耗过多的内存资源并影响其他查询。强烈建议为查询设置内存限制。
如果您在资源池上设置“Pool Max Mem Resources”,如果没有足够的内存来执行,Impala 将尝试抑制查询。
通常,您可以使用“set MEM_LIMIT=Xg;”查询选项来设置内存限制。具体大小设置可以根据业务场景找到合适的值,让基于内存的准入控制可以更好的工作。还有一个潜在的缺点是尝试使用更多内存的查询可能会被取消或执行效率低下。
为了找到一个合理的默认查询内存限制:
1、运行负载
2、在 Cloudera Manager 中,选择 Impala > Queries
3、点击“选择属性”
4、在弹出的对话框中选择“Per Node Peak Memory Usage”,然后点击“Update”
5、允许系统时间收集信息,然后点击“显示直方图”图标查看结果:
6、 使用直方图分析大部分查询语句,找到更合适的内存大小。对于那些需要更多内存(超过内存限制)的查询,我们可以显式设置内存限制大小,以确保查询可以运行完成。
5、动态资源池设置
动态资源池是一种策略,用于在池中运行的 YARN 应用程序或 Impala 查询之间配置和调度资源。动态资源池允许您根据用户对指定池的访问权限为 Impala 查询安排和分配资源。
为 Impala 创建生产动态资源池:
1、在 Cloudera Manager 中,选择 Clusters>Dynamic Resource Pool Configuration
2、点击 ImpalaAdmission Control 选项
3、 点击创建资源池
4、指定生产资源池的名称和资源限制大小:
5、点击创建
6、单击刷新动态资源池
通过上述设置,可以在生产队列中同时运行 10 个 Impala 查询。如果总内存请求超过 48000MB,它会将查询排队,直到内存被释放,这样可以防止运行需要更多内存的查询。
为 Impala 创建开发动态资源池:
1、在 Cloudera Manager 中,选择 Clusters>Dynamic Resource Pool Configuration
2、点击 ImpalaAdmission Control 选项
3、点击创建资源池
4、 指定开发的资源池名称和资源限制大小:
5、 点击创建
6、单击刷新动态资源池
6、关于放置规则
放置规则确定每个查询如何映射到资源池。标准设置是指定时使用指定资源池,否则使用默认资源池。
例如可以使用SET语句来设置查询语句使用哪个资源池:
SET REQUEST_POOL=生产;
7、设置资源池的权限控制
您可以指定允许哪些用户和组使用创建的资源池。
为 Impala 创建开发动态资源池:
1、 在 Cloudera Manager 中,选择集群 > 动态资源池配置
2、点击 Impala 准入控制选项
3、选择【创建资源池】,点击编辑按钮进行修改
4、单击提交访问控制选项
5、选择允许这些用户和组提交到此池
6、用逗号分隔impala可以限制条件删数据么,输入用户列表,指定这些用户访问指定资源池
7、 点击保存
8、可能的错误
执行hive时,yarn log中出现这个问题。
Can't create directory /export/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
Can't create directory /export/grid/01/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
Can't create directory /export/grid/02/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
Can't create directory /export/grid/03/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
Can't create directory /export/grid/04/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
Can't create directory /export/grid/05/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
Can't create directory /export/grid/06/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
Can't create directory /export/grid/07/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
Can't create directory /export/grid/08/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
Can't create directory /export/grid/09/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
Can't create directory /export/grid/10/yarn/nm/usercache/hive/appcache/application_1540901586079_0137 - Permission denied
解决方案:
点击【集群->静态服务池->配置->直接更改配置->去掉两个勾选->重启】确定
北京小慧微信公众号
暂无评论内容