Hive - [01] 概述

 

一、Hive是什么

是Facebook开源,用于解决海量结构化日志的数据统计工具。

是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。

Hive处理的数据存储在HDFS上,数据分析底层实现是MR,执行程序运行在Yarn上。

 

 

二、Hive的优缺点

 

优点(Advantages):

  • 操作接口采用类SQL 语法,提供快速开发的能力(简单、容易上手)。
  • 避免了去写 MapReduce,减少开发人员的学习成本。
  • Hive 的执行延迟比较高,因此 Hive 常用于数据分析(对实时性要求不高的场合)。
  • Hive 优势在于处理大数据,对于处理小数据没有优势,因此 Hive 的执行延迟比较高
  • Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

 

缺点(Disadvantages):

  • HQL表达能力有限,迭代式算法无法表达,
  • 数据挖掘方面不擅长:由于 MapReduce 数据处理流程的限制,效率更高的算法却无法实现。
  • Hive 的效率比较低,Hive 自动生成的 MR 作业,通常情况下不够智能化
  • Hive 调优比较困难,粒度较粗。

 

 

三、Hive 的架构

Hive 架构

HiveQL:Hive的SQL方言,类似于SQL查询语言。HiveQL允许用户使用类似于SQL的语言来查询和分析数据。

Hadoop:Hive运行在Hadoop上,是一个基于MapReduce的数据处理框架。Hadoop提供了分布式存储和计算能力,使得Hive可以高效地处理大规模数据。

执行引擎:Hive的执行引擎将HiveQL语句转换为MapReduce作业或Tez作业,并提交给Hadoop集群进行执行。

Metastore:Hive元数据存储库,用于管理表、分区和其他元数据信息。Hive Metastore是一个RESTful API,可以通过HTTP协议访问。

Driver:Hive提供了许多不同的驱动程序,用于与不同的数据源进行交互。例如,Hive支持MySQL、Oracle、PostgreSQL等常见的关系型数据库。

Web UI:Hive提供了一个Web界面,称为Hive Web UI(https://hive.apache.org/hive-web-site/)。这个UI可以方便地执行查询、查看和管理Hive集群中的数据。

 

四、Hive的相关概念

记录:数据(存储在HDFS上,表里面的记录会存储很多,数量无上限)

数据库、表:为了描述记录(元数据,元数据存储在关系型数据库,数据库(MySQL)中并不存储 Hive 的记录。)

Hive的元数据包括:

  • 表的名字
  • 表的列和分区及其属性
  • 表的属性(是否为外部表等)
  • 表的数据所在的目录等

 

五、Hive的三种模式

Tips:Hive的元数据可由access、virtual ofx、sql server、mysql、sqlite、postgresql、oracle管理。

 

5.1、本地模式

此模式连接到一个In-Memory的数据库Derby,一般用于单元测试(UnitTest)

5.2、单用户模式

通过网络连接到一个数据库中,是最常使用到的模式

5.3、多用户模式

远程服务器模式,用于非java客户端访问元数据(metastore),在服务器端启动metaStoreServer,客户端利用thrift协议通过metaStoreServer访问元数据库

 

 

六、Hive 中的数据类型

类  型 Hive MySQL中类似的
整  数 numberic、tinyint tinyint、int、bigint、mediumint、numeric
浮  点 decimal double、decimal
字符串 string varchar、text、char
布  尔
时  间 date/time date、time、datetime、timestamp
JSON   json
Geom   几何图形(周边搜索)(地理系统,地图)
二进制 boolean,binary 图片
复杂类型 Arrays,maps,structs,union json

 

 

— 要养成终生学习的习惯 —

posted @ 2023-05-22 16:38  HOUHUILIN  阅读(18)  评论(0)    收藏  举报