1、什么是Hive
是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL)。
2、Hive诞生的意义
降低学习难度,学习成本,让大部分程序员都能够使用HADOOP集群。
3、Hive特点
可扩展,Hive依赖HADOOP,存储使用HDFS,计算使用MapReduce,Hive的扩展能力实际就是HDFS,MapReduce的扩展能力。
延展性,Hive支持自定义函数,用于实现已经提供的函数无法计算的业务。
容错,节点出现问题SQL仍可完成执行,本质就是MapReduce的多次重试。
4、Hive内部组成及执行流程
5、Hive和Hadoop的关系
Hive存储依赖HDFS,计算依赖MapReduce。(Hive站在巨人(hadoop)的肩膀上)
Tez 是MapReduce升级版,一个计算引擎比MapReduce更快。
Hive的执行引擎也可以换成Tez.
6、Hive和传统数据库(Mysql/Oracle)的区别
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201130204702437.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0R3aXdod2pk,size_16,color_FFFFFF,t_70)
7、Hive延迟较高的原因
Hive内部解析、编译等流程需要时间。提交任务后,提交到Yarn,Yarn内部调度机制需要时间。Hive内的数据较大,比较耗时。
8、Hive常识
1.数据格式。Hive中没有定义专门的数据格式,数据格式可以由用户指定,用户定义数据格式需要指定三个属性:列分隔符(通常为空格、”\t”、”\x001″)、行分隔符(”\n”)以及读取文件数据的方法(Hive 中默认有三个文件格式 TextFile,SequenceFile 以及 RCFile)。
2.Hive在加载数据的过程中,不需要从用户数据格式到 Hive 定义的数据格式的转换。
3.Hive 在加载的过程中不会对数据本身进行任何修改,甚至不会对数据进行扫描。而只是将数据内容复制或者移动到相应的 HDFS 目录中。
4.Hive 中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的。
5.Hive 在加载数据的过程中不会对数据中的某些 Key 建立索引。Hive 要访问数据中满足条件的特定值时,需要暴力扫描整个数据,因此访问延迟较高。由于数据的访问延迟较高,决定了Hive 不适合在线数据查询。
6.Hive 是建立在 Hadoop 之上的,因此 Hive 的可扩展性是和 Hadoop 的可扩展性是一致的。
9、Hive交互方式
第一种