hive配置官网翻译2017版(更新中...)

hive.execution.engine
默认值:mr
添加时间:Hive 0.13.0 with HIVE-6103 and HIVE-6098

— 选择执行引擎。选项: mr (Map reduce, 默认值)、tez ( Hadoop 2 only)、or spark (Hive 1.1.0 版本及之后)。


mapred.reduce.tasks
默认值:-1
添加时间:Hive 0.1.0

— 每个job中reduce tasks 的默认个数。通常设置一个最优值接近可用主机的数量,忽略当mapred.job.tracker=local,hadoop平台设置默认值为1;然而Hive用-1作为默认值,通过设置-1为默认值,Hive会自动计算出reducers的数量。


hive.exec.reducers.bytes.per.reducer
默认值: 1,000,000,000 (Hive 0.14.0之前)、 256 MB (256,000,000) 在 Hive 0.14.0 之后
添加时间: Hive 0.2.0;default changed in 0.14.0 with HIVE-7158 (and HIVE-7917)

— 每个reduceer的大小。在Hive0.14.0之前是默认1G,即,如果输入大小为10GB,则将用到10个reducers;在Hive0.14.0之后默认256MB,即,如果输入大小为1GB,则将产生4个reducers。


hive.exec.reducers.max
默认值:999 ( Hive 0.14.0之前)、1009 (Hive 0.14.0之后)
添加时间:Hive 0.2.0; default changed in 0.14.0 with HIVE-7158 (and HIVE-7917)

— 可被用到的最大reducers的个数。如果配置文件中指定mapred.reduce.tasks 为负数,则当自动决定reducers的个数时,Hive将使用此值作为reducers的最大限定值。


hive.jar.path
默认值: 空
添加时间:Hive 0.2.0 or earlier

— 当在一个独立的jvm中提交jobs时hive_cli.jar的位置。


hive.aux.jars.path
默认值:空
添加时间:Hive 0.2.0 or earlier

— 引入jars包的位置(包含用户自定义函数UDFs和串行器的执行)。
注意:1,目前只支持file://也就是本地文件,暂不支持HDFS,也不支持文件夹。2,多个文件使用逗号分隔。3,不能换行。

<property>  
     <name>hive.aux.jars.path</name>  
     <value>file:///jarpath/all_new1.jar,file:///jarpath/all_new2.jar</value>  
</property> 

hive.exec.scratchdir
默认值:
/tmp/{user.name} in Hive 0.2.0 through 0.8.0;
/tmp/hive-${user.name} in Hive 0.8.1 through 0.14.0;
/tmp/hive in Hive 0.14.0 and later;
添加时间:Hive 0.2.0; default changed in 0.8.1 and in 0.14.0 with HIVE-6847 and HIVE-8143

— HDFS路径,用于存储不同 map/reduce 阶段的执行计划和这些阶段的中间输出结果。


hive.scratch.dir.permission
默认值:700
添加时间:Hive 0.12.0 with HIVE-4487

— 创建的临时目录的权限,默认是700;


hive.metastore.warehouse.dir
默认值: /user/hive/warehouse
添加时间: Hive 0.2.0

— 默认数据仓库的位置,通常为 HDFS 可写的路径。


hive.hadoop.supports.splittable.combineinputformat
默认值:false
添加时间: Hive 0.6.0

— 是否合并小的输入文件,从而减小mappers的个数。


hive.map.aggr
默认值:true in Hive 0.3 and later; false in Hive 0.2
添加时间: Hive 0.2.0

— 在Hive的group by 查询的时候是否开启map-side聚合


hive.groupby.skewindata
默认值: false
添加时间:Hive 0.3.0

— 决定 group by 操作是否支持倾斜的数据。


hive.groupby.mapaggr.checkinterval
默认值: 100000
添加时间:Hive 0.3.0

— 这个是group的键对应的记录条数,超过这个值则会进行优化。


hive.mapred.local.mem
默认值: 0
添加时间:Hive 0.3.0

— mappers/reducers 在本地模式的最大内存量,以字节为单位,0为不限制。


hive.map.aggr.hash.force.flush.memory.threshold
默认值:0.9
添加时间:Hive 0.7.0 with HIVE-1830

— map端聚合时hash表的最大可用内存,如果超过该值则进行flush数据,默认是0.9;


hive.map.aggr.hash.percentmemory
默认值:0.5
添加时间:Hive 0.2.0

— map端聚合时hash表所占用的内存比例,默认0.5,这个在map端聚合开启后使用


hive.map.aggr.hash.min.reduction
默认值:0.5
添加时间: Hive 0.4.0

— 如果哈希表大小和输入行之间的比率大于这个数字,哈希聚合将关闭。设置为1以确保哈希聚合是永远不会关闭。


hive.optimize.groupby
默认值:true
添加时间:Hive 0.5.0

— 在做分区和表查询时是否做分桶group by,默认开启true;


hive.multigroupby.singlereducer
默认值: true
添加时间: Hive 0.9.0 with HIVE-2621

— 将多个group by产出为一个单一map/reduce任务计划,当然约束前提是group by有相同的key。


hive.optimize.index.filter
默认值:false
添加时间: Hive 0.8.0 with HIVE-1644

— 自动使用索引,默认不开启false;(性能优化)


hive.join.emit.interval
默认值:1000
添加时间: Hive 0.2.0

— 在发出join结果之前对join最右操作缓存多少行的设定,默认1000;


hive.join.cache.size
默认值:25000
添加时间: Hive 0.5.0

— 在做表join时缓存在内存中的行数,默认25000.


hive.mapjoin.bucket.cache.size
默认值: 100
添加时间:Hive 0.5.0 (replaced by hive.smbjoin.cache.rows in Hive 0.12.0)

— mapjoin时内存cache的每个key要存储多少个value,默认100


hive.smbjoin.cache.rows
默认值:10000
添加时间:Hive 0.12.0 (replaces hive.mapjoin.bucket.cache.size)

— 每个排序合并桶联接表,多少具有相同键值的行数应缓存在内存中。


hive.optimize.skewjoin
默认值:false
添加时间: Hive 0.6.0

— 是否开启数据倾斜的join优化。默认false;


hive.skewjoin.key
默认值:100000
添加时间:Hive 0.6.0

— 判断数据倾斜的阈值,如果在join中发现同样的key超过该值则认为是该key是倾斜的join key,默认是100000;


hive.skewjoin.mapjoin.map.tasks
默认值:10000
添加时间:Hive 0.6.0

— 在数据倾斜join时map join的map数控制,默认是10000;


hive.skewjoin.mapjoin.min.split
默认值:33554432
添加时间:Hive 0.6.0

— 数据倾斜join时map join的map任务的最小split大小,默认是33554432,该参数要结合hive.skewjoin.mapjoin.map.tasks参数共同使用来进行细粒度的控制;


hive.mapred.mode
默认值:
Hive 0.x: nonstrict
Hive 1.x: nonstrict
Hive 2.x: strict (HIVE-12413)
添加时间: Hive 0.3.0

— hive操作执行时的模式,默认是nonstrict非严格模式,如果是strict模式,很多有风险的查询会被禁止运行,比如笛卡尔积的join和动态分区;全表的扫描被阻止;order by 需要加一个limit条件。


hive.exec.script.maxerrsize
默认值:100000(100K)
添加时间:Hive 0.2.0

— 一个map/reduce任务允许打印到标准错误里的最大字节数,为了防止脚本把分区日志填满,默认是100000(一般不用修改);


hive.script.auto.progress
默认值: false
添加时间: Hive 0.4.0

— hive的transform/map/reduce脚本执行时是否自动的将进度信息发送给TaskTracker来避免任务没有响应被误杀,本来是当脚本输出到标准错误时,发送进度信息,但是开启该项后,输出到标准错误也不会导致信息发送,因此有可能会造成脚本有死循环产生,但是TaskTracker却没有检查到从而一直循环下去;


hive.exec.script.allow.partial.consumption
默认值:false
添加时间: Hive 0.5.0

— hive是否允许脚本不从标准输入中读取任何内容就成功退出,默认关闭false;


hive.exec.compress.output
默认值:false
添加时间:Hive 0.2.0

— 控制hive的查询结果输出是否进行压缩,压缩方式在hadoop的mapred.output.compress中配置,默认不压缩false;
— set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
— set mapred.output.compression.type=BLOCK;


hive.exec.compress.intermediate
默认值:false
添加时间: Hive 0.2.0

— 控制hive的查询中间结果是否进行压缩,同上条配置,默认不压缩false;
— set mapred.map.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec(官网)
— set hive.intermediate.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;(常用)
— set hive.intermediate.compression.type=BLOCK;


hive.exec.parallel
默认值: false
添加时间:Hive 0.5.0

— hive的执行job是否并行执行,默认不开启false,在很多操作如join时,子查询之间并无关联可独立运行,这种情况下开启并行运算可以大大加速;


hive.exec.parallel.thread.number
默认值:8
添加时间: Hive 0.6.0

— 并行运算开启时,允许多少作业同时计算,默认是8;


hive.exec.rowoffset
默认值: false
添加时间:Hive 0.8.0

— 是否提供行偏移量的虚拟列,默认是false不提供,Hive有两个虚拟列:一个是INPUT__FILE__NAME,表示输入文件的路径,另外一个是BLOCK__OFFSET__INSIDE__FILE,表示记录在文件中的块偏移量,这对排查出现不符合预期或者null结果的查询是很有帮助的;


hive.exec.pre.hooks
默认值: (empty)
添加时间: Hive 0.4.0

— 执行前置条件,一个用逗号分隔开的实现了org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext接口的java class列表,配置了该配置后,每个hive任务执行前都要执行这个执行前钩子,默认是空;


hive.exec.post.hooks
默认值: (empty)
添加时间: Hive 0.5.0

— 同上,执行后钩子,默认是空;


hive.exec.failure.hooks
默认值: (empty)
添加时间: Hive 0.8.0

— 同上,异常时钩子,在程序发生异常时执行,默认是空;


hive.merge.mapfiles
默认值:true
添加时间:Hive 0.4.0

— 在只有map的作业结束时合并小文件,默认开启true;


hive.merge.mapredfiles
默认值:false
添加时间:Hive 0.4.0

— 在一个map/reduce作业结束后合并小文件,默认不开启false;


hive.merge.size.per.task
默认值:256000000
添加时间:Hive 0.4.0

— 作业结束时合并文件的大小,默认256MB;


hive.merge.smallfiles.avgsize
默认值:16000000
添加时间:Hive 0.5.0

— 在作业输出文件小于该值时,起一个额外的map/reduce作业将小文件合并为大文件,小文件的基本阈值,设置大点可以减少小文件个数,需要hive.merge.mapfiles和hive.merge.mapredfiles为true,默认值是16MB;

  • 【拓展】
    • 通过以下方法来在map执行前合并小文件,减少map数:
    • set mapred.max.split.size=100000000;
    • set mapred.min.split.size.per.node=100000000;
    • set mapred.min.split.size.per.rack=100000000;
    • set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
    • 大概解释一下,100000000表示100M,
    • set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;这个参数表示执行前进行小文件合并。
    • 前面三个参数确定合并文件块的大小,大于文件块大小128m的,按照128m来分隔,小于128m,大于100m的,按照100m来分隔,把那些小于100m的(包括小文件和分隔大文件剩下的),进行合并。

hive.auto.convert.join
默认值:false in 0.7.0 to 0.10.0;true in 0.11.0 and later (HIVE-3297)
添加时间: 0.7.0 with HIVE-1642

— 是否根据输入小表的大小,自动将 Reduce 端的 Common Join 转化为 Map Join,从而加快大表关联小表的 Join 速度。 (提醒:在hive-default.xml.template 中错误的给出了默认为false在Hive 0.11.0 到 0.13.1.的版本中)


hive.auto.convert.join.noconditionaltask
默认值:true
添加时间:0.11.0 with HIVE-3784 (default changed to true with HIVE-4146)

— 是否将多个mapjoin合并为一个。如果多个mapjoin转换为1个,要求是所有小表的文件大小总和小于hive.auto.convert.join.noconditionaltask.size 设置的值(默认是10MB)


hive.auto.convert.join.noconditionaltask.size
默认值:10000000
添加时间:0.11.0 with HIVE-3784

— 多个mapjoin转换为1个时,所有小表的文件大小总和的最大值。默认是10MB.


hive.udtf.auto.progress
默认值:false
添加时间:Hive 0.5.0

— UDTF执行时hive是否发送进度信息到TaskTracker,默认是false;用户应该谨慎,因为这可能阻止TaskTracker杀死任务,从而无限循环。


hive.mapred.reduce.tasks.speculative.execution
默认值:true
添加时间:Hive 0.5.0

— reduce任务推测执行是否开启,默认是true;

  • 【拓展】
    mapred.map.tasks.speculative.execution=true
    mapred.reduce.tasks.speculative.execution=true
    • 这两个是推测执行的配置项,它们默认值是true
    • 所谓的推测执行,就是当所有task都开始运行之后,Job Tracker会统计所有任务的平均进度,如果某个task所在的task node机器配置比较低或者CPU load很高(原因很多),导致任务执行比总体任务的平均执行要慢,此时Job Tracker会启动一个新的任务(duplicate task),然后原有任务和新任务哪个先执行完就把另外一个kill掉,这也是我们经常在Job Tracker页面看到任务执行成功,但是总有些任务被kill,就是这个原因。
    • 有以下几种情况最好是将那个参数设为false:
      1.当执行的任务相比集群其他任务执行时间非常长,占用的slot数很多。
      这种情况下会推断为任务执行的较慢,会启动更多的task,而slot资源本身就非常的紧张,又翻倍往上长,集群上的其他任务就根本抢不到slot了,对集群是危害很大的事情。
      2.当任务是操作redis,hbase这种中间存储层的时候。
      像对这些中间存储层进行读写操作的时候,它们本身就承担着压力,推断执行一开,我勒个去了,压力就要翻倍,这对于性能是一件非常不好的事情。

hive.exec.counters.pull.interval
默认值:1000
添加时间:Hive 0.6.0

— 运行中job轮询JobTracker的时间间隔,设置小会影响JobTracker的load,设置大可能看不出运行任务的信息,要去平衡,默认是1000;


hive.enforce.bucketing
默认值:
Hive 0.x: false
Hive 1.x: false
Hive 2.x: removed, which effectively makes it always true (HIVE-12331)【被移除,总true】
添加时间:Hive 0.6.0

— 是否开启强制分桶。如果为true,则当insert into 表的时候,会强制分桶。


hive.enforce.sorting
默认值:
Hive 0.x: false
Hive 1.x: false
Hive 2.x: removed, which effectively makes it always true (HIVE-12331)【被移除,总true】
添加时间: Hive 0.6.0

— 开启强制排序时,插数据到表中会进行强制排序;


hive.optimize.bucketingsorting
默认值:true
添加时间:Hive 0.11.0 with HIVE-4240

— 如果 hive.enforce.bucketing 或者 hive.enforce.sorting 为 true, 不会为强制分桶、排序而创建一个 reducer去查询表单。(在 Hive 2.0.0 and later, 这个参数不再依赖于 hive.enforce.bucketing 或者hive.enforce.sorting.)


hive.optimize.reducededuplication
默认值:true
添加时间:Hive 0.6.0

— 是否优化 reduce 冗余。如果数据已经根据相同的key做好聚合,那么去除掉多余的map/reduce作业,此配置是文档的推荐配置,建议打开,默认是true;


hive.optimize.reducededuplication.min.reducer

Default Value: 4
Added In: Hive 0.11.0 with HIVE-2340

Reduce deduplication merges two RSs (reduce sink operators) by moving key/parts/reducer-num of the child RS to parent RS. That means if reducer-num of the child RS is fixed (order by or forced bucketing) and small, it can make very slow, single MR. The optimization will be disabled if number of reducers is less than specified value.

一、关系运算: 4 1. 等值比较: = 4 2. 不等值比较: 4 3. 小于比较: < 4 4. 小于等于比较: 5 6. 大于等于比较: >= 5 7. 空值判断: IS NULL 5 8. 非空判断: IS NOT NULL 6 9. LIKE比较: LIKE 6 10. JAVA的LIKE操作: RLIKE 6 11. REGEXP操作: REGEXP 7 二、数学运算: 7 1. 加法操作: + 7 2. 减法操作: - 7 3. 乘法操作: * 8 4. 除法操作: / 8 5. 取余操作: % 8 6. 位与操作: & 9 7. 位或操作: | 9 8. 位异或操作: ^ 9 9.位取反操作: ~ 10 三、逻辑运算: 10 1. 逻辑与操作: AND 10 2. 逻辑或操作: OR 10 3. 逻辑非操作: NOT 10 四、数值计算 11 1. 取整函数: round 11 2. 指定精度取整函数: round 11 3. 向下取整函数: floor 11 4. 向上取整函数: ceil 12 5. 向上取整函数: ceiling 12 6. 取随机数函数: rand 12 7. 自然指数函数: exp 13 8. 以10为底对数函数: log10 13 9. 以2为底对数函数: log2 13 10. 对数函数: log 13 11. 幂运算函数: pow 14 12. 幂运算函数: power 14 13. 开平方函数: sqrt 14 14. 二进制函数: bin 14 15. 十六进制函数: hex 15 16. 反转十六进制函数: unhex 15 17. 进制转换函数: conv 15 18. 绝对值函数: abs 16 19. 正取余函数: pmod 16 20. 正弦函数: sin 16 21. 反正弦函数: asin 16 22. 余弦函数: cos 17 23. 反余弦函数: acos 17 24. positive函数: positive 17 25. negative函数: negative 17 五、日期函数 18 1. UNIX时间戳转日期函数: from_unixtime 18 2. 获取当前UNIX时间戳函数: unix_timestamp 18 3. 日期转UNIX时间戳函数: unix_timestamp 18 4. 指定格式日期转UNIX时间戳函数: unix_timestamp 18 5. 日期时间转日期函数: to_date 19 6. 日期转年函数: year 19 7. 日期转月函数: month 19 8. 日期转天函数: day 19 9. 日期转小时函数: hour 20 10. 日期转分钟函数: minute 20 11. 日期转秒函数: second 20 12. 日期转周函数: weekofyear 20 13. 日期比较函数: datediff 21 14. 日期增加函数: date_add 21 15. 日期减少函数: date_sub 21 六、条件函数 21 1. If函数: if 21 2. 非空查找函数: COALESCE 22 3. 条件判断函数:CASE 22 4. 条件判断函数:CASE 22 七、字符串函数 23 1. 字符串长度函数:length 23 2. 字符串反转函数:reverse 23 3. 字符串连接函数:concat 23 4. 带分隔符字符串连接函数:concat_ws 23 5. 字符串截取函数:substr,substring 24 6. 字符串截取函数:substr,substring 24 7. 字符串转大写函数:upper,ucase 24 8. 字符串转小写函数:lower,lcase 25 9. 去空格函数:trim 25 10. 左边去空格函数:ltrim 25 11. 右边去空格函数:rtrim 25 12. 正则表达式替换函数:regexp_replace 26 13. 正则表达式解析函数:regexp_extract 26 14. URL解析函数:parse_url 26 15. json解析函数:get_json_object 27 16. 空格字符串函数:space 27 17. 重复字符串函数:repeat 27 18. 首字符ascii函数:ascii 28 19. 左补足函数:lpad 28 20. 右补足函数:rpad 28 21. 分割字符串函数: split 28 22. 集合查找函数: find_in_set 29 八、集合统计函数 29 1. 个数统计函数: count 29 2. 总和统计函数: sum 29 3. 平均值统计函数: avg 30 4. 最小值统计函数: min 30 5. 最大值统计函数: max 30 6. 非空集合总体变量函数: var_pop 30 7. 非空集合样本变量函数: var_samp 31 8. 总体标准偏离函数: stddev_pop 31 9. 样本标准偏离函数: stddev_samp 31 10.位数函数: percentile 31 11. 位数函数: percentile 31 12. 近似位数函数: percentile_approx 32 13. 近似位数函数: percentile_approx 32 14. 直方图: histogram_numeric 32 九、复合类型构建操作 32 1. Map类型构建: map 32 2. Struct类型构建: struct 33 3. array类型构建: array 33 十、复杂类型访问操作 33 1. array类型访问: A[n] 33 2. map类型访问: M[key] 34 3. struct类型访问: S.x 34 十一、复杂类型长度统计函数 34 1. Map类型长度函数: size(Map) 34 2. array类型长度函数: size(Array) 34 3. 类型转换函数 35
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值