Hive Hive介绍
Hive是为了解决分析海量日志数据分析的问题而开发的,后来向软件基金会开源。
官网定义:
Hive™ 数据、、以及使用 SQL 时很大。
Hive是一个数据仓库软件,使用类似SQL的语句来协助读取、写入和管理存储在分布式存储系统中的大型数据集。
架构的几个特点
图片.png
Hive 的底层存储
Hive 的数据是存储在 HDFS 上的,Hive 中的库和表可以看作是数据在 HDFS 上的映射,因此 Hive 必须运行在集群上。
Hive语句执行流程
Hive中的执行器将要执行的程序以一系列作业的形式放到YARN上执行。
Hive 元数据存储
Hive的元数据一般存储在MySQL等关系型数据库中,Hive与MySQL通过服务进行交互。
重要的 Hive 概念 外部表和内部表 内部表(表) 外部表(表) 分区表和存储桶表 分区() 存储桶()
的具体描述
Hive 文件格式
Hive文件存储格式包括以下几类:
(0.11之后出现)
使用默认格式,如果创建表时不指定此格式,则导入数据时数据文件会不经过处理直接复制到HDFS,,,格式的表无法直接从本地文件导入数据,必须先将数据导入,,格式的表,再从该表导入,,表。
列存储和行存储
首先我们来看一下表的存储格式。
图片.png
行存储
图片.png
列存储
图片.png
列存储与行存储的比较
行式存储
优势:
缺点:
列存储
优势:
缺点:
默认格式不压缩数据,导致磁盘开销和数据解析开销较高。
它可以与Gzip和Bzip2结合使用(执行查询时系统会自动检查并自动解压),但是使用此方法时Hive不会对数据进行拆分,导致无法对数据进行并行操作。
它是API提供的二进制文件支持,易于使用、可分割、可压缩。
支持三种压缩方式:NONE、BLOCK。压缩率较低,一般建议使用BLOCK压缩。
它是行存和列存相结合的存储方式,首先它将数据按行分成块,保证相同的数据在一个块中,避免读取一条记录需要读取多个块;其次,块数据按列存储,有利于数据压缩和快速列访问。
从以上几点也可以看出它兼顾了行式存储和列式存储的一些优点。
ORC 文件
存储格式是RC File的缩写,意思是优化的存储格式。
ORC文件与RC文件的比较
Hive 行
Serde 是 / 的缩写。Hive 使用 Serde 来序列化和反序列化行对象。
您可以创建一个具有用户定义的 Serde 或 Serde 的表,如果未指定 ROW 或指定了 ROW,则将使用该 Serde。
Hive 实现了很多自定义的 Serde,在前面的介绍中我们也提到过:
Hive 如何写入数据
和我们熟悉的关系型数据库不同,Hive 目前还不支持在语句中直接以文本形式给出一组记录。也就是说hive,Hive 不支持 INTO ... 形式的语句(新版本已经支持了,但是并不十分推荐,因为在性能和可用性方面很难满足要求)。
将数据从本地文件系统导入到 Hive 表中
将本地数据‘xxx.txt’加载到表xxx中;
将数据从 HDFS 导入到 Hive 表
将数据 '/home/xxx/add.txt' 加载到表 xxx 中
更改表 db.add (dt='18-09-18') 'hdfs://ns/hive///dt=18-09-18';
从其他表查询相应数据并导入到Hive表中
表数据库。(dt='18-09-26')uid,model,key,value,time 来自 db.log 其中 dt='18-09-26';
创建表时,从其他表中查询相应记录,并插入到创建的表中
表 test4 作为 id, name, tel 来自 xxx;
未经允许不得转载! 作者:admin,转载或复制请以超链接形式并注明出处天心神途传奇手游发布网。
原文地址:《hive Hive介绍及核心知识点》发布于:2024-06-03




还没有评论,来说两句吧...