了解Hive基础

hive的背景

Hive是基于Hadoop的一个数据仓库工具,它提供了以SQL语言为基础的数据处理和存储能力。Hive的目的是为了简化大数据的处理和分析过程,将结构化的数据转换成Hadoop上的分布式存储。Hive的底层技术是基于Hadoop的HDFS和MapReduce,通过这些技术,Hive能够实现数据查询、统计和分析等功能。

hive的特点

  1. 数据存储:Hive的数据存储是基于Hadoop的HDFS,所有的数据都会存储在HDFS中。
  2. 数据模型:Hive的数据模型主要分为表和分区。表是模仿关系型数据库的概念,而分区则是为了解决大数据量的问题,将数据按照不同的规则划分成多个区域。
  3. SQL语言:Hive支持类似于SQL的语言,称为HQL,通过HQL可以方便地进行数据查询、统计和分析。
  4. 数据映射:Hive可以将数据映射成不同的格式,比如文本、序列文件等,同时也支持自定义的映射函数。

hive的应用场景

  1. 数据仓库:Hive最适合的应用场景就是数据仓库。由于Hive能够支持海量的数据存储,并提供高效的数据查询和分析功能,使得它成为了数据仓库的首选工具。
  2. 数据报表:利用Hive的统计功能,可以生成各种数据报表,比如用户行为报表、营销效果报表等。
  3. 数据挖掘:Hive也适合进行数据挖掘的工作,通过Hive可以方便地对数据进行挖掘和分析,提取出有价值的信息。

hive的优势

  1. 成本低:Hive是基于Hadoop的,因此使用Hive进行大数据处理和分析时,无需购买昂贵的大型数据库,降低了成本。
  2. 可扩展性:由于Hive是基于Hadoop的,因此可以轻松地通过增加节点进行扩展,适应更大规模的数据处理需求。
  3. 数据安全:Hive支持数据加密和访问控制等安全机制,可以确保数据的安全性。
  4. 操作简便:使用HQL进行数据查询和分析,相对于复杂的MapReduce编程,更加简洁和易于理解。

hive的架构设计


Hive架构包含3个部分。
(1)Hive 客户端(Hive Clients)。Hive 为不同类型应用程序提供不同的驱动,使应用程序可通过Java、Python 等语言连接Hive并进行与RDBMS类似的SQL查询操作。对于Java应用程序,Hive 提供了JDBC驱动;对于其他应用程序,Hive提供了ODBC驱动。
(2)Hive 服务端(Hive Services)。客户端必须通过服务端与Hive交互,服务端主要包括CLI、Hive ServerHive Web Interface、Driver、Metastore等组件。
  (3)Hive 存储与计算(Hive Storage and Computing)。Hive主要通过元数据存储数据库和Hadoop集群进红数据的存储与计算。Hive的元数据使用RDBMS存储,ive的据底储在HDES中外部分数据查询由MapReduce完成。
Hire的体验树如图1.2所示。

hive工作流程

1.(执行查询操作)Execute Query

命令行或Web UI之类的Hive接口将查询发送给Driver(任何数据库驱动程序,如JDBC,ODBC等)以执行。

2.(获取计划任务)Get plan

Driver借助查询编译器解析查询,检查语法和查询计划或查询需求。

3.(获取元数据信息)Get Metadata

编译器将元数据请求发送到Metastore(任何数据库)。

4.(发送元数据)

MetaStore将元数据作为对编译器的响应发送出去。

5.(发送计划任务)Send Plan

编译器检查需求并将计划重新发送给Driver。到目前为止,查询的解析和编译已经完成。

6.(执行计划任务)Execute Plan

Driver将执行计划发送到执行引擎。

7.(执行Job任务)Execute Job

在内部,执行任务的过程是MapReduce Job。执行引擎将Job发送到ResourceManager,(在这里注意,执行器在执行方案时,会判断:如果当前方案不涉及到MR组件,比如为表添加分区信息、比如字符串操作等,比如简单的查询操作等,此时就会直接和元数据库交互,然后去HDFS上去找具体数据。如果方案需要转化成MR job)ResourceManager位于Name节点中,并将job分配给datanode中的NodeManager。在这里,查询执行MapReduce任务.

7.1.(元数据操作)Metadata Ops 在执行的同时,执行引擎可以使用Metastore执行元数据操作。

8.(拉取结果集)Fetch Result 执行引擎将从datanode上获取结果集;

9.(发送结果集至driver)Send Results 执行引擎将这些结果值发送给Driver。

10.(driver将result发送至interface)Send Results Driver将结果发送到Hive接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值