CDH常用优化配置


1.hive.metastore.warehouse.dir
Hive 仓库目录是在 HDFS 中存储 Hive 表格的位置。注意此仓库目录的 Hive 默认值为“/user/hive/warehouse”。

2.hive.warehouse.subdir.inherit.perms
让表目录继承仓库或数据库目录的权限,替代使用从 dfs umask 派生权限创建。该操作允许通过 Hive 将 Impala 插入创建的表中。

3.mapred.reduce.tasks
每项作业中 reduce 任务的默认数量。通常设置为接近可用主机数量的素数。当 mapred.job.tracker 为“本地”时忽略。Hadoop 默认将该项设置为 1,而 Hive 默认使用 -1。当设置为 -1 时,Hive 将自动决定用于每项作业的 reducer 的适用数量。

4.hive.exec.reducers.bytes.per.reducer
每个 reducer 的大小。如果输入大小为 10GiB 并且该项设置为 1GiB,Hive 将使用 10 个 reducer。

5.hive.exec.reducers.max
要使用的 reducer 的最大数量。如果配置参数 Hive Reduce Tasks 为负,则 Hive 会将 reducer 数量限制为此参数的值。

6.hive.metastore.execute.setugi
在不安全模式下,将此属性设置为“true”将导致 Metastore 服务器使得客户端报告的用户和组权限执行 DFS 操作。Cloudera Manager 将为所有客户端和服务器设置此属性。

7.hive.metastore.try.direct.sql
Hive Metastore 是否应尝试使用直接 SQL 查询,而不是针对一定读取路径使用 DataNucleus。这样在获取许多分区时可以使 Metastore 性能得到数量级的提升。如果失败,执行将返回到 DataNucleus。使用 Postgres 配置 Hive 服务时不支持此配置且将禁用此配置。

8.sentry.metastore.service.users
允许在 Hive Metastore 中绕过 Sentry 授权的用户的列表。这些用户通常是已确保所有活动得到授权(例如 hive 和 impala)的服务用户。仅在 Hive 使用 Sentry 服务时适用。

9.hive.auto.convert.join
启用根据输入文件大小将通用联接转换为 MapJoin 的优化。

10.hive.optimize.index.filter
启用自动使用索引,是否要对所有查询使用索引优化。

11.hive.vectorized.execution.enabled
启用通过一次处理 1024 行的块来简化操作而使查询向量化的优化。

12.hive.merge.mapfiles
启用小文件合并 - Map-Only 作业,在 map-only 作业结束时合并小文件。如启用,将创建 map-only 作业以合并目标表/分区中的文件。

13.hive.merge.sparkfiles
在 Spark 作业结束时合并小文件。如启用,将创建 map-only 作业以合并目标表/分区中的文件。

14.hive.optimize.reducededuplication
如数据已按相同键群集,则删除额外的 map-reduce 作业,避免需要对数据集重新分区。

15.hive.map.aggr
启用 map 端部分聚合,使 mapper 产生较少错误。这样可机减少要排序并分发到 reducer 的数据。

16.hive.execution.engine
运行 Hive 查询的默认执行引擎。对于 MapReduce 可设为 mr,对于 Spark 可设为 spark。

17.hive.stats.fetch.column.stats
在解释期间是否获取了表的列统计数据。

18.hive.exec.copyfile.maxsize
如小于此大小,Hive 使用单线程副本;如大于此大小,Hive 使用 DistCp。

19.hive.server2.thrift.port
HiveServer2 监听连接的端口。

20.hive.metastore.port
Hive Metastore 服务器监听连接的端口。

21.Hive Metastore Canary 运行状况检查
启用检查基本 Hive Metastore 操作是否成功的运行状况检查

22.hive.fetch.task.conversion
某些选择查询可被转换成单个 FETCH 任务,而不是 MapReduce 任务,从而最大限度地减少了延迟。None 值可禁用所有转换、最小转换单个查询(如 SELECT *)、分区列上的筛选器以及更多转换 SELECT 查询(包括 FILTERS)。

23.spark.executor.cores
每个 Spark 执行程序的内核数。

24.spark.executor.memory
当 Hive 在 Spark 上运行时每个 Spark 执行程序的 Java 堆栈内存的最大大小

25.spark.driver.memory
当 Hive 在 Spark 上运行时每个 Spark 驱动程序的 Java 堆栈内存的最大大小

26.spark.yarn.driver.memoryOverhead
这是每个驱动程序可从 YARN 请求的额外堆外内存量。它与 spark.driver.memory 一起构成 YARN 可用来为驱动程序进程创建 JVM 的总内存。

27.spark.yarn.executor.memoryOverhead
这是每个执行程序进程可从 YARN 请求的额外堆外内存量。它与 spark.executor.memory 一起构成 YARN 可用来为执行程序进程创建 JVM 的总内存。

28.spark.dynamicAllocation.enabled
如启用,Spark 将动态地向 Hive 作业添加和删除执行程序。此操作基于工作负荷完成。

29.spark.dynamicAllocation.initialExecutors
spark应用程序在任何给定时间使用的执行程序初始数。如果启用了动态执行程序分配功能,这是必需的。

30.spark.dynamicAllocation.minExecutors
应用程序在任何给定时间使用的执行程序下限数。由动态执行程序分配使用。

上一篇:Windows Phone 8.1中ScrollViewer(一)


下一篇:Docker-搭建私有仓库