第一章_Hive 基本概念

源码
第一章 Hive 基本概念 1. 什么是Hive 1. 由 Facebook 开源 用于解决 海量 结构化 日志的 数据统计 工具 2. 基于 Hadoop的 数据仓库工具 , 可以将 结构化的数据文件(HDFS) 映射成一张表 并提供 类sql的 操作 2. Hive 的本质 1. 将 Hql 转化成 MapReduce 程序 1. 说明 2. 示意图 2. Hive 处理的数据 在HDFS 上 3. Hive 分析数据底层 实现是 MapReduce 程序 4. 执行程序运行在 Yarn 上 3. Hive 的优缺点 1. 优点 2. 缺点 1. 使用方便 操作接口 采用类sql, 提供了快速开发的能力 避免了些MR程序,减少了开发人员的学习成本 2. 处理数据量大,但延迟较高 3. 支持用户 自定义函数, 可根据需求 来实现函数功能 1. sql表达能力有限 迭代式算法 无法表达 数据挖掘方面 不擅长,mr程序处理 的限制 2. Hive 的效率比较低 Hive 自动生成的 MR作业,通常不够智能 Hive 调优比较困难,粒度较粗 4. Hive 架构原理 1. 架构示意图 2. 组件说明 1. 用户接口 : Client 2. 元数据 : Metastore 3. 驱动器 : Driver 4. HDFS 1. CLI command-line interface 2. JDBC/ODBC 访问 hive 3. WebUi 浏览器访问hive 1. 元数据内容 1. 表名 2. 表所属的数据库 3. 表的owner 4. 列/分区字段 5. 表的类型(是否外部表) 6. 表数据所在的目录等 2. 存储数据库 1. 默认 derby, 推荐 使用mysql 1. 解析器-Sql Parser 2. 编译器-Physical Plan 3. 优化器-Query Optimizer 4. 执行器-Execution 将 Sql字符串 转换成 抽象语法树AST 这一步用第三方工具完成 : 比如 antlr 对 AST 进行语法分析 表名、字段名 是否存在 Sql 语义是否有误 将 AST 编译生成 逻辑执行计划 将 生成的 逻辑执行计划 进行优化 将 优化后的 逻辑执行计划 转换成 可运行的物理计划 对 Hive来说就是 MR 或者 Spark 分布式文件系统 3. Hive 运行机制 1.示意图 2. 说明 1. Hive 通过给用户 提供一系列的交换接口, 接收到用户的指令(sql) 2. 再使用 Driver 结合元数据(MateStore) ,将sql 翻译成 Mr,并提交到 Yarn 上去 3. 最后 将执行结果输出到 用户交换接口中 5. Hive 和数据库比较 1. 说明 1. Hive 和数据库 除了拥有类似的查询语言,再无类似之处 2. 数据更新 1. Hive为数据仓库而设计, 数据仓库 是 读多写少(一次写入多次读取) 2. Hive 不建议对数据改写,所有数据都是在加载是确定好的 3. 执行延迟 1. Hive 查询数据时,由于 没有索引 ,需要扫描整个表,所有延迟比较高 2. Mr程序本身就有 高延迟特性 4. 数据规模 1. Hive 利用Mr的并行计算,可以支持大规模数据计算
posted @ 2022-02-14 16:42  学而不思则罔!  阅读(73)  评论(0)    收藏  举报