Hive总结

Hive 是Facebook开源的数据仓库工具,它基于Hadoop,提供类SQL查询接口,适合处理和计算存储在HDFS上的大规模结构化数据。Hive的优点包括可扩展性和自定义函数支持,但不支持记录级别的增删改操作且查询延迟较高。Hive中的关键概念包括分区表(提升查询效率)、分桶表(细化数据管理)和Join查询。Hive还支持优化策略,如查看执行计划、并行执行、JVM重用等,以提高性能。
摘要由CSDN通过智能技术生成

Hive

1.什么是hive?

1.1、Hive 由 Facebook 实现并开源
1.2、是基于 Hadoop 的一个数据仓库工具
1.3、可以将结构化的数据映射为一张数据库表
1.4、并提供 HQL(Hive SQL)查询功能
1.5、底层数据是存储在 HDFS 上
1.6、Hive的本质是将 SQL 语句转换为 MapReduce 任务运行
1.7、使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计算。

2.为什么要使用Hive?

2.1直接使用MapReduce所面临的问题:

2.1.1.成员学习成本太高;
2.1.2.项目周期要求太短;
2.1.3.MapReduce实现复杂查询逻辑开发难度太大。

2.2为什么要使用Hive:

2.2.1.更友好的接口,操作接口采用类SQL的语法,提高快速开发的能力;
2.2.2.更低的学习成本,避免了写MapReduce,减少开发人员的学习成本;
2.2.3.更好的扩展性,可自由扩展集群规模而无需重启服务,还支持用户自定义函数

3.Hive的特点?

3.1优点:

3.1.1.可扩展性,横向扩展:Hive可以自由的扩展集群的规模,一般情况下不需要重启服务,横向扩展:通过分担压力的方式扩展集群的规模,
3.1.2.延展性:Hive支持自定义函数,用户可以根据自己的需求来实现自己的函数
3.1.3.良好的容错性:可以保障即使有节点出现问题,SQL语句认可完成执行

3.2缺点:

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

4.Hive文件存储格式

textFile:普通文本文件
sequenceFile:二进制文件存储,有压缩
rcFile:行列混合存储,有压缩

5.Hive内部表和外部表的区别

内部表:加载数据到Hive所在的HDFS目录,删除时,元数据和数据文件都删除
外部表:不加载数据到Hive所在的HDFS目录,删除时,只删除表结构。

6.内部表和外部表的使用选择

大多数情况,他们的区别不明显,如果数据的所有处理都在Hive中进行,那么倾向于选择内部表,但是如果Hive和其他工具要针对相同的数据集进行处理,外部表更合适。
使用外部表访问存储在HDFS上的初始数据,然后通过Hive转换数据并存到内部表中。
使用外部表的场景是针对一个数据集有多个不同的Schema。
通过外部表和内部表的区别和使用选择的对比可以看出来,Hive其实仅仅只是对存储在HDFS上的数据提供了一种新的抽象。而不是管理存储在HDFS上的数据,所有不管创建内部表还是外部表都可以对Hive表的数据存储目录中的数据

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值