Hive体系架构

2 篇文章 0 订阅

Hive 是什么

  1. 首先是一个构建在Hadoop之上的数据仓库(它并不是一个真实的数据库)
  2. 由Facebook开源,最初用于解决海量结构化的日志数据统计问题
  3. Hive定义了一种类似于SQL查询语言:HQL(非常类似于MySQL中的SQL语句,同时做了扩展)
  4. 通常用于离线数据处理(采用MapReduce)
  5. 可以认为是一个HQL=>MapReduce的语言翻译器
  6. 底层支持多种不同的执行引擎(默认是MapReduce)
  7. 支持不同的压缩格式、存储格式以及自定义函数
  8. Hive中的数据库及表就是HDFS中的目录/文件夹,数据是文件,元数据信息可以存储在任意的一个关系型数据库中(比如:MySQL、SqlServer、Oracle等,默认是Derby),数据存储在HDFS中

Hive 的体系架构

这里写图片描述
上图为Hive的体系架构图,主要由如下几部分组成
用户接口:Client
Cli(Command-line shell),及shell 命令行,hive1的客户端,hive server2 提供了新的命令beeline
JDBC/ODBC,通过Java来访问hive,与传统数据库JDBC的方式类型,比如我们使用Java通过JDBC访问操作MySQL
WebUI,浏览器中访问hive
元数据:metastore
Hive 将元数据存储在数据库中(metastore),数据库可以为关系型数据库中的任意一种,元数据包括:表名、表所属数据库、表的拥有者、列/分区字段、表的类型、表数据所在目录。
元数据存储在MySQL上
驱动器:driver
包含:解析器、编译器、优化器、执行器
完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成,生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行
Hadoop
使用hdfs进行数据存储,运行在yarn上,使用mapreduce进行计算

Hive 部署架构

在测试环境中

这里写图片描述

Hive 是构建在Hadoop之上的一个数据仓库,实际工作中,我们的Hadoop是肯定是集群,但Hive我们只需要装在一台服务上即可,元数据默认存放在Derby中,Derby是一个单用户,使用起来不是很方便,建议我们自己装一个mysql数据库,专门用于存放hive的元数据信息。

在生产环境中

这里写图片描述
生产环境中与测试环境不相同的之处就是mysql用的是主备,当一台mysql服务挂掉了,通过某种机制它会自动切换到另一台,其实这样做的好处就是为了容错,保证高可用,防止hive的元数据丢失

Hive与RDBM(关系型数据库)的区别

HiveRDBM
面向SQL面向SQL
关注于分析统计,延时性比较高更专注于实时,延时性比较短的分析
支持事务(高版本)支持事务
支持分区,随机insert/update(高版本)支持随机insert/update
基于MapReduce的分布式处理引擎支持分布式
成百上千个节点很少超过20个
构建在廉价的机器上通常情况是构建专用的机器上
能够处理P级别的数据到T…差不多了把…

hive的优缺点

优点:
容易上手、易用,比用MapReduce编程简单很多
数据离线处理,比如日志分析,海量数据结构化分析
底层基于hadoop,易于扩展,支持自定义函数UDF

缺点:
Hive执行延迟比较高,不适合实时查询
Hive优势在于处理大数据集,对于小数据集没有优势
因为Hive启动是需要时间的,提交MapReduce作业.如果数据量比较小.说不定启动时间比计算时间还要长.
不单单是启动,最后还要销毁.这就占用了非常多的时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值