大数据,机器学习,人工智能大数据 爬虫Python AI Sql玩转大数据

大数据知识 | hive初识

2020-03-01  本文已影响0人  彬彬有李学数据

hive简介

hive架构

hive是什么

官网这样说:https://hive.apache.org/

hive .png

hive是用来解决海量结构化的日志数据统计问题的,一般是作为建立在Hadoop上的OLAP数据仓库。它是一个客户端,主要是将SQL转化成MR任务,特别适合离线处理。它有着类似于SQL的语法,上手难度小,最特别的是它有着统一的元数据管理便于其他组件也可以使用。

所以hiv产生的很大的原因就是:非java编程者对hdfs的数据做mapreduce操作!!!

hive简介

Hive : 数据仓库。(各种数据源的数据进行统一规整)
Hive:解释器,编译器,优化器等。
Hive 运行时,元数据存储在关系型数据库里面。(HDFS当中所有的数据都是文本型数据,没有字段的映射关系)

c


hive架构.png

(1)用户接口主要有三个:CLI,Client 和 WUI。

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

本地模式是Metastore的默认模式(懒人专用模式)。该模式下,单Hive会话(一个Hive 服务JVM)以组件方式调用Metastore和Driver。我们可以采用MySQL作为Metastore的数据库。

用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库
远程模式将Metastore分离出来,成为一个独立的Hive服务(Metastore服务还可以部署多个)。这样的模式可以将数据库层完全置于防火墙后,客户就不再需要用户名和密码登录数据库,避免了认证信息的泄漏。

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

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

(5)Driver:包含编译器,优化器和执行器
接收客户端请求-->编译,解释,执行-->提交给yarn执行
Driver 每一个Hive服务都需要调用Driver来完成HQL语句的翻译和执行。通俗地说,Driver就是HQL编译器,它解析和优化HQL语句,将其转换成一个Hive Job(可以是MapReduce,也可以是Spark等其他任务)并提交给Hadoop集群。

(6)Operator


image.png

Hive的架构

Operator

上一篇下一篇

猜你喜欢

热点阅读