hive参数配置及说明
#分类  
 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 端小文件,对于 Hadoop 0.20 以前的版本,起一首新的 Map/Reduce Job,对于 0.20 以后的版本,则是起使CombineInputFormat 的 MapOnly Job。    默认值:true       
 hive.merge.mapredfiles    #是否开启合并 Map/Reduce 小文件,对于 Hadoop 0.20 以前的版本,起一首新的 Map/Reduce Job,对于 0.20 以后的版本,则是起使用 CombineInputFormat 的 MapOnly Job。    默认值:false       
 hive.default.fileformat    #Hive 默认的输出文件格式,与创建表时所指定的相同,可选项为 'TextFile' 、 'SequenceFile' 或者 'RCFile'。     'TextFile'       
 hive.mapred.mode   #Map/Redure 模式,如果设置为 strict,将不允许笛卡尔积。    默认值: 'nonstrict'       
 hive.exec.parallel    #是否开启 map/reduce job的并发提交。   默认值:  false       
 hive.security.authorization.enabled    #Hive是否开启权限认证。    默认值:false       
 hive.exec.plan    #Hive执行计划的路径,会在程序中自动进行设置    默认值:null       
 hive.exec.submitviachild    #决定 map/reduce Job 是否应该使用各自独立的 JVM 进行提交(Child进程),默认情况下,使用与 HQL compiler 相同的 JVM进行提交。    默认值:false       
 hive.exec.script.maxerrsize    #通过 TRANSFROM/MAP/REDUCE 所执行的用户脚本所允许的最大的序列化错误数。    默认值:100000       
 hive.exec.script.allow.partial.consumption    #是否允许脚本只处理部分数据,如果设置为 true ,因 broken pipe 等造成的数据未处理完成将视为正常。    默认值:false       
 hive.exec.compress.output    #决定查询中最后一个 map/reduce job 的输出是否为压缩格式。    默认值:false       
 hive.exec.compress.intermediate    #决定查询的中间 map/reduce job (中间 stage)的输出是否为压缩格式。    默认值:false       
 hive.intermediate.compression.codec   # 中间 map/reduce job 的压缩编解码器的类名(一个压缩编解码器可能包含多种压缩类型),该值可能在程序中被自动设置。            
 hive.intermediate.compression.type    #中间 map/reduce job 的压缩类型,如 "BLOCK" "RECORD"。        
 hive.exec.reducers.bytes.per.reducer   # 每一个 reducer 的平均负载字节数。    默认值:1000000000       
 hive.exec.reducers.max    #reducer 个数的上限。    默认值:999       
 hive.exec.pre.hooks    #语句层面,整条 HQL 语句在执行前的 hook 类名。    默认值:"       
 hive.exec.post.hooks    #语句层面,整条 HQL 语句在执行完成后的 hook 类名。            
 hive.exec.parallel.thread.number    #并发提交时的并发线程的个数。    默认值:8       
 hive.mapred.reduce.tasks.speculative.execution    #是否开启 reducer 的推测执行,与 mapred.reduce.tasks.speculative.execution 作用相同。    默认值:false       
 hive.exec.counters.pull.interval    #客户端拉取 progress counters 的时间,以毫秒为单位。    默认值:1000L       
 hive.exec.max.dynamic.partitions    #所允许的最大的动态分区的个数。    默认值:1000       
 hive.exec.max.dynamic.partitions.pernode    #单个 reduce 结点所允许的最大的动态分区的个数。    默认值:100       
 hive.exec.default.partition.name    #默认的动态分区的名称,当动态分区列为''或者null时,使用此名称。''     '__HIVE_DEFAULT_PARTITION__'       
 hadoop.bin.path    #Hadoop Client 可执行脚本的路径,该路径用于通过单独的 JVM 提交 job,使用 Hadoop Client 的配置。    默认值:$HADOOP_HOME/bin/hadoop       
 hadoop.config.dir    #Hadoop Client 配置文件的路径,使用 Hadoop Client 的配置。    默认值:$HADOOP_HOME/conf       
 fs.default.name    #Namenode 的 URL,使用 Hadoop Client 的配置。    默认值:file:///       
 map.input.file    #Map 的输入文件,使用 Hadoop Client 的配置。   默认值:null       
 mapred.input.dir    #Map 的输入目录,使用 Hadoop Client 的配置。    默认值: null       
 mapred.input.dir.recursive    #输入目录是否可递归嵌套,使用 Hadoop Client 的配置。    默认值:false       
 mapred.job.tracker    #Job Tracker 的 URL,使用 Hadoop Client 的配置,如果这个配置设置为 'local',将使用本地模式。    默认值:local       
 mapred.job.name     #Map/Reduce 的 job 名称,如果没有设置,则使用生成的 job name,使用 Hadoop Client 的配置。    默认值:null       
 mapred.reduce.tasks.speculative.execution    #Map/Reduce 推测执行,使用 Hadoop Client 的配置。    默认值:null       
 hive.metastore.metadb.dir    #Hive 元数据库所在路径。    默认值:"       
 hive.metastore.uris    #Hive 元数据的 URI,多个 thrift://地址,以英文逗号分隔。    默认值:"       
 hive.metastore.connect.retries    #连接到 Thrift 元数据服务的最大重试次数。    默认值:3       
 javax.jdo.option.ConnectionPassword    #JDO 的连接密码。    默认值:"       
 hive.metastore.ds.connection.url.hook    #JDO 连接 URL Hook 的类名,该 Hook 用于获得 JDO 元数据库的连接字符串,为实现了 JDOConnectionURLHook 接口的类。    默认值:"       
 javax.jdo.option.Connection
###以下为自己在工作中常用的几个参数配置
 #hive语句执行优化,参数设置
 #Map/Reduce 的 job 名称  :                       set mapred.job.name=serv_v_m_cus_al_stop_infn_${v_date}_${v_prov};
 #作业优先级                                                     set mapred.job.priority=HIGH;
 #是否打开动态分区。    默认值:false        set hive.exec.dynamic.partition=true    
 #打开动态分区后,有 strict 和 nonstrict 两个值可选,strict要求至少包含一个静态分区列,nonstrict则无此要求.默认值:strict        
                                                                            set hive.exec.dynamic.partition.mode=true        
 #多列去重操作                                                 set hive.groupby.skewindata=true;
 #控制hive的查询结果输出是否进行压缩,压缩方式在hadoop的mapred.output.compress中配置,默认不压缩false;
                                                                             set hive.exec.compress.output=false;
 #压缩算法默认值org.apache.hadoop.io.compress.DefaultCodec
                                                                             set mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
 #压缩类型                                                          set mapred.output.compression.type=BLOCK;
 #每个Map Task需要的内存量                         set mapreduce.map.memory.mb=4096;
 #设置reduce container的内存大小                set mapreduce.reduce.memory.mb=4096;
 #限制map数                                            set mapred.max.split.size=100000000;
 set mapred.min.split.size.per.node=100000000;
 set mapred.min.split.size.per.rack=100000000;
 #是否根据输入小表的大小,自动将 Reduce 端的 Common Join 转化为 Map Join,从而加快大表关联小表的 Join 速度。
                                                                            set hive.auto.convert.join=false;(此配置可能会导致数据倾斜,曾经遇到过一次,去掉这个配置之后,数据不再倾斜)
 #执行前进行小文件合并                                 set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;