HIVE基础 - zhongjiajie/zhongjiajie.github.com GitHub Wiki

HIVE基础

关键要点

  • 内部表和外部表最本质的区别:HIVE拥有托管表的数据
  • SerDe, not the DDL, defines the table schema. Some SerDe implementations use the DDL for configuration, but the SerDe can also override that.

相关配置

exec配置

  • 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

  • mapreduce.map.memory.mbs: map任务的物理内存分配值,常见设置为1GB,2GB,4GB等
  • mapreduce.input.fileinputformat.split.maxsize,mapreduce.input.fileinputformat.split.minsize: 这个两个参数联合起来用,主要是为了方便控制mapreduce的map数量。比如我设置为1073741824,就是为了让每个map处理1GB的文件

FAQ

hive中没有移除运行时的stage文件夹

<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完成设置

hive集成elasticsearch

Apache Hive integration: 有关于如何集成hive


⚠️ **GitHub.com Fallback** ⚠️