07-Hive基础

1.Hive简介

1.1Hive的特点

  • Hive:由 Facebook 开源用于解决海量结构化日志的数据统计。
  • Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能。
    本质是:将 HQL 转化成 MapReduce 程序
  • Hive 处理的数据存储在 HDFS
  • Hive 分析数据底层的默认实现是 MapReduce
  • 执行程序运行在 Yarn 上
    在这里插入图片描述

1.2HIve的优缺点

  • 优点:
    类似SQL语句,减少了学习成本
    适合处理大数据,常用于实时性不高的数据分析
    支持用户自定义函数,用户根据需求定义函数
  • 缺点:
    迭代式算法无法表达
    数据挖掘方面不擅长
    调优困难,粒度较粗

2.Hive内部原理

2.1Hive的架构

在这里插入图片描述

2.1.1Client(用户接口)

  • CLI(hive shell)、JDBC/ODBC(java 访问 hive)、WEBUI(浏览器访问 hive)

2.1.2Metastore(元数据)

  • 元数据包括:表名、表所属的数据库(默认是 default)、表的拥有者、列/分区字段、表
    的类型(是否是外部表)、表的数据所在目录等;

2.1.3Driver(驱动器)

  • 解析器(SQL Parser):将 SQL 字符串转换成抽象语法树 AST,这一步一般都用第三方工具库完成,比如 antlr;对 AST 进行语法分析,比如表是否存在、字段是否存在、SQL 语义是否有误。
  • 编译器(Physical Plan):将 AST 编译生成逻辑执行计划。
  • 优化器(Query Optimizer):对逻辑执行计划进行优化。
  • 执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于 Hive 来
    说,就是 MR/Spark。

2.2Hive运行机制

3.HiveAPI操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章