[基于Pig,Latin语言的海量数据分析] 海量数据分析
《[基于Pig,Latin语言的海量数据分析] 海量数据分析》由会员分享,可在线阅读,更多相关《[基于Pig,Latin语言的海量数据分析] 海量数据分析(4页珍藏版)》请在装配图网上搜索。
1、基于Pig,Latin语言的海量数据分析 海量数据分析 摘要:伴随互联网的飞速发展,分析海量数据的需求变得十分迫切。针对分布式数据库昂贵及Map-Reduce计算框架中代码难以维护、重用等问题,雅虎研发了自己的海量数据分析平台Pig。Pig平台基于Hadoop的Map-Reduce计算框架并提供类SQL的命令式查询语言Pig Latin,该平台为复杂的海量数据并行计算提供了简易的操作和编程接口。本文对Pig Latin语言四种数据模型、常见表示式及关键操作符进行介绍,并结合实例对Pig Latin脚本程序进行分析。关键词:Pig平台 Pig Latin语言 海量数据 并行分析中图分类号: 文件
2、标识码:A文章编号:1007-941605-0000-001 序言步入网络时代后,企业内部各类数据急剧增加,怎样高效的分析海量数据已成为一个亟待处理的问题,如从账单中分析潜在优质用户,从网站日志中分析用户关心的产品和服务。海量数据现在通常经过分布式系统进行存放和处理,如分布式数据库。分布式数据库通常对底层复杂的集群实现进行封装,并向外提供基于SQL的接口。分布式数据库通常需运行在专用服务器上,实施、维护成本高,一般用户将无法负担其高昂的费用。当下流行的Map-Reduce1并行计算框架仅依靠廉价的PC集群便可提供高效、可靠的计算,适于处理海量数据。Hadoop2作为Map-Reduce的开源实
3、现系统,正被越来越多的用户使用。因为Map-Reduce是一个通用处理模型,造成用户难以快速实现海量数据分析。首先,用户需为JOIN、GROUP等常见分析过程手动编写代码,这些代码往往不能确保正确且难以维护、重用。其次,海量数据分析任务难以直接分解为Map和Reduce两阶段的处理任务,造成一般开发人员难以编写Map-Reduce程序。再者,因为Map函数和Reduce函数间的界限并不是十分显著,造成系统难以优化。雅虎于2021年着手研发的Pig3、4项目结合分布式数据库及Hadoop系统各自的优点为用户提供一个高效、实用的海量数据分析平台。作为Apache的开源项目,Pig平台基于Hadoo
4、p的Map-Reduce计算框架,提供类SQL的编程语言Pig Latin5。相比申明式语言SQL,命令式编程语言Pig Latin更符适用户的编程习惯。同时用户编写Pig程序时无需考虑效率问题,Pig平台会对Pig Latin代码自动进行优化。除此之外,Pig Latin支持以Java语言编写的用户自定义函数,该特征便于用户实现自定义功效。2 Pig Latin语言Pig Latin是在Map-Reduce并行计算框架上构建的类SQL高级查询语言。Pig Latin提供四种基础的数据模型,支持常见的表示式,提供类似SQL关键字功效的常见操作符,为用户以命令式编程的方法分析、处理海量数据提供便
5、利。Pig Latin数据模型包含以下四个部分:原子值:一个原子值是一个不能分割的值,比如字符串或数字。元组:一个元组是一组值的序列,这些值可是任意类型,如。元组可自嵌套,如)。包:一个包是部分元组的集合。包内的元组可反复,如:,。映射:映射是数据项的集合,每一数据项全部有相对应的键以用于查找。映射中的数据项能够是不一样类型的,但为确保查询效率,关键字必需是原子值。比如在映射key ,age 20中,键key被映射到一个有两条元组的包,键age被映射到一个原子值。Pig Latin数据模型许可嵌套使用,用户可依据实际问题定义复杂的数据结构。Pig Latin支持常见的数据类型及运算,以下所表示
6、:Pig Latin常见关系操作符包含“LOAD”、“FOREACH”、“FILTER”、“JOIN”、“ORDER”、“COGROUP”、“STORE”等,如表2所表示。“LOAD”操作符确定要加载的文件,并利用反序列化函数将文件中数据转换为特定结构的元组,最终返回包的句柄。“LOAD”并不马上加载文件,仅当用户保留结果的时候才加载。“FOREACH”操作符对包内每个元组进行处理,常见来进行初始化或数据转换等工作,最终返回经处理后包的句柄。“FILTER”操作符过滤不符合条件的元组。“JOIN”操作符返回两个或多个包的笛卡尔乘积。“ORDER”操作符依据元组中一个或多个域进行排序。“COGR
7、OUP”操作符对两个或多个相关的包进行分组。“GROUP”操作符对一个包进行分组,是“COGROUP”的特例。“STORE”操作符把查询结果保留到文件中,并触发“LOAD”操作符正式加载文件。Pig应用举例假如我们有用户信息和用户浏览网站统计,图1所表示。这些海量数据存放在Hadoop分布式文件系统上,假如要查询“在18岁到30岁使用者查看的前100网站”,可用Pig Latin编写以下简单脚本处理:1 Users = LOAD AS ;2 Pages = LOAD AS ;3 MyUsr = FILTER Users BY age = 18 and age本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。