美文网首页
2020-04-13

2020-04-13

作者: 叛逆与成功 | 来源:发表于2020-04-13 00:54 被阅读0次

    大数据之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

          本文链接:https://www.haomeiwen.com/subject/byqwmhtx.html