Hive
2018-12-04 20:01:43
6
0
0
同一条sql,在不同时段执行时生成的mapper数量可能差异差大。为弄明白个中的原因,跟了下源码,大致计算逻辑如下:
mapper数量是和OrcInputFormat中产生的split相关,OrcInputFormat在计算split时会分为两个大的步骤:
1. 计算物理split数量
2. 计算逻辑split数量(对物理split进行分组)
### orc文件的物理结构图
![](/api
报这个错有点坑, hive并没把真实的异常错误信息输出,返回一个笼统的错`Previous writer likely failed to write hdfs://xx, Failing because I am unlikely to write too`。源码如下:
```
public LocalResource localizeResource(
Path src, Pat
Hive
2018-08-31 19:05:04
0
0
0
由于在2.3.2版本上`hive.async.log.enabled=true`,用于提高hive服务的性能,但造成了beeline上执行sql看不到进度,给开发造成了不变。
要想让beeline上能看到执行进度,可将`hive.async.log.enabled=false`,注意,是要在hiveserver2启动前设置该参数
参考自:[Apache Hive Beeline : Prog
Hive
2018-08-31 19:03:00
1
0
0
## 通用(hive-site.xml)
### JOIN
* `hive.auto.convert.join.noconditionaltask = true`
控制是否打开map-join
* `hive.auto.convert.join.noconditionaltask.size=10000000`
多大的表可支持map-join,默认为10M.建议是hive.tez.contain
```
package cn.cqc3073.hive.udaf;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException;
import org.apache.hadoop.hive.ql.metadata.HiveExc
/**
* 计算指定的两个指定的日期之前相差几个自然周
* create function udf.weekdiff as 'cn.cqc3073.hive.udf.WeekDiff' using jar 'hdfs:///user/hive/udf/hive-jar-with-dependencies.jar';
*
* by cqc
*/
@Description(
by 陈奇川
## 背景
在跑events2去重时`insert overwrite table events2_clean partition (ds, appid) select xwho, xwhat, min(xwhen), xwhere, xcontext['deviceid'], udf.oneof(xcontext), ds, appid from events2 where ds
package cn.cqc3073.hive.udf;
import com.nubia.hive.NewDateUtil;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
import java.time.LocalDate;
import jav
当需要合并多路的数据到同一张表中时,如果用到了`union all`语句,那么会提高sql的执行复杂度。可以通过增加冗余分区来简化sql复杂度,提高并行度
跑union all 语句时会多出一层目录,是tez在当前环境下的一个坑,导致其他的计算框架取不到数据