HIVE面试
一、Hive的基本概念
1.什么是hive
Hive是一款开源的基于hadoop的用于统计海量结构化数据的一个数据仓库,它定义了简单的类似SQL的查询语言,称为HQL,允许熟悉SQL的用户查询数据。
从本质上讲:Hive是讲HQL语句转换成MapReduce程序的的一个工具
2.什么是数据仓库
数据仓库是一个面向主题的,集成的,相对稳定的,反映历史变化的数据的集合,用于支持管理角色
3.简单说说MapReduce
MP是一个软件框架,基于该框架能够容易的编写应用程序,这些应用程序能够运行在大规模集群上,并以一种可靠的,具有容错能力的方式并行的处理上TB级别的海量数据集。
MR的思想就是“分而治之”,Mapper负责‘分’,即把复杂的任务分解为若干个‘简单的任务’来处理;Reduce负责对map阶段的结果进行汇总。
4Hive的作用
1.可以将结构化的数据文件映射成一张表,并提供类SQL查询功能,方便非java开发人员对hdfs上的数据做MapRedece操作;
2.可以对数据提取转化加载(ETL)
3.构建数据仓库
5.Hive的使用场景
1.即使查询:利用CLI或者类似HUE之类的工具,可以对Hive中的数据做即时查询,如果底层的引擎使用的MR耗时会很久,可以替换成Tez或者Spark;
2.离线的数据分析:通过执行定时调度或者脚本去执行HQL语句,并将结果保存
3.构建数仓时用于组织管理数据和表
6. Hive的特点
优点:
1.可扩展性,横向扩展,Hive可以自由的扩展集群的规模,一般情况下不需要重启服务,横向扩展:通过分担压力的方式扩展集群的规模;纵向扩展:升级一台服务器的硬件
2.延展性,Hive支持自定义函数,用户可以根据自己的需求来实现自己的函数
3.良好的容错性,可以保障即使有节点出现问题,SQL语句仍可完成执行
缺点:
1.Hive不支持记录级别的增删改操作,但是用户可以通过查询生成新表或者将查询结果导入到文件中
2.Hive的查询延时很严重,因为MRJ的启动过程消耗很长时间,所以不能用在交互查询系统中
3.Hive不支持事务,因为没有增删改,所以主要用来做OLAP(联机分析处理),而不是OLTP(联机事务处理),这就是出局处理的两大级别。
7.Hive和传统数据库比较
1.数据存储位置
hive存储在HDFS。数据库将数据保存在块设备或者本地文件系统中。
2.数据更新
hive中不建议对数据的改写,而数据库中的数据通常是需要经常进行修改的
3.执行延迟
hive执行延迟较高,数据的执行延迟较低。当然,这个是有条件的,即数据规模较小,当数据

3609

被折叠的 条评论
为什么被折叠?



