大数据技术原理与应用学习笔记(九)
大数据技术原理与应用学习笔记(九)
- 本系列历史文章
- 数据仓库Hive
- 数据仓库概念
- Hive简介
- Hive系统架构
- 用户接口模块
- Hive HA基本原理——(高可用性)
- Hive的工作原理
- 由SQL转换为MapReduce的工作原理
- Impala——开源大数据分析引擎
- Impala简介
- Impala架构
- Impalad
- State Store
- CLI——执行查询的命令行工具
- Impala执行过程
- Hive与Impala的比较
- Hive编程实践
本系列历史文章
大数据技术原理与应用学习笔记(一)
大数据技术原理与应用学习笔记(二)
大数据技术原理与应用学习笔记(三)
大数据技术原理与应用学习笔记(四)
大数据技术原理与应用学习笔记(五)
大数据技术原理与应用学习笔记(六)
大数据技术原理与应用学习笔记(七)
大数据技术原理与应用学习笔记(八)
数据仓库Hive
数据仓库概念
数据仓库: 数据仓库是一个面向主题的集成的相对稳定的、反映历史变化的数据集合,用来支撑管理决策。
数据仓库的体系结构包括:数据源、数据存储和管理、分析、挖掘引擎及应用。
传统数据仓库面临的挑战:
- 无法满足快速增长的海量数据存储需求
- 无法有效处理不同类型的数据
- 计算和处理能力不足
Hive简介
Hive——构建在Hadoop之上的数据仓库工具。
Hive本身并不存储处理数据
- 依赖于HDFS存储
- 依赖于MapReduce处理
Hive采用HiveQL语言
Hive两方面特性:
- 采用批处理方式处理海量数据
- Hive提供了一系列对数据进行提取、转换、加载(ETL)的工具
Hive与其他组件的关系:
- Pig可替代Hive用于数据仓库的ETL环节
- Hive主要用于数据仓库海量数据的批处理分析
- HBase支持实时数据访问,与Hive互补
Hive与传统数据库的对比:
如下表:
对比项目 | Hive | 传统数据库 |
---|---|---|
数据存储 | HDFS | 本地文件系统 |
数据插入 | 支持批量导入 | 支持单条和批量导入 |
数据更新 | 不支持 | 支持 |
索引 | 支持 | 支持 |
分区 | 支持 | 支持 |
执行引擎 | MapReduce、Tez、Spark | 使用自身引擎 |
执行延迟 | 高 | 低 |
扩展性 | 好 | 有限 |
Hive系统架构
用户接口模块
用户接口模块主要包括:
- 用户接口模块
- CLI——命令行
- HWI——Hive的Web接口
- JDBC和ODBC——开放数据库连接接口
- Thrift Server——基于Thrift架构开发的接口
- 驱动模块
包含编译器、优化器、执行器。负责把HiveQL语句转换成MapReduce作业。 - 元数据存储模块
独立的关系型数据库。
Hive HA基本原理——(高可用性)
Hive HA基本原理如图所示:
在Hive HA中,在Hadoop集群上构建的数据仓库是由多个Hive实例进行管理的,这些Hive实例被纳入一个资源池中,并由HAProxy提供一个统一的对外接口。客户端的查询请求首先访问HAProxy,由HAProxy对访问请求进行转发。HAProxy收到请求后,会轮询资源池里可用的Hive实例,执行逻辑可用性测试。如果某个Hive实例逻辑可用,就会把客户端的访问请求转发到该Hive实例,如果该Hive实例逻辑不可用,就把它放入黑名单,并继续从资源池取出下一个Hive实例进行逻辑可用性测试,如果重启成功,就再次放入资源池中。
Hive的工作原理
由SQL转换为MapReduce的工作原理
- Input(SQL)转换为抽象语法树(AST)
- AST转换成查询块(Query Block)
- 将Query Block转换成逻辑查询计划
- 重写逻辑查询计划,合并优化等,减少MapReduce的任务数量
- 转换成MapReduce作业
- 优化生成最终版的执行计划。
- 执行并输出
Impala——开源大数据分析引擎
Impala简介
Impala是由Cloudera公司开发的新型查询系统。Impala的目的不在于替换现有的MapReduce工具,而是提供一个统一的平台用于实时查询。
- 与Hive类似,Impala也可以直接与HDFS和HBase进行交互。
Hive底层执行使用的是MapReduce,所以主要用于处理长时间运行的批处理任务,例如批量提取、转化、加载类型的任务。 - Impala通过与商用并行关系数据库中类似的分布式查询引擎,可以直接从HDFS或者HBase中用SQL语句查询数据,从而大大降低了延迟,主要用于实时查询。
- Impala和Hive采用相同的SQL语法、ODBC 驱动程序和用户接口。
Impala架构
Impala主要由3部分构成:Impalad、State Store、CLI
Impalad
- Query Planner
- Query Coordinator
- Query Exec Engine
作用:
- 协调Client提交的查询的执行
- 给其他Impalad分配任务
- 收集其他Impalad执行结果并汇总
State Store
创建一个State Stored进程,负责收集分布在集群中各个Impalad进程的资源信息用于查询调度。
CLI——执行查询的命令行工具
Notes:
- Impala元数据直接存储在Hive中
- 与HIve相同的元数据,相同的SQL,相同的ODBC驱动程序和用户接口
- 目的:可以在Hadoop统一部署Hive/Impala使同时满足批处理和实时处理
Impala执行过程
执行过程可简略记为:
- 注册和订阅
- 提交查询
- 获取元数据与数据地址
- 分发查询任务
- 汇聚结果
- 返回结果
Hive与Impala的比较
不同点:
- Hive适合长时间批处理查询分析,而Impala适合实时交互式SQL查询;
- Hive依赖于MapReduce,而Impala把执行计划表现为完整的执行计划树;
- Hive内存不够时,利用外存,而Impala在内存不够时,也不会用外存(适合小规模);
相同点:
- Hive与Impala使用相同的存储数据池,支持存入HDFS、HBase
- Hive与Impala使用相同的元数据
- Hive与Impala中对SQL解释处理较为相似(都是通过词法分析生成执行计划)
在实际应用中,由于Hive和Impala的不同特性,可以先由Hive进行数据转换,在用Impala进行数据分析。
Hive编程实践
关于Hive的编程实践可参考厦大数据库博客:基于Hadoop的数据仓库Hive 学习指南
大数据技术原理与应用学习笔记(九)相关推荐
- 《大数据技术原理与应用》笔记
一.大数据概述 大数据的特征(4V): 1.Volume,数据量大 2.Variety,数据类型多 大数据由结构化和非结构化数据组成: 10%的结构化数据,存储在数据库中: 90%的非结构化数据,与人 ...
- 关于大数据技术原理与应用的学习(6)
学习目标: 大数据技术原理与应用 学习内容: 6云数据库 6.1概述 6.2产品 6.3UMP系统 6.4Amazon云数据库 6.5微软云数据库SQL Azure 学习时间: 2022/03/31 ...
- 关于大数据技术原理与应用的学习(1)
学习目标: 大数据技术原理与应用 学习内容: 大数据概述 1.1大数据时代 1.2大数据的概念和影响 1.3大数据的应用 1.4大数据的关键技术 1.5大数据与云计算.物联网的关系 学习时间: 202 ...
- 关于大数据技术原理与应用的学习(4)
学习目标: 大数据技术原理与应用 学习内容: 分布式数据库HBase 4.1HBase简介 4.2HBase数据模型 4.3HBase实现原理 4.4HBase运行机制 4.5HBase应用方案 4. ...
- 关于大数据技术原理与应用的学习(3)
学习目标: 大数据技术原理与应用 学习内容: 分布式文件系统HDFS 3.1HDFS简介 3.2HDFS相关概念 3.3HTFS体系结构 3.4HTFS存储元原理 3.5HDFS数据读写 3.6HDF ...
- 关于大数据技术原理与应用的学习(5)
学习目标: 大数据技术原理与应用 学习内容: 5.NoSQL数据库 例如: 5.1NoSQL数据库 5.2与关系数据库的比较 5.3四大类型 5.4理论基石 5.5从NoSQL到NewSQL 5.6文 ...
- 大数据第二阶段Python基础编程学习笔记(待完善)
大数据第二阶段Python基础编程学习笔记(待完善) 第一章 Python基础语法 3.8 1-1Python概述 python基础部分: ●Python基础语法: 标识符,关键字,变量,判断循环.. ...
- [渝粤教育] 厦门大学 大数据技术原理与应用 参考 资料
教育 -大数据技术原理与应用-章节资料考试资料-厦门大学[] 第1章 大数据概述 单元测验 1.[单选题]第三次信息化浪潮的标志是: A.个人电脑的普及 B.互联网的普及 C.云计算.大数据.物联网技 ...
- 大数据技术原理与应用课后题(林子雨)
大数据技术原理与应用(林子雨) 第1章 大数据概述 1单选(2分) 第三次信息化浪潮的标志是: A.个人电脑的普及 B.云计算.大数据.物联网技术的普及 C.虚拟现实技术的普及 D.互联网的普及 正确 ...
- 大数据技术原理与应用 第一篇 大数据基础
目录 第一章 大数据概述 一. 大数据时代 1.1 三次信息化浪潮 1.2 信息科技发展 1.3 数据产生方式的变革 1.4 大数据的影响 二. 大数据的概念 2.1 大数据的特征 2.2 大数据关键 ...
最新文章
- window.event.srcElement
- 同一局域网内_Pycharm访问服务器
- wpf项目源代码_C# WPF开源控件库:MahApps.Metro
- 表单令牌阻止数据重复提交
- asp.net站点时间格式与系统时间格式不一致。手动修改
- openlayers加载svg,如何在OpenLayers-3中将SVG图像用作地图标记?
- python怎么打开文件解释_python怎么打开文件的路径?
- DDL/DML/DCL/TCL基本概念
- 高校校园网络设计与实现
- Keil MDK5硬件仿真之基本介绍
- GPS经纬度坐标转UTM坐标(c++)
- WPF界面框架的设计
- Wellcome Sanger研究所选择Arima Genomics作为HiC技术合作伙伴; 公司宣布针对高覆盖HiC的抢先体验活动
- 对于拖延症的最好方法
- C# winform excel根据当前选中内容,自动插入/编辑批注
- 登陆服务器时显示安全登陆,怎么登陆服务器,都有哪些安全问题?
- 联盛德W806-KIT开发板试用评测系列之二:ADC 功能使用与测试
- 基于Java毕业设计志愿者信息管理系统源码+系统+mysql+lw文档+部署软件
- Excel文本处理函数
- 论项目管理与可行性分析的重要性