Hive参数详解

1. SerDes and I/O

  • hive.input.format
    默认 org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
    默认的input format。如果 CombineHiveInputFormat 有问题,则使用 HiveInputFormat
  • hive.default.fileformat
    默认值 TextFile
    可选项:TextFile,SequenceFile,RCfile,ORC,Parquet
    Parquet是在2.3.0之后才有的,其他都在1.0之前就有了
  • hive.query.result.fileformat
    默认值 TextFile(Hive2.0及以前),SequenceFile(Hive2.1及以上版本)
    查询中间结果的文件格式

2. index相关参数

2.1 常调整参数(需熟悉并且自己试验一下, OK)
  • hive.optimize.index.filter
    默认值: false
    是否自动使用索引
  • hive.optimize.index.groupby
    默认值:false
    是否使用聚集索引优化group-by查询
  • hive.index.compact.binary.search
    默认值:true
    在索引表中是否开启二分搜索进行索引项查询,默认是true
  • hive.exec.concatenate.check.index
    默认值: true
    这个参数设置为true, 当使用 alter table ... concatenate on... 的时候,如果表有索引hive会报错。可以帮助用户避免index的删除和重建
  • hive.optimize.index.autoupdate
    默认值:false
    是否在索引过期时启用自动重建。 注意:重新构建索引可能是一项耗时且计算昂贵的操作;在许多情况下,最好是手动重新构建索引。
2.2 了解即可
  • hive.index.compact.file.ignore.hdfs
    默认值: false
    这个参数设置为 true 的时候任务运行时索引中存储的HDFS地址将被忽略,如果数据被删除或者名字变化,索引依然还可以用
  • hive.optimize.index.filter.compact.minsize
    默认值:5368709120 (5g)
    压缩索引自动应用的最小输入大小
  • hive.optimize.index.filter.compact.maxsize
    默认值:-1
    压缩索引自动应用的最大输入大小,负值代表无穷大
  • hive.index.compact.query.max.size
    默认值:10737418240 (10G)
    一个使用压缩索引的查询可以读入的最大数据量,负值代表无穷大
  • hive.index.compact.query.max.entries
    默认值:10000000
    使用压缩索引查询时能读到的最大索引项数,默认是10000000;负值代表无穷大;

3. orc文件格式相关参数

3.1 常调整参数(需熟悉并且自己试验一下,OK)
  • hive.orc.splits.include.file.footer
    默认值 false
    这个值如果打开,ORC文件中将包含stripes的元数据,这个数据远程读取(从客户端或者HiveServer2机器上)并且发送到所有的task
  • hive.orc.cache.stripe.details.size
    默认值 10000
    ORC文件的元数据信息在客户端缓存时可缓存的大小
  • hive.orc.compute.splits.num.threads
    默认值 10
    ORC并行创建 splits 时的最大线程
  • hive.exec.orc.split.strategy
    默认HYBRID,可选: HYBRID, BI, ETL,从 HIVE 1.2.0 版本开始出现。(环境为hive1.1.0, 试验不了)不是用户级配置
    (1) HYBRID: 当文件的平均大小大于orc最大split值(默认256M)时使用ETL策略,否则使用BI策略。
    (2) BI: 这种策略不会花费太多时间进行切分orc文件,不会去读orc的footer元数据,以文件为单位进行切片
    (3) ETL: 这种策略会将文件进行切分,多个stripe组成一个split
  • hive.exec.orc.zerocopy
    默认值为 false
    使用零拷贝读取ORC。(这需要Hadoop 2.3或更高版本。公司环境hadoop是2.6的)
  • hive.merge.orcfile.stripe.level
    默认值: true
    当参数 hive.merge.mapfiles,hive.merge.mapredfiles 或者 hive.merge.tezfiles打开时,这个参数设置为 true的时候会从 stripe 层对 ORC文件进行快速合并。
3.2 不常调整参数

需知道

  • hive.exec.orc.default.stripe.size
    默认值: HIVE0.14之后改成了64*1024*1024
    默认的ORC stripe大小
  • hive.exec.orc.default.block.size
    默认值: 256*1024*1024
    orc文件的默认block大小
  • hive.exec.orc.default.row.index.stride
    默认值 10000
    orc文件中行组的行数
  • hive.exec.orc.default.block.padding
    默认值 true
    默认块填充。(orc文件的stripe和HDFS的文件块边界应该有填充)
  • hive.exec.orc.block.padding.tolerance
    默认值:0.05
    填充的时候能填充空间占orc stripe大小的最大比例,例如stripe默认64M,则填充空间最大达到3.2M,如果超过这个数会用一个新的较小的stripe填进去。
  • hive.exec.orc.default.compress
    默认值 ZLIB
    orc文件默认压缩格式
  • hive.exec.orc.encoding.strategy
    默认值 SPEED
    可选项为 SPEED 和 COMPRESSION,只会影响整数的轻量级压缩,不会影响二级压缩如ZLIB
  • hive.exec.orc.compression.strategy
    默认值 SPEED
    可选项为 SPEED 和 COMPRESSION,影响二级压缩如ZLIB
  • hive.orc.row.index.stride.dictionary.check
    默认值: true
    这个参数设置为true的时候会进行行组级别的check,否则会进行stripe级别的check

了解即可

  • hive.exec.orc.memory.pool
    默认值 0.5
    ORC文件写入时可以使用的堆内存的占比
  • hive.exec.orc.base.delta.ratio
    默认值 8
    根据 STRIPE_SIZE 和 BUFFER_SIZE 定义的基本写入器和增量写入器的比例。
  • hive.exec.orc.default.buffer.size
    默认值:256*1024
    默认ORC缓冲大小
  • hive.exec.orc.dictionary.key.size.threshold
    默认值 0.8
  • hive.orc.cache.use.soft.references
    默认值 false
    缓存orc文件的footer所用的对象是hard refernce(强引用,不会被垃圾回收器回收)。将这个参数设置为true可以防止内存资源紧缺时候发生内存溢出,代价是可能会隐性查询性能。
  • hive.exec.orc.skip.corrupt.data
    默认值:false
    设置为false的时候碰到损坏的数据将抛出异常

4. Reducer相关参数

4.1 常调整参数(需熟悉并且自己试验一下,OK)
  • mapred.reduce.tasks
    默认值 -1。
    每一个 job 默认的 reduce task 的数量,通常设置为接近可用主机数量的素数,当把参数 mapred.job.tracker 设置为 local 的时候这个参数被忽略。Hadoop中这个参数默认为1,但是hive通过将这个值默认为 -1,自动计算出 reduce task 的数量。 ---自动计算的依据?
  • hive.exec.reducers.bytes.per.reducer
    Hive 0.14.0 之后默认值为 256M,指的是每一个reducer的数据输入量。
  • hive.exec.reducers.max
    Hive 0.14.0 之后默认值为 1009,指的是reducer数量的上限。

计算reducer的方式 N=min(hive.exec.reducers.max,总输入数据量/hive.exec.reducers.bytes.per.reducer)

5. Mapper相关参数

5.1 常调整参数(需熟悉并且自己试验一下, OK)

在 hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat下,切片大小由下面这些参数决定
计算公式 splitSize = Math.max(minSize, Math.min(maxSize, blockSize))

  • set dfs.block.size
    默认值134217728;
    非用户参数,默认 128M,HDFS文件块的大小
  • set mapred.min.split.size
    默认值 1;
    切片最小size
  • set mapred.max.split.size
    默认值 134217728;
    切片最大size
  • hive.hadoop.supports.splittable.combineinputformat
    默认值 false;
    输入的小文件是否合并为一个Mapper,这样能少起一些Mapper

在 hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat下,切片大小由下面这些参数决定
一般来说这四个参数的配置结果大小要满足如下关系: max.split.size >= min.split.size >= min.size.per.node >= min.size.per.rack

  • set mapred.max.split.size=256000000; --- 调大的时候会减少Mapper数
  • set mapred.min.split.size=10000000; --- 感觉没啥效果
  • set mapred.min.split.size.per.node=256000000; --每个节点处理的最小split。不能比 mapred.max.split.size,会报错
  • set mapred.min.split.size.per.rack=256000000; --每个机架处理的最小slit。不能比 mapred.max.split.size,会报错

试验效果:per.node 和 per.rack 进行设置后,Mapper 数减少,运行速度变快

6. 合并小文件

6.1 常调整参数(需熟悉并且自己试验一下, OK)
  • hive.hadoop.supports.splittable.combineinputformat
    默认值 false,Hive2.0.0 之后去除
    是否合并小文件
  • hive.merge.mapfiles
    默认值:true
    在只有map的作业结束时合并小文件
  • hive.merge.mapredfiles
    默认值:false
    在一个map/reduce作业结束后合并小文件
  • hive.merge.size.per.task
    默认值:256000000
    作业结束时合并文件的大小
  • hive.merge.smallfiles.avgsize
    默认值:16000000
    在作业输出文件小于该值时,起一个额外的map/reduce作业将小文件合并为大文件,小文件的基本阈值,设置大点可以减少小文件个数,需要mapfiles和mapredfiles为true

7. 聚合相关参数

7.1 常调整参数(需熟悉并且自己试验一下,OK)
  • hive.map.aggr
    Hive 0.2 起默认值 false
    在 group by 查询中是否进行 map端的预聚合
  • hive.groupby.mapaggr.checkinterval
    默认值:100000
    聚合操作时,聚合条数超过这个值的时候会分拆。
  • hive.map.aggr.hash.min.reduction
    默认值:0.5
    如果hash table的大小和输入行数的比例大于这个值,则hash聚合会被关掉
  • hive.groupby.skewindata
    默认值false
    数据是否有倾斜,优化 group by 查询
  • hive.optimize.groupby
    默认值:true
    对分桶表(分区)是否启用桶group by
7.2 了解即可
  • hive.multigroupby.singlereducer
    默认值:true
    多重插入时如果group by 的字段相同,只产生一个 MR job
  • hive.map.aggr.hash.force.flush.memory.threshold
    默认值:0.9
    map端聚合hash表所用的最大内存,当内存使用高于这个数的时候强制刷数据。
  • hive.map.aggr.hash.percentmemory
    默认值:0.5
    map端聚合操作的hash table占总内存的比

8. join相关参数

8.1 常调整参数(需熟悉并且自己试验一下,OK)
  • hive.smalltable.filesize / hive.mapjoin.smalltable.filesize
    默认值:25000000
    输入表文件的mapjoin阈值,如果输入文件的大小小于该值,则试图将普通join转化为mapjoin
  • hive.auto.convert.join
    默认值:hive 0.11.0以上版本为 true
    根据输入文件的大小决定是否将普通join转换为mapjoin的一种优化
  • hive.auto.convert.join.noconditionaltask
    默认值:true
    是否启用基于输入文件的大小,将普通连接转化为Map连接的优化机制。假设参与连接的表(或分区)有N个,如果打开这个 参数,并且有N-1个表(或分区)的大小总和小于hive.auto.convert.join.noconditionaltask.size参数指定的值,那么会直接将连接转为Map join。
  • hive.auto.convert.join.noconditionaltask.size
    默认值:10000000
    如果hive.auto.convert.join.noconditionaltask是关闭的,则本参数不起作用。否则,如果参与连接的N个表(或分区)中的N-1个 的总大小小于这个参数的值,则直接将连接转为Map join。默认值为10MB。
  • hive.optimize.skewjoin
    默认值:false
    是否开启数据倾斜的join优化
  • hive.skewjoin.key
    默认值:100000
    判断数据倾斜的阈值,如果在join中发现同样的key超过该值则认为是该key是倾斜的join key
  • hive.skewjoin.mapjoin.map.tasks
    默认值:10000
    在数据倾斜join时map join的map数控制
  • hive.skewjoin.mapjoin.min.split
    默认值:33554432
    数据倾斜join时map join的map任务的最小split大小,默认是33554432,该参数要结合上面的参数共同使用来进行细粒度的控制;
8.2 了解
  • hive.ppd.recognizetransivity
    默认值:true
    等值join条件下是否传递重复的谓词过滤器
  • hive.join.emit.interval
    默认值:1000
    在发出join结果之前对join最右操作缓存多少行
  • hive.join.cache.size
    默认值:25000
    在做表join时缓存在内存中的行数
  • hive.mapjoin.bucket.cache.size
    默认值:100
    mapjoin时内存cache的每个key要存储多少个value
  • hive.mapjoin.followby.map.aggr.hash.percentmemory
    默认值:0.3
    map端聚合时hash表的内存占比,该设置约束group by在map join后进行,否则使用hive.map.aggr.hash.percentmemory来确认内存占比
  • hive.mapjoin.localtask.max.memory.usage
    默认值:0.90
    mapjoin本地任务执行时hash表容纳key/value的最大量,超过这个值的话本地任务会自动退出
  • hive.mapjoin.followby.gby.localtask.max.memory.usage
    默认值:0.55
    类似上面,只不过是如果mapjoin后有一个group by的话,该配置控制类似这样的query的本地内存容量上限
  • hive.mapjoin.check.memory.rows
    默认值:100000
    在运算了多少行后执行内存使用量检查
  • hive.ignore.mapjoin.hint
    默认值:true
    是否忽略mapjoin标记
  • hive.smbjoin.cache.rows
    默认值: 10000
    每个sort-merge-bucket join表应该在内存中缓存多少个具有相同键值的行。
  • hive.mapjoin.optimized.hashtable
    默认值: true
    在 MapJoin的时候是否使用内存优化的hash table。只有在 tez 和 spark 引擎下起作用。因为内存优化的hash table不能被序列化
  • hive.mapjoin.optimized.hashtable.wbsize
    默认值: 10485760 (10 * 1024 * 1024)
    优化后的hashtable使用一连串缓存来存储数据,这是一个缓存的大小。
  • hive.hashtable.initialCapacity
    默认值: 100000
    如果没有统计数据,mapjoin hashtable的初始容量
  • hive.hashtable.loadfactor
    默认值: 0.75
    mapjoin过程中,使用hashtable保存key/value。这个参数是内存中 hashtable 的 load factor。

9. 压缩相关参数

9.1 须知道 (测试,OK)
  • hive.exec.compress.output
    默认值:false
    控制hive的查询结果输出是否进行压缩,压缩方式在hadoop的mapred.output.compress中配置
  • hive.exec.compress.intermediate
    默认值:false
    控制hive的查询中间结果是否进行压缩,默认不压缩false
  • io.compression.codecs
    设置了哪些压缩算法
    org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.DeflateCodec,org.apache.hadoop.io.compress.SnappyCodec,org.apache.hadoop.io.compress.Lz4Codec,com.hadoop.compression.lzo.LzopCodec
  • mapreduce.output.fileoutputformat.compress
    默认值:false
    mapreduce最终输出数据是否压缩
  • mapreduce.output.fileoutputformat.compress.codec
    默认值:org.apache.hadoop.io.compress.DefaultCodec
    mapreduce最终输出数据使用的压缩算法
  • mapreduce.output.fileoutputformat.compress.type
    默认值:RECORD
    mapreduce最终数据输出压缩方式。可选项 RECORD(对每一条数据进行压缩),BLOCK(对一组数据进行压缩),NONE
  • mapreduce.map.output.compress
    默认值:true
    map输出是否压缩
  • mapreduce.map.output.compress.codec
    默认值:org.apache.hadoop.io.compress.SnappyCodec
    Map输出阶段压缩算法

10. 其他参数

10.1 动态分区相关(OK)
  • hive.exec.dynamic.partition
    默认值:false
    是否允许动态分区
  • hive.exec.dynamic.partition.mode
    默认值:strict
    在strict模式下,动态分区的使用必须在一个静态分区确认的情况下,其他分区可以是动态。nonstrict模式下所有分区都可以是动态的
  • hive.exec.max.dynamic.partitions
    默认值:1000
    动态分区的上限
  • hive.exec.max.dynamic.partitions.pernode
    默认值:100
    每个mapper/reducer节点可以创建的最大动态分区数
  • hive.exec.max.created.files
    默认值:100000
    一个mapreduce作业能创建的HDFS文件最大数
10.1 须知道
  • hive.enforce.sorting
    默认值:hive2.x之前全为false,hive2.x移除这个参数,强制为true
    开启强制排序时,插数据到表中会进行强制排序
  • hive.enforce.bucketing
    默认值:hive2.x之前全为false,hive2.x移除这个参数,强制为true
    数据分桶是否被强制执行,默认false,如果开启,则写入table数据时会启动分桶
  • hive.exec.parallel
    默认值:false
    hive的执行job是否并行执行
  • hive.exec.parallel.thread.number
    默认值:8
    最多有多少个作业可以并行执行。
  • hive.mapred.mode
    默认值:hive 2.0 之前是 nonstrict,2.0之后为strict
    如果是strict模式,很多有风险的查询会被禁止运行,比如全表扫描、笛卡尔积等等
  • hive.debug.localtask
    默认值:false
    是否调试本地任务
  • hive.optimize.ppd
    默认值:true
    是否启用谓词下推
  • hive.optimize.ppd.storage
    默认值:true
    是否将为此下推推送到存储处理中。如果hive.optimize.ppd置为false,这个参数忽略
  • hive.execution.engine
    默认 mr,可选项 mr、tez、spark。
    设置为 mr 的时候,每执行一个sql都会单独开一个application,执行完就释放资源。
    设置为 spark 的时候,从开始第一个sql开始,只要没有退出hive客户端就不会另外开启一个 application,所有任务都只用一个application,申请资源后重复利用。
  • hive.mapred.reduce.tasks.speculative.execution
    默认值:true
    reduce任务推测执行是否开启
  • hive.limit.row.max.size
    默认值:100000
    在使用limit做数据的子集查询时保证的最小行数据量
  • hive.limit.optimize.limit.file
    默认值:10
    使用简单limit查询数据子集时,可抽样的最大文件数
  • hive.limit.optimize.enable
    默认值:false
    使用简单limit抽样数据时是否开启优化选项
  • hive.limit.optimize.fetch.max
    默认值:50000
    使用简单limit抽样数据允许的最大行数
  • hive.exec.mode.local.auto
    默认值:false
    是否由hive决定自动在local模式下运行
  • hive.exec.mode.local.auto.inputbytes.max
    默认值:134217728
    如果 hive.exec.mode.local.auto 为 true,当输入文件大小小于此阈值时可以自动在本地模式运行
  • hive.exec.mode.local.auto.input.files.max
    默认值:4
    map 任务数不超过这个数才能启动本地模式
  • hive.optimize.bucketingsorting
    默认值:true
  • hive.optimize.reducededuplication.min.reducer
    默认值: 4
  • hive.optimize.correlation
    默认值:false
  • hive.optimize.sort.dynamic.partition
    默认值:Hive 0.14.0 之后都置为false
  • hive.cbo.enable
    默认值:Hive 1.1.0 之后都置为true
  • hive.cbo.returnpath.hiveop
    默认值:false
  • hive.optimize.null.scan
    默认值:true
10.2 了解
  • hive.exec.scratchdir
    Hive 0.14.0 之后默认值为 /tmp/hive。
    这个目录用来存储不同 map/reduce 阶段的plans 和这些阶段的中间输出。
  • hive.scratch.dir.permission
    默认值:700
    在scratch根目录下开辟的特定用户目录的权限。
  • hive.ppd.remove.duplicatefilters
    默认值:true
    查询优化时,filters会被往下推。如果这个参数置为true,则下推的filters会被保留在operator tree中,原始filter被删除。如果false,则原始filter会被保留在operator tree的原始位置
  • hive.sample.seednumber
    默认值:0
    用来区分抽样的数字
  • hive.autogen.columnalias.prefix.label
    默认值:_c
    当在执行中自动产生列别名的前缀,当类似count这样的聚合函数起作用时,如果不明确指出count(a) as xxx的话,那么默认会从列的位置的数字开始算起添加,比如第一个count的结果会冠以列名_c0,接下来依次类推
  • hive.autogen.columnalias.prefix.includefuncname
    默认值:false
    在自动生成列别名时是否带函数的名字
  • hive.start.cleanup.scratchdir
    默认值:false
    当启动hive服务时是否清空hive的scratch目录
  • hive.output.file.extension
    默认值:(empty)
    输出文件扩展名
  • hive.insert.into.multilevel.dirs
    默认值:false
    是否插入到多级目录
  • hive.exec.script.maxerrsize
    默认值:100000
    一个map/reduce任务允许打印到标准错误里的最大字节数,为了防止脚本把分区日志填满
  • hive.exec.rowoffset
    默认值:false
    是否提供 row offset 虚拟列
  • hive.exec.pre.hooks
    默认值:空
    执行前置条件,一个用逗号分隔开的实现了org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext接口的java class列表,配置了该配置后,每个hive任务执行前都要执行这个执行前钩子
  • hive.exec.post.hooks
    默认值:空
    同上,执行后钩子
  • hive.exec.failure.hooks
    默认值:空
    同上,异常时钩子,在程序发生异常时执行
  • hive.heartbeat.interval
    默认值:1000
    发送心跳的时间间隔,在mapjoin和filter操作中使用
  • hive.udtf.auto.progress
    默认值: false
    UDTF执行时hive是否发送进度信息到TaskTracker
  • hive.exec.counters.pull.interval
    默认值:1000
    运行中job轮询JobTracker的时间间隔,设置小会影响JobTracker的load,设置大可能看不出运行任务的信息,要去平衡
  • hive.exec.drop.ignorenonexistent
    默认值:true
    这个参数设置为true的情况下,如果表xxx不存在,drop table xxx会报错
  • hive.exec.show.job.failure.debug.info
    默认值:true
    在作业失败时是否提供一个任务debug信息
  • hive.auto.progress.timeout
    默认值:0
    运行自动progressor的时间间隔,设置为0等同于forever
  • hive.table.parameters.default
    默认值:empty
    新建表的属性字段默认值
  • hive.variable.substitute
    默认值:true
    是否支持变量替换,如果开启的话,支持语法如{var}{system:var}和${env.var}
  • hive.error.on.empty.partition
    默认值:false
    在遇到结果为空的动态分区时是否报错
  • hive.exec.default.partition.name
    默认值:HIVE_DEFAULT_PARTITION
    当动态分区启用时,如果数据列里包含null或者空字符串的话,数据会被插入到这个分区
  • hive.fetch.output.serde
    默认值:org.apache.hadoop.hive.serde2.DelimitedJSONSerDe
    FetchTask序列化fetch输出时需要的SerDe
  • hive.optimize.reducededuplication
    默认值:true
    如果数据已经根据相同的key做好聚合,那么去除掉多余的map/reduce作业
  • hive.new.job.grouping.set.cardinality
    默认值 30,多维统计的时候所用到的参数 --- 了解一下
  • hive.optimize.skewjoin.compiletime
    默认值: false
  • hive.optimize.union.remove
    默认值: false
  • hive.mapred.supports.subdirectories
    默认值: false
  • hive.auto.convert.join.use.nonstaged
    默认值: false
  • hive.rework.mapredwork
    默认值:false
  • hive.scratchdir.lock
    默认值:false
  • hive.conf.validation
    默认值:true
  • hive.fetch.task.conversion
    默认值:Hive 0.14.0之后置为 more
  • hive.map.groupby.sorted
    默认值:hive2.0 之前false,hive2.0开始true
  • hive.fetch.task.aggr
    默认值:false
  • hive.execution.mode
    默认 container,可选项 container,llap。
    hive 2.0 以上版本出现
  • hive.mapred.local.mem
    默认值 0,Hive 2.0 版本开始出现
    local模式下,mapper和reducer的内存
  • hive.optimize.countdistinct
    默认值:true,Hive 3.0 版本出现
    是否将count distinct 分为2个阶段执行,第一阶段根据distinct key使用多个reducer,第二阶段使用一个reducer
  • hive.optimize.remove.sq_count_check
    默认值:false,Hive 3.0 版本出现
  • hive.merge.nway.joins
    默认值: true,hive2.2.0版本出现
    多join并且join条件相同,把join合并为一个join operator
  • hive.optimize.limittranspose
    默认值:false,hive2.0.0版本出现
  • hive.optimize.limittranspose.reductionpercentage
    默认值:1.0,hive2.0.0版本出现
  • hive.optimize.limittranspose.reductiontuples
    默认值:0,hive2.0.0版本出现
  • hive.optimize.filter.stats.reduction
    默认值:false,hive2.1.0版本出现
  • hive.cbo.cnf.maxnodes
    默认值:-1, hive2.1.1之后出现
  • hive.groupby.position.alias
    默认值:false, hive2.2.0之后出现
  • hive.orderby.position.alias
    默认值:true, hive2.2.0之后出现
  • hive.io.sarg.cache.max.weight.mb
    默认值:10, Hive 2.2.1 出现
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容

  • hive.ddl.output.format:hive的ddl语句的输出格式,默认是text,纯文本,还有json...
    博弈史密斯阅读 1,939评论 0 6
  • 小文件问题的影响1.从Hive的角度看,小文件会开很多map,一个map开一个JVM去执行,所以这些任务的初始化,...
    JayWolf阅读 1,630评论 0 0
  • 1.设置合理solt数 mapred.tasktracker.map.tasks.maximum每个tasktra...
    liuzx32阅读 2,244评论 0 0
  • 转载请在文章起始处注明出处,谢谢。 常用以下几条命令: 很多情况下limit需要执行整个查询语句,然后返回部分结果...
    xxlee阅读 236评论 0 0
  • Hive调优策略 Hive作为大数据领域常用的数据仓库组件,在设计和开发阶段需要注意效率。 影响Hive效率的不仅...
    奋斗的蛐蛐阅读 1,232评论 0 4