2020-04-13

大数据之Hive

一.Hive基本概念

1.什么是Hive
  • Hive是Facebook开源用于处理 海量 结构化 日志的数据统计
  • Hive是基于Hadoop的一个数据仓库工具,将结构化数据文件映射成一张表,并提供类SQL语句
  • 本质是HQL转换为MapReduce程序
    • 【1】数据存储在HDFS
    • 【2】分析数据底层的默认实现是MapReduce
    • 【3】执行程序在Yarn上
  • Hive区别于大数据中其他计算框架最大的不同是,它是单机的,其他的是分布式的,因为它的存储,运算都是基于Hadoop,相当于一个客户端
2.Hive优缺点
  • 优点
    • 【1】实现采用类SQL语句,开发速度快,学习成本低
    • 【2】Hive用于 大数据量 离线 分析,适合实时性要求不高的场合
    • 【3】支持用户自定义函数
  • 缺点
    • 【1】HQL表达能力有限(迭代运算无法表达;数据挖掘方面不擅长)
    • 【2】执行效率低(基于MapReduce,执行延迟高;调优粒度粗)
3.Hive架构原理
Hive架构原理.jpg
  • 用户接口:Client CLI(hive shell)、JDBC/ODBC(java 访问 hive)、WEBUI(浏览器访问 hive)
  • 元数据(Meta store):数据表信息及数据实际存储信息(默认存储在自带的 derby 数据库中,推荐使用 MySQL 存储 Metastore )
  • 驱动器:Driver
    • 【1】SQL解析器:将 SQL 字符串转换成抽象语法树 AST,这一步一般都用第三方工具库完成,比如 antlr;对 AST 进行语法分析,比如表是否存在、字段是否存在、SQL 语义是否有误
    • 【2】编译器:将 AST 编译生成逻辑执行计划
    • 【3】优化器:对逻辑执行计划进行优化
    • 【4】执行器:把逻辑执行计划转换成可以运行的物理计划(如 MR/Spark)
4.Hive与数据库比较
  • 查询语言(HQL SQL)
  • 数据存储位置(Hive存储在HDFS上 ,数据库一般在块设备或本地系统)
  • 数据更新(Hive不适合数据修改,数据库更注重与用户的交互)
  • 可扩展性(Hive可扩展性是和 Hadoop 的可扩展性是一致的 ,数据库扩展能力有限)
  • 执行延迟(Hive适合大数据量的分析,执行延迟高,对于数据量较少的场景,数据库的优势更高)

二.Hive的安装和环境准备

你可能感兴趣的:(2020-04-13)