• Hive的概念与基本架构


    1. 什么是Hive

    1.1 hive简介

    Hive是一个用于解决海量结构化日志的数据统计工具;是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。

    hive的本质是将SQL转化为MapReduce程序

    在这里插入图片描述

    1. Hive处理的数据存储在HDFS上
    2. Hive分析数据底层的实现是MapReduce
    3. 执行程序运行在Yarn上

    hive优缺点

    优点

    1. 操作接口采用类SQL语法,避免了写MapReduce,提供快速开发的能力(简单、好上手)。
    2. Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive执行延迟比较高。同理,Hive常用于数据分析等实时性要求不高的场景。
    3. Hive支持用户自定义函数。

    缺点

    1. Hive的HQL表达能力有限,无法表达迭代算法;由于处理流程的限制,无法实现数据挖掘等效率更高的算法。
    2. Hive的效率较低,自动生成的MapReduce作业,不够智能;调优较为困难,粒度较粗。

    2. Hive的架构

    在这里插入图片描述

    1. 用户接口:Client;
      CLI(command-line interface)、JDBC/ODBC(数据库连接接口)、WEBUI(浏览器访问hive)
    2. 元数据:Metastore;
      元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在的目录等;
    3. HDFS;
      使用HDFS进行数据存储,使用MapReduce进行计算。
    4. 驱动器:Driver
      1. 解析器(SQLParser):将SQL字符串抽象转化为抽象语法树AST,对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误。
      2. 编译器(Physical Plan):将AST编译生成逻辑执行计划。
      3. 优化器(Query Optimizer):对逻辑执行计划进行优化。
      4. 执行器(Execution):把逻辑执行计划转化为可以执行的物理计划。对于Hive来说,就是MR/Spark程序。
  • 相关阅读:
    超详细实战Docker+Jenkins部署生产环境前后分离项目
    用HTML5实现动画
    Elasticsearch 原理与应用实践
    day77:注解、自定义注解、元注解
    【QT】设置焦点及光标位置
    手把手教你5种方法实现Java判断字符串是否为数字
    mobaxterm使用
    信息系统项目管理师必背核心考点(七十一)审计Agent类型
    盘点 GitHub 上的神级指南
    【数据结构】HashSet的底层数据结构
  • 原文地址:https://blog.csdn.net/Laoddaaa/article/details/126328970