Hive组织数据包含四种层次:DataBase --> Table --> Partition --> Bucket,对应在HDFS上都是文件夹形式。

数据库和数据仓库的区别:

1). 数据库内数据是动态变化的,而数据仓库内数据是静态的,是用来存储数据的(一次写入多次读取)

2). 数据库中的数据结构比较复杂,而数据仓库中数据结构简单

3). 数据库在操作数据时要求响应速度快,即实时的进行增删改查;而数据仓库响应时间比较长

Hive架构

1) 元数据:Metastore

  包括:数据库、表、分区、桶、列等名称,表的类型(是否是外部表)、表数据所在的目录等。

2) 用户接口:Client

  CLI(hive shell)、JDBC/ODBC(java访问hive)、WebUI(浏览器访问hive)

3) 底层操作:HDFS+MR

  使用HDFS进行存储,使用MR进行计算

4) 驱动器:Driver

  • 编译器Compile:首先检查SQL中表和列是否存在,再利用第三方工具Antlr检查SQL语法是否正确,将正确的SQL解析成抽象语法树(AST),最后将AST编译成逻辑执行计划Logical Plan
  • 优化器Optimizor:将逻辑执行计划先进行优化,再转化成可以运行的物理执行计划Physical Plan,即MR任务执行,并对其进行优化
  • 执行器Executor:执行优化后的MR任务

元数据与Hive的对应关系:

  • 【DBS】表对应【数据库】信息。
  • 【TBLS】表对应【数据表】信息。
  • 【COLUMNS_V2】表对应【字段】信息。
  • 【PARTITIONS】表对应【分区表】信息。
  • 【SDS】对应hdfs上【路径】信息:

Hive中【数据库】对应以 .db 结尾的文件夹,【表】对应文件夹,【分区字段】对应着子文件夹,【表中数据】对应数据文件。

hive保存元数据的三种方式

Hive将元数据存储在 RDBMS 中,有三种存储模式,其中1、2均属于本地存储,3属于远程存储。

1、Single User Mode:
  • 使用内置的derby数据库存储元数据信息,不可以并发调用hive。
  • 默认derby数据库问题:①换执行路径后,原来的表不存在了②只能单用户访问同一张表【单线程】。
  • 这是因为derby数据库特点:在那个目录下运行hive,就那个目录下产生一个derby文件和一个metastore_db目录。

2、Multi User Mode:

  通过网络连接到mysql数据库,是最经常使用的组合模式。
3、Remote Server Mode:

  • 在服务器端启动MetaStoreServer服务,客户端利用 Thrift 协议通过 MetaStoreServer 访问元数据库。
  • 客户端重要配置是hive.metastore.urls,用于通过thrift连接metastore,默认 metastore端口是9083。
  • 这种方式要单独启动metastore,命令为hive --service metastore。
  • 通过CLI执行show tables,成功则表示remote server mode配置成功。

Hive架构的更多相关文章

  1. 对于HIVE架构的理解

    1.Hive  能做什么,与 MapReduce 相比优势在哪里 关于hive这个工具,hive学习成本低,入手快,对于熟悉sql语法的人来说,操作简单,熟悉. 2.为什么说 Hive 是 Hadoo ...

  2. 037 对于HIVE架构的理解

    0.发展 在hive公布源代码之后 公司又公布了presto,这个比较快,是基于内存的. impala:3s处理1PB数据. 1.Hive  能做什么,与 MapReduce 相比优势在哪里 关于hi ...

  3. Hive之 hive架构

    Hive架构图 主要分为以下几个部分: 用户接口,包括 命令行CLI,Client,Web界面WUI,JDBC/ODBC接口等 中间件:包括thrift接口和JDBC/ODBC的服务端,用于整合Hiv ...

  4. hive学习(一)hive架构及hive3.1.1三种方式部署安装

    1.hive简介 logo 是一个身体像蜜蜂,头是大象的家伙,相当可爱. Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据.它架构在Hadoop之上,总归为大数据,并使得查询和分析方便 ...

  5. [Hive]Hive架构及常规操作

    Hive架构 如图中所示,Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Had ...

  6. Hive架构原理

    什么是Hive Hive是由Facebook开源用于解决海量结构化日志的数据统计:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射 成一张表,并提供类SQL查询功能,底层计算引 ...

  7. Hive架构及搭建方式

    目录 前言 hive的基础知识 基本架构 metastore 内嵌服务和数据库 内嵌服务 服务和数据库单独部署 hcatalog 客户端 客户端的本地模式 beeline beeline的自动模式 j ...

  8. Hive架构及Hive On Spark

    Hive的所有数据都存在HDFS中. (1)Table:每个表都对应在HDFS中的目录下,数据是经过序列化后存储在该目录中.同时Hive也支持表中的数据存储在其他类型的文件系统中,如NFS或本地文件系 ...

  9. Hive架构与工作原理

    组成及作用: 用户接口:ClientCLI(hive shell).JDBC/ODBC(java访问hive).WEBUI(浏览器访问hive) 元数据:Metastore 元数据包括:表名.表所属的 ...

随机推荐

  1. Oracle的存储过程编程

    是一个可以用编程的方式来操作SQL的集合. | |目录 1什么是存储过程? 2存储过程的优点? 3存储过程的缺点? 4存储过程的用途? 5存储过程注意事项? 6如何写存储过程? 7如何执行存储过程? ...

  2. JMeter场景运行(非GUI方式运行命令)

    JMeter场景运行方式可分为两种:  GUI方式运行,视窗运行,双击jmeter.bat启动运行即可以看到运行界面:  非GUI方式运行,在命令窗口中使用java –jar命名运行: 但不管是以 ...

  3. Tr A--hdu1575(矩阵快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1575 算是模板吧 #include <iostream> #include <std ...

  4. django组件之ContentType

    ContentTyep组件: 帮助我们关联所有数据库的表 帮助我们反向查询关联数据表中的所有策略信息 GenericForeignkey(帮助我们快速插入数据) GenericRelation(用于反 ...

  5. git查看某一个文件的修改历史

    git blame filename:显示整个文件的每一行的详细修改信息:包括SHA串,日期和作者. 其显示格式为: commit ID | 代码提交作者 | 提交时间 | 代码位于文件中的行数 | ...

  6. springboot设置返回值的编码

    /** * @param params * @return 志诚阿福 来访问 */ @PostMapping(value = "/fromAFu", produces = &quo ...

  7. django 密文 cookie 加密

    默认cookie是明文 # 加密cookie salt 通过这个字符串把cookie内容加密 obj.set_signed_cookie('username111','aaaa',salt=" ...

  8. PHP魔术方法和魔术常量介绍及使用

    魔术方法(Magic methods) PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __des ...

  9. Java compiler level does not match解决方法, java 修改编译用的jdk的方法

    从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclipse报Description  Resource Path Location Type Java compiler level d ...

  10. Selenium+Python学习之一

    刚入门selenium+Python,实验成功之后,记录一下过程. 首先是在知乎上面看到一个关于selenium+python的示例,于是自己便尝试搭建环境上手实验. 按照作者的代码敲一遍之后执行,竟 ...