欢迎投稿

今日深度:

Hive体系架构,

Hive体系架构,


Hive 是什么

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(关系型数据库)的区别

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

hive的优缺点

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

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

www.htsjk.Com true http://www.htsjk.com/hive/41216.html NewsArticle Hive体系架构, Hive 是什么 Hive 的体系架构 上图为Hive的体系架构图,主要由如下几部分组成 用户接口:Client Cli(Command-line shell),及shell 命令行,hive1的客户端,hive server2 提供了新的...
相关文章
    暂无相关文章
评论暂时关闭