HIVE基础 - zhongjiajie/zhongjiajie.github.com GitHub Wiki
- 内部表和外部表最本质的区别:HIVE拥有托管表的数据
- SerDe, not the DDL, defines the table schema. Some SerDe implementations use the DDL for configuration, but the SerDe can also override that.
-
hive.exec.dynamic.partition
: 是否开启动态分区功能,默认false关闭 -
hive.exec.dynamic.partition.mode
: 动态分区的模式,默认strict,表示必须指定至少一个分区为静态分区,nonstrict模式表示允许所有的分区字段都可以使用动态分区 -
hive.exec.max.dynamic.partitions.pernode
: 每个执行MR的节点上,最大可以创建多少个动态分区,默认100 -
hive.exec.max.dynamic.partitions
: MR的节点上,最大一共可以创建多少个动态分区,默认1000 -
hive.exec.max.created.files
: MR Job中,最大可以创建多少个HDFS文件,默认100000
-
mapreduce.map.memory.mbs
: map任务的物理内存分配值,常见设置为1GB,2GB,4GB等 -
mapreduce.input.fileinputformat.split.maxsize
,mapreduce.input.fileinputformat.split.minsize
: 这个两个参数联合起来用,主要是为了方便控制mapreduce的map数量。比如我设置为1073741824,就是为了让每个map处理1GB的文件
- Hive queries generating mismanaged staging directories
- hive overwrite directory move process as distcp
- "INSERT OVERWRITE" query is very slow because it creates one "distcp" per file to copy data from staging directory to target directory: 相关的jira ticket
- hive产生很多.staging_hive文件
<property>
<name>hive.exec.stagingdir</name>
<!-- 或者使用 <value>/tmp/staging/.hive-staging</value> -->
<value>${hive.exec.scratchdir}/.hive-staging</value>
</property>
- 如果是spark on yarn,调用了hive的接口,可以将上面的配置写入
spark-hive-site-override
- 如果私用的是beeline/hive-cli,可以使用
beeline --hiveconf hive.exec.stagingdir=/tmp/{myusername}/path/to
完成设置
Apache Hive integration: 有关于如何集成hive