• Hive-基本概念


    目录

    什么是Hive

    为什么使用Hive

    Hive的工作过程

    Hive的架构和组件


    什么是Hive

    • Hive是建立在Hadoop之上的开源数据仓库,将存储在Hadoop文件中的结构化、半结构化的数据文件映射为一张数据表,基于表提供类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集
    • Hive的核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop集群执行,并YARN进行资源管理。

    为什么使用Hive

    Q:Hive的底层存数据用HDFS存,计算用MapReduce来计算 ,可以发现Hive是基于Hadoop来使用的,那么为什么不干脆使用Hadoop呢?

    A:Hive为我们提供了可以编写SQL的功能,而不是编写程序,SQL的学习成本低,使用简单,Hive将对应的SQL转换成为MapReduce程序完成对数据的分析,有了Hive的加持,我们可以在Hadoop上写SQL来进行数据的搜索。

    Hive的工作过程

    案例:在HDFS文件系统上有一个user.txt文件,现在需求是查询来自上海且年龄大于25的用户数量

    Step1:用户编写查询该文件数据的SQL语句

    Step2:Hive将SQL进行语法解析,检查是否存在语法错误

    Step3:元数据之前已经在数据库中存储好了,即文件和数据表已经形成映射,当写SQL查询时,去数据库中找到对应的元数据信息,Hive将SQLMapReduce程序,将元数据传入该程序,根据元数据信息找到具体的HDFS文件进行查找。

    Step4:将执行计划转换成MapReduce程序来执行,将执行结果封装返回给用户

    提到的几个概念

    元数据-MetaData

    也就是HDFS中的文件和数据库中表的映射关系,元数据记录着所存储数据的一些属性,比如表对应着哪个文件,表的列对应文件哪一个字段,文件字段之间的分隔符是什么。

    元数据存在mysql或Hive自带的derby中,分析的那些文件数据在HDFS上。

    元数据服务-MetaStore

    元数据服务用来管理元数据,对外暴露服务地址,让各种客户通过连接metastore,由metastore再去连接MySQL数据库来存取数据,这些客户可以同时连接,且不需要知道MySQL数据库的用户名和密码,在某种程度上也保证了元数据的安全。

    Hive的架构和组件

    • 用户接口

    CLI(command line interface)是shell命令行,JDBC/ODBC也就是通过编译程序来访问,Hive Web interface 是通过网页来访问

    • Hive Driver驱动程序

    完成HQL查询语句从语法分析,编译,优化及查询计划的生成,生成的查询计划存储在HDFS中,并在随后由执行引擎(如MapReduce,Spark,Tez)调用执行

  • 相关阅读:
    【电路笔记】-串联RLC电路分析
    Linux —— 网络基础(一)
    Nginx被动健康检测配置
    前端学习路线参考
    面试复习题——底层
    【jQuery】jQuery操作之如何查找元素_02
    机器学习/算法工程师面试题目与答案-数学基础部分
    阿里企业邮箱域名解析MX记录表
    LeetCode 面试题 05.01. 插入
    MFC Windows 程序设计[126]之控制台适配器
  • 原文地址:https://blog.csdn.net/weixin_52972575/article/details/125983094