栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

5.1.2、Hive

5.1.2、Hive

1、Hive概述

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表(类SQL的查询)
hive是部署于hadoop上,hive的数据在hdfs上,hive的元数据存储于mysql中(元数据是地址等信息)
元数据默认存储于derby上,该为mysql,由于mysql支持多用户
本质:将HSL转化成MapReduce程序
hive的底层引擎:
mr(溢出磁盘),spark,tez(没有溢出磁盘,内存处理)

2、执行过程(根据模板)

3、优点

(1)操作接口采用类SQL语法,提供快速开发的能力
(2)避免了去写MapReduce
(3)Hive执行延迟高,因此Hive常用于数据分析,实时性不高的场合
(4)Hive处理大数据
(5)Hive支持用户自定义函数,用户可以根据自己需求来实现自己的函数

4、缺点

(1)Hive的HQL表达能力有限
1)迭代式算法无法表达
2)数据挖掘方面不擅长,由于MapReduce数据处理流程限制
(2)Hive的效率低
1)MapReduce不够智能化
2)Hive调优比较困难

5、Hive架构

6、Hive和数据库的区别

(1)查询语言。类 SQL 的查询语言 HQL。熟悉 SQL 开发的开发者可以很方便的使用 Hive 进行开发。

(2)数据存储位置。所有 Hive 的数据都是存储在 HDFS 中的。而数据库则可以将数据保存在块设备或者本地文件系统中。

(3)数据格式。Hive 中没有定义专门的数据格式。而在数据库中,所有数据都会按照一定的组织存储,因此,数据库加载数据的过程会比较耗时。
mysql是先有表,再有数据,而hive先有数据在有表(数据put上去)

(4)数据更新。Hive 对数据的改写和添加比较弱化,0.14版本之后支持,需要启动配置项。而数据库中的数据通常是需要经常进行修改的。
Hive一般不对数据的更新,删除,只是查询添加,之前都是先下载更新在覆盖写回去,现在支持直接添加insert,但是添加一条数据就是一个文件,一般不适用

(5)索引。Hive 在加载数据的过程中不会对数据进行任何处理(map阶段数据是一行行进入的,打索引也没有用)。因此访问延迟较高。数据库可以有很高的效率,较低的延迟。由于数据的访问延迟较高,决定了 Hive 不适合在线数据查询。

(6)执行计算。Hive 中执行是通过 MapReduce 来实现的而数据库通常有自己的执行引擎。
Hive的执行效率低,数据量大,MapReduce执行运算

(7)数据规模。由于 Hive 建立在集群上并可以利用 MapReduce 进行并行计算,因此可以支持很大规模的数据;对应的,数据库可以支持的数据规模较小。

7、元数据存储

metastore是hive元数据的集中存放地
Hive默认使用的元数据库为derby(相当于引擎),开启Hive之后就会占用元数据库,且不与其他客户端共享数据
改为了mysql,所以元数据在mysql上(元数据就是一些映射地址),mysql支持多用户,derby只能有一个用户

8、命令

9、配置文件日志

hive.log
hive.log.2021-09-26
eg:零点就会将hive.log变成hive.log.2021-09-27,在生成一个新的hive.log

10、hive数据存储的格式

hive中没有专门的数据文件格式,常用几种:
(1)TextFile:默认的存储格式,文本格式,此格式的表文件在HDFS上是明文(可以cat),数据没有压缩(元数据多大,存储上去就是多大)
(2)RCFile:列文件格式,查询较快
(3)ORCFile:列文件格式存储,又增加了压缩比,性能高
(4)Parquet:集合格式,扁平化的(直观的数据)
(5)SEQUENCEFILE:二进制格式(了解)
(6)AVRO:二进制格式(了解)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/313102.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号