• 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)调用执行

  • 相关阅读:
    【C++】vector的使用和模拟实现(超级详解!!!!)
    KnowStreaming贡献流程
    算法通关村-----海量数据的处理方法
    “Boxing-StraightFist“ app Tech Support(URL)
    java的ArrayList && LinkedList的操作
    带宽储备能力超100 Tbps,华为云CDN保障平台从容应对流量高峰
    PY32F003F18之通用定时器MspInit函数
    [单片机框架][bsp层][N32G4FR][bsp_spi] spi配置和使用
    gitlab CI/CD自动化部署vue项目到gitlab page 静态页面
    C++PrimerPlus 第六章 分支语句和逻辑运算符(复习题含答案)
  • 原文地址:https://blog.csdn.net/weixin_52972575/article/details/125983094