Hive知识点总结

hive是构建在hadoop上的数据仓库框架
hive中存的是表,是和hdfs的映射关系,hive是逻辑上的数据仓库。

hive与mysql

metastore是hive元数据的集中存放地
metastore默认使用内嵌的derby数据库作为存储引擎
Derby引擎的缺点:一次只能打开一个会话
使用Mysql作为外置存储引擎,多用户同时访问

hive的元数据

  • 除了真实存储的数据外都是元数据。
  • 元数据包块表的名字,表的列和分区及其属性,表的数据所在目录。

hive与传统数据库

  1. 传统数据库是数据写入数据库时检查数据(写时模式),查询效率高
    hive在查询时对数据检查(读时模式),数据加载迅速。
  2. hive的插入、更新、删除操作引起的变化,保存在较小的增量文件中,有metastore在后台运行的mr定期将其合并到基表中。

hive中的表

  1. 托管表和外部表
    托管表(内部表)。(默认):存储时:存在hdfs目录。删除表时,数据也删除。
    外部表:存储时:不存在hdfs目录。删除表时,只删除表结构,数据不删。
  2. 分区表和桶表
    • 分区表是指按照数据表的某列或某些列分为多个区,区从形式上可以理解为文件夹。
    • 分桶是相对分区进行更细粒度的划分。分桶将整个数据内容安装某列属性值得hash值进行区分。
      分桶数和reduce任务数一致

hive动态分区

动态分区模式:
strict-严格模式,插入时至少指定一个静态分区,
nonstrict-非严格模式,可以不指定静态分区。

hive事务处理

在>0.13.0之后支持行级事务。
1.所有事务自动提交。
2.只支持orc格式。
3.使用bucket表。
4.配置hive参数,使其支持事务。

hive调优

  1. 使用explain查看查询计划
  2. 设置limit优化,避免全部查询
  3. 本地模式(如果大于参数中设置的值,仍然用集群模式)
  4. 并行执行
  5. 严格模式
  6. 设置MR的数量
  7. JVM重用,适用大量小文件
  8. 设置开启mapjoin

UDF(用户自定义函数)

  1. udf
    条件:继承udf类
    重写evaluate()方法
  2. udaf(类似聚合函数)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值