Hive 的概念、应用场景、安装部署及使用、数据存储 、table(内部表)和external table(外部表)、partition(分区表)和bucket(分桶表)

本文详细介绍了Hive的概念、特点、与RDBMS和HBase的对比,以及Hive的安装部署、数据存储方式、内部表与外部表、分区表和分桶表的使用。重点讲解了分区表和分桶表的区别,包括静态分区、动态分区以及分桶的原理和操作。Hive作为基于Hadoop的数据仓库工具,提供了类SQL的查询方式,适用于离线批量数据计算,但存在查询延时等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、Hive 的概念

2、Hive 的特点 

3、Hive 和 RDBMS(关系型数据库) 的对比 

4、Hive 和 HBase 的差别 

5、Hive 架构 

6、Hive安装与使用方法介绍

7、Hive 的数据存储 

8、table(内部表)和external table(外部表)

9、partition(分区表)和bucket(分桶表)


1、Hive 的概念

  • 1、Hive 由 Facebook 实现并开源 ;
  • 2、Hive 是基于 Hadoop 的一个数据仓库工具 ;
  • 3、Hive 存储的数据其实底层存储在 HDFS 上 ;
  • 4、Hive 将 HDFS 上的结构化的数据映射为一张数据库表;
  • 5、Hive 提供 HQL(Hive SQL)查询功能 ;
  • 6、Hive 的本质是将 SQL 语句转换为 MapReduce 任务运行,使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计算 ;
  • 7、Hive 使用户可以极大简化分布式计算程序的编写,而将精力集中于业务逻辑 。

注释:

①hive是基于hadoopHadoop 是 Apache 旗下的一套开源软件平台)的一个数据仓库工具

②数据的存储媒介有: 

  • 磁盘【优点:安全(掉电数据不丢失)、单价低;缺点:随机读写慢。】
  • 内存【优点:随机读写快;缺点:掉电丢失数据,单价高】

③存储数据有那些方式: 

  • 数据库【底层是基于文件系统来实现的,但是数据经过特定格式的组织。优点:底层媒介是磁盘(数据安全),格式特殊(操作快速);缺点:当单表遇到的数据记录条数超过千万级的时候,一般来说,必须要进行分库分表进行存储(麻烦),不能存储非常大量的数据】
  • 文件系统【直接存储成普通的文件;(分布式文件系统HDFS:一台服务器不能解决的存储问题,组织多台服务器成一个存储整体来解决,管理员把数据文件拆分成多个小文件进行存储,每台服务器存储其中的一个小文件,为了防止一个分布式系统中的某个服务器宕机造成数据丢失,对数据小块进行冗余备份。优点:能存储大量文件(大文件),支持大规模并发读取;劣势:不能针对单条记录进行增删改查,大规模并发写入比较差,HDFS不支持超多的小文件的存储】

④分布式的并行计算框架MapReduce:

  • 针对大批量的数据库难以处理的数据,有了hadoop软件平台的分布式文件系统HDFS对数据进行分布式存储,那么还需有分布式并行计算框架( MapReduce) 来解决超大文件的计算问题。Map分布式并行计算,Reduce再将计算结果进行整合。但是mapreduce 代码复杂,学习成本高,同时mapreduce的执行效率是比较低下的。

⑤hadoop的核心组件

  • RPC:主管这个整体中的多台服务器之间的网络通信
  • HDFS:分布式文件系统,用来解决超大文件的存储问题
  • MapReduce:分布式并行计算框架,用来解决超大文件的计算问题
  • YARN:运算资源调度器。如果我碰到一个超大的超级复杂的计算业务,那么需要很多的计算资源来执行计算,就是为对应的用户的庞大复杂计算任务提供计算资源的

⑥为什么使用 Hive

  • 直接使用 MapReduce 的问题:人员学习成本太高,项目周期要求太短,MapReduce 实现复杂查询逻辑开发难度太大。 
  • 为什么要使用 Hive:更友好的接口(操作接口采用类 SQL 的语法,提供快速开发的能力);更低的学习成本(避免了写MapReduce,减少开发人员的学习成本);更好的扩展性(可自由扩展集群规模而无需重启服务,还支持用户自定义函数)。

⑦Hive的执行效率

  • Hive 依赖于 HDFS 存储数据,Hive 将 HQL 转换成 MapReduce 执行。那么Hive就只是减轻编程压力,并不会解决执行效率低的问题;spark -----> mapreduce 就会提升执行效率。

2、Hive 的特点 

优点:

  • 可扩展性,横向扩展。Hive 可以自由的扩展集群的规模,一般情况下不需要重启服务。横向扩展:通过分担压力的方式扩展集群的规模;纵向扩展: 一台服务器cpu i7-6700k 4核心8线程, 8核心16线程,内存64G => 128G  
  • 延展性。Hive 支持自定义函数,用户可以根据自己的需求来实现自己的函数
  • 良好的容错性。可以保障即使有节点出现问题,SQL 语句仍可完成执行 

缺点:  

  • Hive 不支持记录级别的增删改操作。但是用户可以通过查询生成新表或者将查询结果导入到文件中( hive-2.3.X 的版本支持记录级别的插入操作)
  • Hive 的查询延时很严重。因为 MapReduce Job 的启动过程消耗很长时间,所以不能用在交互查询系统中。
  • Hive 不支持事务。因为没有增删改,所以主要用来做 OLAP(联机分析处理),而不是 OLTP(联机事务处理),这就是数据处理的两大级别

3、Hive 和 RDBMS(关系型数据库) 的对比 


4、Hive 和 HBase 的差别 

Hive  HBase
Hive 是建立在 Hadoop 之上为了降低 MapReduce 编程复杂度的 ETL 工具。 HBase 是为了弥补 Hadoop 对实时操作的缺陷 
Hive 表是纯逻辑表,因为 Hive 的本身并不能做数据存储和计算,而是完全依赖 Hadoop HBase 是物理表,提供了一张超大的内存 Hash 表来存储索引,方便查询 
Hive 是数据仓库工具,需要全表扫描,就用 Hive,因为 Hive 是文件存储 HBase 是数据库,需要索引访问,则用 HBase,因为 HBase 是面向列的 NoSQL 数据库 
Hive 表中存入数据(文件)时不做校验,属于读模式存储系统 HBase 表插入数据时,会和
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值