• Hive架构和工作原理


    Hive架构和工作原理

    from:https://cloud.tencent.com/developer/news/362488

    一、Hive 架构

    下面是Hive的架构图。

    Hive的体系结构可以分为以下几部分:

    1、用户接口主要有三个:CLI,Client 和 WUI。其中最常用的是CLI,Cli启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至Hive Server。在启动 Client模式的时候,需要指出Hive Server所在节点,并且在该节点启动Hive Server。 WUI是通过浏览器访问Hive。

    2、Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。

    3、解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。

    4、Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成(包含*的查询,比如select * from tbl不会生成MapRedcue任务)。

    二、元数据存储

    Hive将元数据存储在RDBMS中,有三种模式可以连接到数据库:

    1、元数据库内嵌模式:此模式连接到一个In-memory 的数据库Derby,一般用于Unit Test。

    2、元数据库mysql模式:通过网络连接到一个数据库中,是最经常使用到的模式。

    3、MetaStoreServe访问元数据库模式:用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库。

    对于数据存储,Hive没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织Hive中的表,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据。Hive中所有的数据都存储在HDFS中,存储结构主要包括数据库、文件、表和视图。Hive中包含以下数据模型:Table内部表,External Table外部表,Partition分区,Bucket桶。Hive默认可以直接加载文本文件,还支持sequence file 、RCFile。

    4、三种模式汇总:

    三、Hive 工作原理

    Hive 工作原理如下图所示。

    Hive构建在Hadoop之上

    1、HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的

    2、所有的数据都是存储在Hadoop中

    3、查询计划被转化为MapReduce任务,在Hadoop中执行(有些查询没有MR任务,如:select * from table)

    4、Hadoop和Hive都是用UTF-8编码的

    Hive编译器的组成:

    Hive编译流程如下

    四、Hive安装和部署

    1、解压缩 hive 安装包

    2、安装并启动mysql

    3、修改 mysql 密码

    4、给root用户访问授权

    5、建立链接,该命令在 hive 安装目录的 lib 目录下建立软链接,指向/usr/share/java/mysql-connector-java.jar

    6、配置环境变量

    生效环境变量

    7、修改hadoop的配置文件core-site.xml

    增加如下:

    8、修改hive的配置文件hive-site.xml

    增加如下:

    注释:

    hive.metastore.uris 中的“hadoop“含义为 metastore 所在的机器(启动metastore 的方法见下一节)

    javax.jdo.option.ConnectionURL 中的“hadoop”为 mysql 安装机器的hostname

    javax.jdo.option.ConnectionUserName 和javax.jdo.option.ConnectionPassword

    分别为 mysql 的访问用户和密码

    fs.defaultFS 为 HDFS 的 namenode 启动的机器地址

    beeline.hs2.connection.user 和 beeline.hs2.connection.password 是 beeline 方式

    访问的用户名和密码,可任意指定,但在 beeline 访问时要写入你指定的这个

    (具体参考最后一部分)

    9、启动hive metastore

    10、启动 hiveserver2

    11、hive 常见两种访问方式

    hive

    beeline

    !connect jdbc:hive2://bigdata:10000/default bigdata bigdata

  • 相关阅读:
    框架应用; Bootstrap4 框架
    框架做抖动、框架做日期
    图片轮播
    锤子手机的部分页面
    js练习题:说明事件、经过或移出时出现按钮等、网页换肤、显示隐藏、下拉、横向导航点击(移上)下拉、选项卡、进度条
    js常用对象:点击、双击、onload事件、鼠标相关、onblur事件和onfocus事件等;通过循环给多个元素添加事件、通过addEventListener() 方法 监听事件函数
    js数组、对象、函数基础知识点及数组类习题练习
    判断某个对象是不是数组
    关于使用绝对定位使元素垂直居中的问题
    mousewheel事件的兼容方法
  • 原文地址:https://www.cnblogs.com/bonelee/p/12441814.html
Copyright © 2020-2023  润新知