目录
1. 认识Hive
1.1 Hive产生的背景
(1)使用MapReduce进行数据处理的门槛比较高。
(2)传统的数据库开发、管理和运维的人员必须掌握Java面对MapReduce API编程并具备一定的编程基础后,才能使用MapReduce处理数据。
(3)数据存储在HDFS上没有Schema(表里的列,字段,字段名称,字段与字段之间的间隔符等)概念。
1.2 什么是Hive
Hive是一个基于Hadoop的数据仓库工具,可以将结构化的数据问价映射为一张数据库表,并提供SQL语句转化为MapReduce作业进行运行。
1.3 Hive在Hadoop生态系统的位置
1.4 Hive与传统关系型数据库
1.5 Hive的特点和优势
特点:
- HQL与SQL有着相似的语法,大大提高了开发效率。
- Hive支持运行在不同的计算框架上,包括YARN、Tez、Spark、Flink等。
- Hive支持HDFS与HBase上的ad-hoc。
- Hive支持用户自定义的函数、脚本等。
- Hive支持Java数据库连接(JDBC)与开放数据库(ODBC)连接驱动,建立了自身与ETL、BI工具的通道。
优势:
- 可扩展:Hive可以自由扩展集群的规模,一般情况下无须重启服务。
- 可延展:Hive支持用户自定义函数,客户根据自己的需求来编写自定义函数。
- 可容错:Hive良好的容错性使得结点出现问题时SQL仍可完成执行。
2. Hive架构设计
3. Hive工作流程
4. Hive适用场景以及场景技术特点
适用场景:
- Hive适用于非结构化数据的离线分析统计场合。
- Hive的执行延迟比较高,因此适用于对实时性要求不高的场合。
- Hive的优势在于处理大数据,因此适用于大数据处理的场合。
场景技术特点:
- 为超大数据集设计看计算与扩展功能。
- 支持SQL like查询操作。
- 支持多表的join操作。
- 支持非结构化数据的查询与计算。
- 提供数据存取的编程接口,支持JDBC、ODBC。