版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hadoop大数据技术——Hive数据仓库工具湖南软件职业技术大学Hive概述数据计算是MapReduce数据存储是HDFSHive适合离线数据处理Hive最初是构建在Hadoop之上的数据仓库。Hive定义了一种类SQL的查询语言——HQLHive是将HQL转换为MR的语言翻译器。Hive是由faceBook开源,最初用于解决海量结构化的日志数据统计问题,它可以作为ETL工具。Hive是什么Hive产生的背景湖南软件职业技术大学
Hive
的诞生源于
的日志分析需求,面对海量的结构化数据,
Hive
能够以较低的成本完成以往需要大规模数据库才能完成的任务,并且学习门槛相对较低,应用开发灵活且高效。后来Facebook将
Hive
开源给了
Apache,成为
Apache
的一个顶级项目,至此Hive在大数据应用方面得到了快速的发展和普及。Hive的优缺点
Hive的优点Hive适合数据的批处理,解决了传统关系型数据库在海量数据处理上的瓶颈。Hive构建在Hadoop之上,充分利用了集群的存储资源、计算资源。Hive学习使用成本低,支持标准的SQL语法,这样就免去了编写MapReduce程序的过程,减少了开发成本。具有良好的扩展性,且能够实现与其他组件的集成开发。
湖南软件职业技术大学Hive的缺点HQL的表达能力依然有限,不支持迭代计算,有些复杂的运算用HQL不易表达,还需要单独编写MapReduce来实现。Hive的运行效率低、延迟高,这是因为Hive底层计算引擎默认为MapReduce,而MapReduce是离线计算框架。Hive的调优比较困难,由于HQL语句最终会转换为MapReduce任务,所以Hive的调优还需要考虑MapReduce层面的优化。Hive在Hadoop生态系统中的位置湖南软件职业技术大学HIve在生态圈的位置Hive和Hadoop的关系
Hive利用HDFS来存储数据,利用MapReduce来查询分析数据,那么Hive与Hadoop之间的关系总结如下。
湖南软件职业技术大学
Hive需要构建在Hadoop集群之上。
Hive中的所有数据都存储在Hadoop分布式文件系统中。
对HQL查询语句的解释、优化、生成查询计划等过程均是由
Hive
完成的,而查询计划被转化为
MapReduce
任务之后需要运行在
Hadoop
集群之上。湖南软件职业技术大学Hive原理及架构Hive的设计原理
Hive的原理Hive
是一种构建在Hadoop之上的数据仓库工具,可以使用HQL
语句对数据进行分析和查询,而Hive
的底层数据都存储在HDFS中。Hive
在加载数据过程中不会对数据进行任何的修改,只是将数据移动到指定的HDFS目录下,因此,Hive
不支持对数据的修改。
湖南软件职业技术大学支持索引,加快数据查询。内置大量用户自定义函数(userdefinefunction,简称UDF)来对时间、字符串进行操作,支持用户扩展UDF
函数来完成内置函数无法实现的操作。可以直接使用存储在Hadoop
文件系统中的数据。1324不同的存储类型,例如,纯文本文件、HBase
中的文件。HQL语句最终会被转换为MapReduce任务运行在Hadoop集群之上。5Hive的设计原理Hive的特点Hive的体系结构湖南软件职业技术大学Hive的体系架构如图Hive的运行机制湖南软件职业技术大学(1)用户通过用户接口连接hive,编写HQL语句。(2)Hive解析查询并指定逻辑查询计划。(3)Hive将查询转换成MapReduce作业。(4)Hive在Hadoop上执行MapReduce作业。Hive的转换过程湖南软件职业技术大学
HQL转换为MapReduce作业的过程如图所示,有如下几个步骤:(1)由Hive驱动模块中的解释器对用户输入的HQL语句进行词法和语法解析,将HQL语句转换为语法树的形式。(2)抽象语法树的结构仍然很复杂,步方便直接翻译为MapReduce程序,因此还需要把语法树转换为查询块。(3)把查询块转换为逻辑查询计划,里面包含很多逻辑操作符。(4)重写逻辑查询计划进行优化,合并多余操作,减少MapReduce任务数量。(5)将逻辑操作符转换为需要执行的具体MapReduce任务。(6)对生成的MapReduce进行优化,生成最终的任务执行计划。(7)由Hive驱动模块中的执行器,执行最终的MapReduce任务并输出运行结果。Hive的数据类型湖南软件职业技术大学
Hive的基本数据类型Hive的数据类型湖南软件职业技术大学
Hive的复杂数据类型Hive的数据存储湖南软件职业技术大学表
Hive的表在逻辑上由存储的数据和描述表中数据形式的相关元数据组成。数据一般存放在HDFS中,但它也可以放在其他任何Hadoop文件系统中,包括本地文件系统或S3。Hive把元数据存放在关系型数据库中,而不是放在HDFS中。在Hive中创建表时,默认情况下Hive负责管理数据。这意味着Hive把数据移入它的“仓库目录”。另外一种选择是创建一个外部表(externaltable),这会让Hive到仓库目录以外的位置访问数据。分区(Partition)
Hive把表组织成分区。这是一种根据分区列(如日期)的值对表进行粗略划分的机制。使用分区可以加快数据分片的查询速度。以分区的常用情况为例,如日志文件的每条记录包含一个时间戳。如果我们根据日期来对它进行分区,那么同一天的记录就会被存放在同一个分区中。这样做的优点是:对于限制到某个或者某些特定日期的查询,它们的处理可以变得非常高效。因为它们只需要扫描查询范围内分区中的文件。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安全生产知识竞赛试题及答案
- 2026广州天河区小升初语文分班考试模拟卷古诗阅读作文范文评分标准
- 某水泥厂粉尘排放规范
- 2026年山东省滨州市中小学教师招聘考试试卷(含完整答案精细解析)
- 初中语文教师职称申报评审要点解析与教学实施策略
- 高中思想政治《冰雪为媒 精神铸魂:冬奥精神多维价值阐释》教学设计
- 小学三年级数学《认识锐角和钝角》教学设计
- 初中九年级物理(沪粤版)下册《安全用电与电能社会发展》高阶知识清单
- 小学五年级数学《观察物体(三)》深度教学设计
- 小学四年级英语上册Unit 5 Dinners ready词汇教学导学案
- 土石方工程第一次原始地貌实测数据记录表
- 2024年贵州省普通高校招生信息表(普通类本科批-历史组合)
- 初中全英文数学试卷
- 航天禁(限)用工艺目录(2021版)-发文稿(公开)
- 新版苏教版六年级数学下册全册教案
- 2021新安全生产法解读
- 2024年广东清远市国有资产经营有限公司招聘笔试参考题库含答案解析
- 现场应急救护知识讲座老年人课件
- 上海交通大学学生生存手册
- 炼金术化学与哲学教学课件
- 紫苏子、炒紫苏子生产工艺规程
评论
0/150
提交评论