尚硅谷大数据技术Hive详解

需积分: 16 19 下载量 140 浏览量 更新于2024-07-18 收藏 1.85MB PDF 举报
"大数据之hive笔记" 这篇笔记主要介绍了Apache Hive,一个基于Hadoop的数据仓库工具,用于处理和分析大规模的结构化数据。Hive由Facebook开源,它提供了类SQL查询语言(HQL),简化了对存储在HDFS上的大量数据进行分析的过程。 **Hive的基本概念** 1. **Hive的定义**:Hive是一个数据仓库工具,它将结构化的数据文件映射成数据库中的表,并允许使用SQL-like语句进行查询。实质上,Hive将用户的HQL语句转化为MapReduce任务在Hadoop集群上执行。 2. **数据存储**:Hive处理的数据都存储在HDFS(Hadoop分布式文件系统)中,确保了数据的高可用性和容错性。 3. **执行机制**:Hive的执行层依赖于YARN(Hadoop的资源管理器),负责调度和执行MapReduce作业。 **Hive的优缺点** 1. **优点** - **易用性**:Hive的SQL接口使得数据分析师无需学习复杂的MapReduce编程即可进行数据分析。 - **降低学习成本**:避免直接编写MapReduce代码,减少了开发人员的学习曲线。 - **适用于大数据处理**:Hive特别适合对大量数据进行离线分析,对实时性要求不高的场景。 - **扩展性**:支持用户自定义函数(UDF),满足多样化的计算需求。 2. **缺点** - **HQL的局限性**:HQL不能表达迭代式算法,对数据挖掘功能支持有限。 - **效率问题**:Hive生成的MapReduce作业通常效率较低,且优化相对困难。 **Hive架构原理** Hive的架构包括以下几个核心组件: - **Parser**:解析器,将用户的SQL语句解析为抽象语法树(AST)。 - **Query Optimizer**:优化器,根据解析后的查询计划进行优化,比如选择最佳的执行路径。 - **Physical Plan**:编译器将优化后的查询计划转化为MapReduce作业的具体执行逻辑。 - **Execution Engine**:执行器,负责在Hadoop集群上执行MapReduce任务。 - **Metastore**:元数据存储,保存表的结构、分区信息等,通常是通过MySQL或Derby等关系型数据库实现。 - **Driver**:驱动程序,协调各个组件的工作,接收客户端请求并返回结果。 - **Clients**:包括CLI(命令行接口)和JDBC/ODBC客户端,提供给用户交互界面。 Hive的设计使得它成为大数据处理领域的一种重要工具,尤其适合于数据仓库和ETL(提取、转换、加载)流程。然而,由于其依赖于MapReduce,所以在实时查询和低延迟场景下,Hive可能不是最佳选择。近年来,Hive也逐步支持Tez和Spark等更高效的执行引擎,以提高查询性能。Hive为大数据分析提供了一个易于使用的、灵活的平台,但同时也需要根据实际需求权衡其优缺点。
2021-09-20 上传
课程目录: 第1章:Hive基本架构及环境部署 1.MapReduce分析与SQL分析对比 2.Hive的介绍及其发展 3.Hive的安装部署及启动 4.Hive的基本架构讲解 5.安装MySQL作为元数据库存储 6.配置Hive使用MySQL作为元数据库存储 7.Hive中基本命令的使用 8.Hive中常用的属性配置 9.Hive中常用的交互式命令 10Hive中数据库的管理与使用 11.Hive中表的管理与使用 12.Hive中外部表的使用 第2章:Hive 常用DML、UDF及连接方式 13.Hive中分区表的介绍 14.Hive中分区表的创建及使用 15.Hive中数据导入的6种方式及其应用场景 16.Hive中数据导出的4种方式及表的导入导出 17.Hive中HQL的基本语法(一) 18.Hive中HQL的基本语法(二) 19.Hive中order by、sort by、distribute by与cluster by的使用 20.Hive中分析函数与窗口函数 21.Hive中UDF的介绍 22.Hive中使用自定义UDF实现日期格式转换 23. HiveServer2的介绍及三种连接方式 24.Hive元数据、fetch task和严格模式的介绍 第3章:Sqoop Sqoop及用户行为分析案例 25.CDH版本框架的介绍 26. CDH版本框架的环境部署 27.Sqoop的介绍及其实现原理 28.Sqoop的安装部署及连接测试 29.Sqoop将MySQL数据导入到HDFS(一) 30.Sqoop将MySQL数据导入到HDFS(二) 31.Sqoop中的增量导入与Sqoop job 32.Sqoop将MySQL数据导入Hive表中 33.Sqoop的导出及脚本中使用的方式 34.案例分析-动态分区的实现 35.案例分析-源表的分区加载创建 36.案例分析-指标分析使用Sqoop导出 第4章:Hive复杂用户行为案例分析及优化 37.自动批量加载数据到hive 38.Hive表批量加载数据的脚本实现(一) 39.Hive表批量加载数据的脚本实现(二) 40.HIve中的case when、cast及unix_timestamp的使用 41.复杂日志分析-需求分析 42.复杂日志分析-需求字段讲解及过滤 43.复杂日志分析-字段提取及临时表的创建 44.复杂日志分析-指标结果的分析实现 45.Hive中数据文件的存储格式介绍及对比 46.常见的压缩格式及MapReduce的压缩介绍 47.Hadoop中编译配置Snappy压缩 48.Hadoop及Hive配置支持snappy压缩 49.Hive中的常见调优 50.Hive中的数据倾斜及解决方案-三种join方式 51.Hive中的数据倾斜及解决方案-group by 52.Hive中使用正则加载数据 53. Hive中使用Python脚本进行预处理 第5章:Zeus任务资源调度工具 54.资源任务调度框架介绍 55.企业中常见的任务调度框架 56.Zeus的介绍及基本实现原理 57.Zeus安装部署-基本环境配置 58.Zeus安装部署-配置文件的修改 59.Zeus安装部署-编译打包 60.Zeus平台的调度使用 61.Zeus平台实现任务调度应用(一) 62.Zeus平台实现任务调度应用(二) 63.Zeus平台实现任务调度应用(三)