HIVE遇到的配置项纪录---持续更新

本文详细记录了Hive的配置项,包括用户对底层文件的权限、Hive自身的权限设置以及常用参数优化,如hive.warehouse.subdir.inherit.perms、hive.server2.enable.doAs等。此外,还探讨了如何通过调整参数来优化Hive的MapReduce任务,提高数据处理效率,防止数据倾斜。
摘要由CSDN通过智能技术生成

hive.warehouse.subdir.inherit.perms=false

<description>true if table directories should inherit the permissions of the warehouse or database directory instead of being created with permissions derived from dfs umask</description>

默认为false,如果设置为true,表示hive新建表在hdfs的目录下,会继承warehouse的权限。

hive.server2.enable.doAs

hive.server2.enable.doAs设置成false则,yarn作业获取到的hiveserver2用户都为hive用户。

设置成true则为实际的用户名

1.Hive用户对底层文件的权限

hive用户对底层文件的访问权限,主要通过设置3个参数完成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<property>  
  <name>hive.files.umask.values</name>  
  <value>0022</value>  
  <description>当hive在hdfs上创建文件时,对应的默认掩码。此处的0022,第一个0表示八进制;剩下的022用二进制表示即000010010,然后取反得111101101,即rwxr-xr-x,这样其他用户登录hive或hdfs时候,就没权限删除该文件</description>  
</property>  
  
<property>  
  <name>hive.metastore.authorization.storage.checks</name>  
  <value>true</value>  
  <description>就是配合hive.files.umask.values参数做权限控制.</description>  
</property>  
  
<property>  
  <name>hive.metastore.execute.setugi</name>  
  <value>true</value>  
  <description>简单说就是,hadoop在非安全模式(未使用kerborers认证)时,使用hive客户端进程对应的用户和组权限操作hdfs</description>  
</property>

2. Hive自身权限

开启权限

1
2
3
4
5
6
7
8
9
10
<property>   
   <name>hive.security.authorization.enabled</name>   
   <value>true</value>   
   <description>开启权限验证</description>   
</property>   
<property>   
   <name>hive.security.authorization.createtable.owner.grants</name>   
   <value>ALL</value>   
   <description>表的创建者对表拥有所有权限</description>  
</property>

3.Hive常用参数配置优化记录

      hive通过将查询划分成一个或多个MapReduce任务达到并行处理的目的。每个任务都可能具有多个mapper和reducer任务,其中至少有一些是可以并行执行的。确定最佳的mapper个数和reducer个数取决于多个变量,例如输入的数据量大小以及对这些数据执行的操作类型等。

  保持平衡性是很有必要的,对于Spark/Hadoop这样的大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜,每个节点处理的运算不均衡。

如果有太多的mapper或reducer任务,就会导致启动阶段、调度和运行job过程中产生过多的开销;而如果设置的数量太少,那就有可能没充分利用好集群内在并行性。

hive.exec.mode.local.auto  
决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行)   
默认值:true     
hive.exec.mode.local.auto.inputbytes.max  
如果hive.exec.mode.local.auto 为 true,当输入文件大小小于此阈值时可以自动在本地模式运行,默认是 128兆。   
默认值:134217728L     
hive.exec.mode.local.auto.tasks.max  
如果hive.exec.mode.local.auto 为 true,当 Hive Tasks(Hadoop Jobs)小于此阈值时,可以自动在本地模式运行。  
默认值:4     
hive.auto.convert.join  
是否根据输入小表的大小,自动将 Reduce 端的 Common Join 转化为 Map Join,从而加快大表关联小表的 Join 速度。   
默认值:false     
hive.mapred.local.mem  
Mapper/Reducer在本地模式的最大内存量,以字节为单位,0为不限制。   
默认值:0     
mapred.reduce.tasks    
所提交 Job 的 reduer 的个数,使用 Hadoop Client 的配置。     
默认值:1
hive.exec.scratchdir  
HDFS路径,用于存储不同 map/reduce 阶段的执行计划和这些阶段的中间输出结果。  
默认值:/tmp/<user.name>/hive     
hive.metastore.warehouse.dir  
Hive 默认的数据文件存储路径,通常为 HDFS 可写的路径。   
默认值:"     
hive.groupby.skewindata  
决定 group by 操作是否支持倾斜的数据。   
默认值:false     
hive.merge.mapfiles  
在Map-only的任务结束时合并小文件。
是否开启合并 Map 端小文件,对于 Hadoop 0.20 以前的版本,起一个新的 Map/Reduce Job,对于 0.20 以后的版本,则是起使用 CombineInputFormat 的 MapOnly Job。
是否开启合并 Map 端小文件,当Hive输入由很多个小文件组成,由于每个小文件都会启动一个map任务,如果文件过小&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值