hive.optimize.cp=true:列裁剪,取数只取
在读数据的时候,只读取查询中需要用到的列,而忽略其他列。例如,对于查询:SELECT a,b FROM T WHEREe < 10;其中,T 包含 5 个列 (a,b,c,d,e),列 c,d 将会被忽略,只会读取a, b, e 列
hive.optimize.prunner:分区裁剪
LIMIT
hive.limit.optimize.enable=true:优化LIMIT n语句
使用简单limit抽样数据时是否开启优化选项,默认是false,关于limit的优化问题,在hive programming书中解释的是这个feature有drawback,对于抽样的不确定性给出了风险提示;
hive.limit.row.max.size=1000000:
hive.limit.optimize.limit.file=10:最大文件数
hive.limit.optimize.fetch.max:使用简单limit抽样数据允许的最大行数,默认50000,查询query受限,insert不受影响;
1. 本地模式(小任务): 在单台机器上处理所有的任务
需要满足以下条件:
1.job的输入数据大小必须小于参数:hive.exec.mode.local.auto.inputbytes.max(默认128MB)
2.job的map数必须小于参数:hive.exec.mode.local.auto.tasks.max(默认4)
3.job的reduce数必须为0或者1
hive.exec.mode.local.auto.inputbytes.max=134217728
hive.exec.mode.local.auto.tasks.max=4
hive.exec.mode.local.auto=true
hive.mapred.local.mem:本地模式启动的JVM内存大小
2. 并发执行: 参数控制在同一个sql中的不同的job是否可以同时运行,默认为false.
http://blog.youkuaiyun.com/jiedushi/article/details/7965604
hive.exec.parallel=true ,默认为false
hive.exec.parallel.thread.number=8 控制对于同一个sql来说同时可以运行的job的最大值,该参数默认为8.此时最大可以同时运行8个job.
3.Strict Mode:nonstrict,strict,默认是nonstrict
hive.mapred.mode=true,严格模式不允许执行以下查询:
分区表上没有指定了分区
没有limit限制的order by语句
笛卡尔积:JOIN时没有ON语句
4.动态分区:
在读数据的时候,只读取查询中需要用到的列,而忽略其他列。例如,对于查询:SELECT a,b FROM T WHEREe < 10;其中,T 包含 5 个列 (a,b,c,d,e),列 c,d 将会被忽略,只会读取a, b, e 列
hive.optimize.prunner:分区裁剪
LIMIT
hive.limit.optimize.enable=true:优化LIMIT n语句
使用简单limit抽样数据时是否开启优化选项,默认是false,关于limit的优化问题,在hive programming书中解释的是这个feature有drawback,对于抽样的不确定性给出了风险提示;
hive.limit.row.max.size=1000000:
hive.limit.optimize.limit.file=10:最大文件数
hive.limit.optimize.fetch.max:使用简单limit抽样数据允许的最大行数,默认50000,查询query受限,insert不受影响;
1. 本地模式(小任务): 在单台机器上处理所有的任务
需要满足以下条件:
1.job的输入数据大小必须小于参数:hive.exec.mode.local.auto.inputbytes.max(默认128MB)
2.job的map数必须小于参数:hive.exec.mode.local.auto.tasks.max(默认4)
3.job的reduce数必须为0或者1
hive.exec.mode.local.auto.inputbytes.max=134217728
hive.exec.mode.local.auto.tasks.max=4
hive.exec.mode.local.auto=true
hive.mapred.local.mem:本地模式启动的JVM内存大小
2. 并发执行: 参数控制在同一个sql中的不同的job是否可以同时运行,默认为false.
http://blog.youkuaiyun.com/jiedushi/article/details/7965604
hive.exec.parallel=true ,默认为false
hive.exec.parallel.thread.number=8 控制对于同一个sql来说同时可以运行的job的最大值,该参数默认为8.此时最大可以同时运行8个job.
3.Strict Mode:nonstrict,strict,默认是nonstrict
hive.mapred.mode=true,严格模式不允许执行以下查询:
分区表上没有指定了分区
没有limit限制的order by语句
笛卡尔积:JOIN时没有ON语句
4.动态分区: