收藏 分享(赏)

Chapter14-厦门大学-林子雨-大数据技术原理与应用-第十四章-基于Hadoop的数据仓库Hi.ppt

上传人:涵涵文库 文档编号:5513533 上传时间:2019-03-06 格式:PPT 页数:51 大小:3.58MB
下载 相关 举报
Chapter14-厦门大学-林子雨-大数据技术原理与应用-第十四章-基于Hadoop的数据仓库Hi.ppt_第1页
第1页 / 共51页
Chapter14-厦门大学-林子雨-大数据技术原理与应用-第十四章-基于Hadoop的数据仓库Hi.ppt_第2页
第2页 / 共51页
Chapter14-厦门大学-林子雨-大数据技术原理与应用-第十四章-基于Hadoop的数据仓库Hi.ppt_第3页
第3页 / 共51页
Chapter14-厦门大学-林子雨-大数据技术原理与应用-第十四章-基于Hadoop的数据仓库Hi.ppt_第4页
第4页 / 共51页
Chapter14-厦门大学-林子雨-大数据技术原理与应用-第十四章-基于Hadoop的数据仓库Hi.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、,厦门大学计算机科学系 2016年版,林子雨 厦门大学计算机科学系 E-mail: 主页:http:/ 基于Hadoop的数据仓库Hive (PPT版本号:2016年4月6日版本),大数据技术原理与应用,http:/ 2015年8月1日人民邮电出版社出版发行 第1版教材共包含13章内容,第一章 大数据概述 第二章 大数据处理架构Hadoop 第三章 分布式文件系统HDFS 第四章 分布式数据库HBase 第五章 NoSQL数据库 第六章 云数据库 第七章 MapReduce 第八章 流计算 第九章 图计算 第十章 数据可视化 第十一章 大数据在互联网领域的应用 第十二章 大数据在生物医学领域

2、的应用(自学) 第十三章 大数据的其他应用(自学)2016年新增章节(将加入到第2版教材中) 第14章基于Hadoop的数据仓库Hive 第15章Hadoop架构再探讨 第16章Spark,课堂内容与教材对应关系说明,厦门大学计算机科学系 2016年版,林子雨 厦门大学计算机科学系 E-mail: 主页:http:/ 基于Hadoop的数据仓库Hive (第1版教材出版后的2016年新增章节),大数据技术原理与应用,http:/ 讲义PPT 学习指南,免费提供,备课指南 上机习题,授课视频 技术资料,全方位、一站式服务,提纲,14.1 概述 14.2 Hive系统架构 14.3 Hive工作

3、原理 14.4 Hive HA基本原理 14.5 Impala 14.6 Hive编程实践,欢迎访问大数据技术原理与应用教材官方网站: http:/ http:/ 21世纪高等教育计算机规划教材 大数据技术原理与应用 概念、存储、处理、分析与应用 (2015年8月第1版) 厦门大学 林子雨 编著,人民邮电出版社 ISBN:978-7-115-39287-9,14.1 概述,14.1.1 数据仓库概念 14.1.2 传统数据仓库面临的挑战 14.1.3 Hive简介 14.1.4 Hive与Hadoop生态系统中其他组件的关系 14.1.5 Hive与传统数据库的对比分析 14.1.6 Hive

4、在企业中的部署和应用,14.1.1 数据仓库概念,数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。,图14-1 数据仓库的体系结构,(1)无法满足快速增长的海量数据存储需求 (2)无法有效处理不同类型的数据 (3)计算和处理能力不足,14.1.2 传统数据仓库面临的挑战,14.1.3 Hive简介,Hive是一个构建于Hadoop顶层的数据仓库工具 支持大规模数据存储、分析,具有良好的可扩展性 某种程度上可以

5、看作是用户编程接口,本身不存储和处理数据 依赖分布式文件系统HDFS存储数据 依赖分布式并行计算模型MapReduce处理数据 定义了简单的类似SQL 的查询语言HiveQL 用户可以通过编写的HiveQL语句运行MapReduce任务 可以很容易把原来构建在关系数据库上的数据仓库应用程序移植到Hadoop平台上 是一个可以提供有效、合理、直观组织和使用数据的分析工具,14.1.3 Hive简介,Hive具有的特点非常适用于数据仓库,采用批处理方式处理海量数据 Hive需要把HiveQL语句转换成MapReduce任务进行运行 数据仓库存储的是静态数据,对静态数据的分析适合采用批处理方式,不需

6、要快速响应给出结果,而且数据本身也不会频繁变化提供适合数据仓库操作的工具 Hive本身提供了一系列对数据进行提取、转换、加载(ETL)的工具,可以存储、查询和分析存储在Hadoop中的大规模数据 这些工具能够很好地满足数据仓库各种应用场景,14.1.4 Hive与Hadoop生态系统中其他组件的关系,Hive依赖于HDFS 存储数据 Hive依赖于MapReduce 处理数据 在某些场景下Pig可以作为Hive的替代工具 HBase 提供数据的实时访问,14.1.5 Hive与传统数据库的对比分析,Hive在很多方面和传统的关系数据库类似,但是它的底层依赖的是HDFS和MapReduce,所以

7、在很多方面又有别于传统数据库,14.1.6 Hive在企业中的部署和应用,图 企业中一种常见的大数据分析平台部署框架,1. Hive在企业大数据分析平台中的应用,14.1.6 Hive在企业中的部署和应用,图 Facebook的数据仓库架构,基于Oracle的数据仓库系统已经无法满足激增的业务需求 Facebook公司开发了数据仓库工具Hive,并在企业内部进行了大量部署,2.Hive在Facebook公司中的应用,14.2 Hive系统架构,图 Hive系统架构,用户接口模块包括CLI、HWI、JDBC、ODBC、Thrift Server驱动模块(Driver)包括编译器、优化器、执行器等

8、,负责把HiveSQL语句转换成一系列MapReduce作业元数据存储模块(Metastore)是一个独立的关系型数据库(自带derby数据库,或MySQL数据库),14.3 Hive工作原理,14.3.1 SQL语句转换成MapReduce作业的基本原理 14.3.2 Hive中SQL查询转换成MapReduce作业的过程,14.3.1 SQL语句转换成MapReduce的基本原理,1.join的实现原理,1是表User的标记位,2是表Order的标记位,1和2是uid的值,14.3.1 SQL语句转换成MapReduce的基本原理,2. group by的实现原理,存在一个分组(Group

9、 By)操作,其功能是把表Score的不同片段按照rank和level的组合值进行合并,计算不同rank和level的组合值分别有几条记录: select rank, level ,count(*) as value from score group by rank, level,14.3.2 Hive中SQL查询转换成MapReduce作业的过程,当用户向Hive输入一段命令或查询时,Hive需要与Hadoop交互工作来完成该操作: 驱动模块接收该命令或查询编译器 对该命令或查询进行解析编译 由优化器对该命令或查询进行优化计算 该命令或查询通过执行器进行执行,14.3.2 Hive中SQL查

10、询转换成MapReduce作业的过程,第1步:由Hive驱动模块中的编译器对用户输入的SQL语言进行词法和语法解析,将SQL语句转化为抽象语法树的形式 第2步:抽象语法树的结构仍很复杂,不方便直接翻译为MapReduce算法程序,因此,把抽象语法书转化为查询块 第3步:把查询块转换成逻辑查询计划,里面包含了许多逻辑操作符 第4步:重写逻辑查询计划,进行优化,合并多余操作,减少MapReduce任务数量 第5步:将逻辑操作符转换成需要执行的具体MapReduce任务 第6步:对生成的MapReduce任务进行优化,生成最终的MapReduce任务执行计划 第7步:由Hive驱动模块中的执行器,对

11、最终的MapReduce任务进行执行输出,14.3.2 Hive中SQL查询转换成MapReduce作业的过程,当启动MapReduce程序时,Hive本身是不会生成MapReduce算法程序的 需要通过一个表示“Job执行计划”的XML文件驱动执行内置的、原生的Mapper和Reducer模块 Hive通过和JobTracker通信来初始化MapReduce任务,不必直接部署在JobTracker所在的管理节点上执行 通常在大型集群上,会有专门的网关机来部署Hive工具。网关机的作用主要是远程操作和管理节点上的JobTracker通信来执行任务 数据文件通常存储在HDFS上,HDFS由名称节

12、点管理,几点说明:,14.4 Hive HA基本原理,图 Hive HA基本原理,问题:在实际应用中,Hive也暴露出不稳定的问题 解决方案:Hive HA(High Availability),由多个Hive实例进行管理的,这些Hive实例被纳入到一个资源池中,并由HAProxy提供一个统一的对外接口 对于程序开发人员来说,可以把它认为是一台超强“Hive“,14.5 Impala,14.5.1 Impala简介 14.5.2 Impala系统架构 14.5.3 Impala查询执行过程 14.5.4 Impala与Hive的比较,14.5.1 Impala简介,Impala是由Cloude

13、ra公司开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase上的PB级大数据,在性能上比Hive高出330倍 Impala的运行需要依赖于Hive的元数据 Impala是参照 Dremel系统进行设计的 Impala采用了与商用并行关系数据库类似的分布式查询引擎,可以直接与HDFS和HBase进行交互查询 Impala和Hive采用相同的SQL语法、ODBC驱动程序和用户接口,图 Impala与其他组件关系,14.5.2 Impala系统架构,图 Impala系统架构,Impala和Hive、HDFS、HBase等工具是统一部署在一个Hadoop平台上的,Imp

14、ala主要由Impalad,State Store和CLI三部分组成,14.5.2 Impala系统架构,Impala主要由Impalad,State Store和CLI三部分组成 Impalad 负责协调客户端提交的查询的执行 包含Query Planner、Query Coordinator和Query Exec Engine三个模块 与HDFS的数据节点(HDFS DN)运行在同一节点上 给其他Impalad分配任务以及收集其他Impalad的执行结果进行汇总 Impalad也会执行其他Impalad给其分配的任务,主要就是对本地HDFS和HBase里的部分数据进行操作2. State

15、Store 会创建一个statestored进程 负责收集分布在集群中各个Impalad进程的资源信息,用于查询调度 CLI 给用户提供查询使用的命令行工具 还提供了Hue、JDBC及ODBC的使用接口,说明:Impala中的元数据直接存储在Hive中。Impala采用与Hive相同的元数据、SQL语法、ODBC驱动程序和用户接口,从而使得在一个Hadoop平台上,可以统一部署Hive和Impala等分析工具,同时支持批处理和实时查询,14.5.3 Impala查询执行过程,图 Impala查询过程图,14.5.3 Impala查询执行过程,Impala执行查询的具体过程:第0步,当用户提交查

16、询前,Impala先创建一个负责协调客户端提交的查询的Impalad进程,该进程会向Impala State Store提交注册订阅信息,State Store会创建一个statestored进程,statestored进程通过创建多个线程来处理Impalad的注册订阅信息。 第1步,用户通过CLI客户端提交一个查询到impalad进程,Impalad的Query Planner对SQL语句进行解析,生成解析树;然后,Planner把这个查询的解析树变成若干PlanFragment,发送到Query Coordinator,14.5.3 Impala查询执行过程,Impala执行查询的具体过程

17、:第2步,Coordinator通过从MySQL元数据库中获取元数据,从HDFS的名称节点中获取数据地址,以得到存储这个查询相关数据的所有数据节点。 第3步,Coordinator初始化相应impalad上的任务执行,即把查询任务分配给所有存储这个查询相关数据的数据节点。 第4步,Query Executor通过流式交换中间输出,并由Query Coordinator汇聚来自各个impalad的结果。 第5步,Coordinator把汇总后的结果返回给CLI客户端。,14.5.4 Impala与Hive的比较,图 Impala与Hive的对比,Hive与Impala的不同点总结如下: Hive

18、适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询 Hive依赖于MapReduce计算框架,Impala把执行计划表现为一棵完整的执行计划树,直接分发执行计划到各个Impalad执行查询 Hive在执行过程中,如果内存放不下所有数据,则会使用外存,以保证查询能顺序执行完成,而Impala在遇到内存放不下数据时,不会利用外存,所以Impala目前处理查询时会受到一定的限制,14.5.4 Impala与Hive的比较,Hive与Impala的相同点总结如下: Hive与Impala使用相同的存储数据池,都支持把数据存储于HDFS和HBase中 Hive与Impala使用相同的

19、元数据 Hive与Impala中对SQL的解释处理比较相似,都是通过词法分析生成执行计划,图 Impala与Hive的对比,14.5.4 Impala与Hive的比较,总结 Impala的目的不在于替换现有的MapReduce工具 把Hive与Impala配合使用效果最佳 可以先使用Hive进行数据转换处理,之后再使用Impala在Hive处理后的结果数据集上进行快速的数据分析,14.6 Hive编程实践,14.6.1 Hive的安装与配置 14.6.2 Hive的数据类型 14.6.3 Hive基本操作 14.6.4 Hive应用实例:WordCount 14.6.5 Hive编程的优势,H

20、ive上机实践详细过程,请参考厦门大学数据库实验室建设的 “中国高校大数据课程公共服务平台”中的 “大数据课程学生服务站”中的“学习指南”栏目: 学生服务站地址:http:/ 实践教程 http:/ Hive的安装与配置,1. Hive安装,下载安装包apache-hive-1.2.1-bin.tar.gz下载地址:http:/www.apache.org/dyn/closer.cgi/hive/ 解压安装包apache-hive-1.2.1-bin.tar.gz至路径 /usr/local 配置系统环境,将hive下的bin目录添加到系统的path中,2. Hive配置,Hive有三种运行模

21、式,单机模式、伪分布式模式、分布式模式。 均是通过修改hive-site.xml文件实现,如果 hive-site.xml文件不存在,我们可以参考$HIVE_HOME/conf目录下的hive-default.xml.template文件新建。,安装Hive之前需要安装jdk1.6以上版本以及启动Hadoop,14.6.2 Hive的数据类型,表 Hive的基本数据类型,14.6.2 Hive的数据类型,表 Hive的集合数据类型,14.6.3 Hive基本操作,1. create: 创建数据库、表、视图,创建数据库 创建数据库hive hive create database hive; 创

22、建数据库hive。因为hive已经存在,所以会抛出异常,加上if not exists关键字,则不会抛出异常 hive create database if not exists hive;,14.6.3 Hive基本操作,创建表 在hive数据库中,创建表usr,含三个属性id,name,agehive use hive;hivecreate table if not exists usr(id bigint,name string,age int);在hive数据库中,创建表usr,含三个属性id,name,age,存储路径为“/usr/local/hive/warehouse/hive/

23、usr”hivecreate table if not exists hive.usr(id bigint,name string,age int)location /usr/local/hive/warehouse/hive/usr;,14.6.3 Hive基本操作,创建视图 创建视图little_usr,只包含usr表中id,age属性 hivecreate view little_usr as select id,age from usr;,14.6.3 Hive基本操作,2. show:查看数据库、表、视图,查看数据库 查看Hive中包含的所有数据库hive show database

24、s; 查看Hive中以h开头的所有数据库hiveshow databases like h.*; 查看表和视图 查看数据库hive中所有表和视图hive use hive;hive show tables; 查看数据库hive中以u开头的所有表和视图hive show tables in hive like u.*;,14.6.3 Hive基本操作,3. load:向表中装载数据,把目录/usr/local/data下的数据文件中的数据装载进usr表并覆盖原有数据hive load data local inpath /usr/local/data overwrite into table u

25、sr;把目录/usr/local/data下的数据文件中的数据装载进usr表不覆盖原有数据hive load data local inpath /usr/local/data into table usr;把分布式文件系统目录hdfs:/master_server/usr/local/data下的数据文件数据装载进usr表并覆盖原有数据hive load data inpath hdfs:/master_server/usr/local/data overwrite into table usr;,14.6.3 Hive基本操作,4. insert:向表中插入数据或从表中导出数据,向表usr

26、1中插入来自usr表的数据并覆盖原有数据hive insert overwrite table usr1 select * from usr where age=10; 向表usr1中插入来自usr表的数据并追加在原有数据后hive insert into table usr1 select * from usr where age=10;,14.6.4 Hive应用实例:WordCount,词频统计任务要求: 首先,需要创建一个需要分析的输入数据文件 然后,编写HiveQL语句实现WordCount算法具体步骤如下: (1)创建input目录,其中input为输入目录。命令如下:$ cd /

27、usr/local/hadoop$ mkdir input(2)在input文件夹中创建两个测试文件file1.txt和file2.txt,命令如下:$ cd /usr/local/hadoop/input$ echo “hello world“ file1.txt$ echo “hello hadoop“ file2.txt,14.6.4 Hive应用实例:WordCount,(3)进入hive命令行界面,编写HiveQL语句实现WordCount算法,命令如下:$ hivehive create table docs(line string);hive load data inpath i

28、nput overwrite into table docs;hivecreate table word_count as select word, count(1) as count from(select explode(split(line, )as word from docs) wgroup by wordorder by word; 执行完成后,用select语句查看运行结果如下:,W,docs,14.6.5 Hive的编程优势,WordCount算法在MapReduce中的编程实现和Hive中编程实现的主要不同点: 1. 采用Hive实现WordCount算法需要编写较少的代码量

29、 在MapReduce中,WordCount类由63行Java代码编写而成 在Hive中只需要编写7行代码 2. 在MapReduce的实现中,需要进行编译生成jar文件来执行算法,而在Hive中不需要 HiveQL语句的最终实现需要转换为MapReduce任务来执行,这都是由Hive框架自动完成的,用户不需要了解具体实现细节,本章小结,本章详细介绍了Hive的基本知识。Hive是一个构建于Hadoop顶层的数据仓库工具,主要用于对存储在 Hadoop 文件中的数据集进行数据整理、特殊查询和分析处理。Hive在某种程度上可以看作是用户编程接口,本身不存储和处理数据,依赖HDFS存储数据,依赖M

30、apReduce处理数据。 Hive支持使用自身提供的命令行CLI、简单网页HWI访问方式,及通过Karmasphere、Hue、Qubole等工具的外部访问。 Hive在数据仓库中的具体应用中,主要用于报表中心的报表分析统计上。在Hadoop集群上构建的数据仓库由多个Hive进行管理,具体实现采用Hive HA原理的方式,实现一台超强“hive“。 Impala作为新一代开源大数据分析引擎,支持实时计算,并在性能上比Hive高出330倍,甚至在将来的某一天可能会超过Hive的使用率而成为Hadoop上最流行的实时计算平台。 本章最后以单词统计为例,详细介绍了如何使用Hive进行简单编程。,附

31、录:主讲教师,单位:厦门大学计算机科学系 E-mail: 个人网页:http:/ 数据库实验室网站:http:/,主讲教师:林子雨,扫一扫访问个人主页,林子雨,男,1978年出生,博士(毕业于北京大学),现为厦门大学计算机科学系助理教授(讲师),曾任厦门大学信息科学与技术学院院长助理、晋江市发展和改革局副局长。中国高校首个“数字教师”提出者和建设者,厦门大学数据库实验室负责人,厦门大学云计算与大数据研究中心主要建设者和骨干成员,2013年度厦门大学奖教金获得者。主要研究方向为数据库、数据仓库、数据挖掘、大数据、云计算和物联网,并以第一作者身份在软件学报计算机学报和计算机研究与发展等国家重点期

32、刊以及国际学术会议上发表多篇学术论文。作为项目负责人主持的科研项目包括1项国家自然科学青年基金项目(No.61303004)、1项福建省自然科学青年基金项目(No.2013J05099)和1项中央高校基本科研业务费项目(No.2011121049),同时,作为课题负责人完成了国家发改委城市信息化重大课题、国家物联网重大应用示范工程区域试点泉州市工作方案、2015泉州市互联网经济调研等课题。编著出版中国高校第一本系统介绍大数据知识的专业教材大数据技术原理与应用并成为畅销书籍,编著并免费网络发布40余万字中国高校第一本闪存数据库研究专著闪存数据库概念与技术;主讲厦门大学计算机系本科生课程数据库系统

33、原理和研究生课程分布式数据库大数据技术基础。具有丰富的政府和企业信息化培训经验,曾先后给中国移动通信集团公司、福州马尾区政府、福建省物联网科学研究院、石狮市物流协会、厦门市物流协会、福建龙岩卷烟厂等多家单位和企业开展信息化培训,累计培训人数达2000人以上。,附录:大数据学习教材推荐,欢迎访问大数据技术原理与应用概念、存储、处理、分析与应用教材官方网站:http:/ 库HBase、NoSQL数据库、云数据库、分布式并行编程模型MapReduce、流计算、图计算、数据可视化以及大数据在互联网、生物医学和物流等各个领域的应用。在Hadoop、HDFS、HBase和MapReduce等重要章节,安排了入门级的实践操作,让读者更好地学习和掌握大数据关键技术。本书可以作为高等院校计算机专业、信息管理等相关专业的大数据课程教材,也可供相关技术人员参考、学习、培训之用。,附录:中国高校大数据课程公共服务平台,扫一扫访问平台主页,http:/ of Computer Science, Xiamen University, 2016,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报