hive到底是什么,hive的,一文了解Hive是什么

hive到底是什么,hive的,一文了解Hive是什么

Hive是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射到一个表中,并提供类似SQL的查询功能。对Hive是什么及其优缺点感兴趣的朋友可以跟着边肖去看一看。

目录

一、Hive介绍Hive的优缺点Hive架构Hive用户界面Hive元数据三种存储方式Hive数据存储架构原理Hive文件格式Hive本质Hive工作原理Hive数据类型

一、Hive介绍

Hive:脸书用来解决海量结构化日志的开源数据统计工具。

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

Hive的优缺点

优点:

类似于SQL语句,简单学习容易上手,避免了编写MapReduce,降低了开发者的学习成本。所以经常使用Hive进行数据分析。在实时性要求不高的情况下,Hive在处理大数据方面有优势,但在处理小数据方面没有优势。Hive支持用户自定义功能,用户可以根据自己的需求实现自己的功能。

缺点:

蜂巢的HQL表达能力有限。Hive的效率比较低。Hive本质上是一个先生。

Hive架构

Hive用户接口

Hive CLI(Hive命令行)Hive的命令行HWI(Hive Web接口)Hive Web接口Hive提供节俭服务,即Hiveserver。

Hive元数据的三种存储模式

单用户模式:安装Hive时,默认使用Derby数据库存储元数据,因此不能并发调用Hive。多用户模式:MySQL服务器存储元数据。远程服务器模式:启动MetaStoreServer。

Hive数据存储

蜂巢数据可分为表数据元数据。我们都知道表数据是表中的数据,而元数据是用来存储表的名字表分区属性

Hive基于Hadoop分布式文件存储,其数据存储在HDFS。现在我们来介绍一下Hive中常见的数据导入方法。

从本地文件系统导入数据到Hive,从HDFS导入数据到Hive表,从其他表中查询相应的数据导入Hive表。创建表时,从其他表中查询相应的记录,并将其插入到创建的表中。

#1.演示将数据从本地加载到配置单元

#1.1创建表格

创建学生表(id字符串,姓名字符串)

行格式分隔的字段以“\t”结尾;

#1.2将本地文件加载到配置单元

加载数据本地路径

/root/student.txt”放入表default.student#default.test数据库表名也可以是直接的表名。

#2.演示将HDFS文件加载到配置单元中

#2.1将文件上传到HDFS根目录

DFS-put/root/student . txt/;

#2.2在HDFS上加载数据

将路径“/student.txt”中的数据加载到表test.student

#3.加载数据以覆盖表中的原始数据。

#3.1将文件上传到HDFS

DFS-put/root/student . txt/;#将文件加载到表格下的文件中,相当于在Windows中进行剪切。

#3.2加载数据覆盖表中的原始数据

将path“/student . txt”中的数据覆盖加载到表test.student中;

#4.查找表

select * from student

#通过查询语句将数据插入表中(insert)

#1.1创建表格

创建表student_par(id int,name String)

行格式分隔的字段以“\t”结尾;

#1.2通过插入来插入数据

向表中插入student_par值(1,'张三'),(2,'李四');

架构原理

用户界面

CLI(命令行界面)、JDBC/ODBC(jdbc访问配置单元)、WEBUI(浏览器访问配置单元)

元数据

元数据包括:表名、表所属的数据库(默认为default)、表的所有者、列/分区字段、表的类型(是否为外部表)、表的数据的目录等。

Hadoop

使用HDFS进行存储,使用MapReduce进行计算。

司机:司机

(1) SQL解析器:将SQL字符串转换成抽象语法树AST,通常由第三方工具库来完成,比如antlr;分析AST语法,比如表是否存在,字段是否存在,SQL语义是否错误。

(2)编译器(物理计划):编译AST,生成逻辑执行计划。

(3)查询优化器:优化逻辑执行计划。

(4)执行:将逻辑执行计划转换成可以运行的物理计划。对Hive来说是火花先生。

Hive文件格式

文本文件

这是默认的文件格式。没有数据压缩处理,磁盘成本高,数据分析成本高。

序列文件

这是HadooAPI提供的二进制文件支持,以二进制形式序列化成文件。

RCFile

这种格式就是行列存储结构的存储方式。

妖魔

优化的行列ORC文件格式是Hadoop生态系统中的列存储格式。

ORC的优势:

列表中,有许多压缩文件的方法。文件是可以分的。提供了多种索引来支持复杂的数据结构,如地图。

ORC文件格式以二进制模式存储,因此不能直接读取。

Hive本质

将HQL转换成MapReduce程序。

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

Hive工作原理

简单来说,Hive就是一个查询引擎。当Hive收到SQL语句时,它将执行以下操作:

词汇分析和语法分析。用antlr将SQL语句解析成抽象语法树的语义分析。从MetaStore获取元数据信息,用SQL语句解释表名、列名和数据类型逻辑计划生成。生成一个逻辑计划,以获得运算符树逻辑计划优化。优化运算符树以生成物理计划。由逻辑计划生成的MapReduce任务组成的DAG的物理计划被物理地计划执行。将DAG发送到Hadoop集群执行,并返回查询结果。

Hive向组件显示MapReduce任务设计,如下所示:

元存储:该组件存储Hive中表的信息,包括表、表分区、模式、列及其类型、表映射关系等驱动程序:控制HiveQL查询编辑器执行引擎生命周期的组件Hive server客户端组件提供命令行界面Hive CLI、Web UI、JDBC驱动程序等。

Hive数据类型

Hive支持两种数据类型,一种是原子数据类型,一种是复杂数据类型。

基本数据类型类型描述的示例TINYINT1字节有一个符合整数1 small2字节有符号整数1INT4字节有符号整数1BIGINT8字节有符号整数1FLOAT4字节单精度浮点数1.0DOUBLE8字节双精度浮点数1.0BOOLEANtrue/falsetrueSTRING字符串“hive”,“hive”

Hive type中的String数据类型类似于MySQL中的VARCHAR。类型是可变字符串。

配置单元支持数据类型转换。Hive是用Java写的,所以数据类型转换规则遵循Java:

隐式转换-从小到大

强制转换-大传输和小传输

Type描述样本数组的有序字段。字符必须相同。ARRAY(1,2)MAP是一个无序的键值对。构建的类型必须是原子的,值可以是任何类型。Map ('a ',1,' b ',2)构造一组命名字段。字段的类型可以是不同的结构(“a”,1,1,0)

关于理解什么是Hive的这篇文章到此为止。有关什么是Hive的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: