在Hadoop生态系统中,有这样一个重要的架构,它对外的标志是一个可爱的小猪形象,而名称也同样是Pig,不过你可千万不要以为它就真的和小猪一样无甚本事哦!本期小编就为大家介绍这个可爱的架构,Hadoop生态系统不可或缺的一员——Pig

hadoop的生态系统组成(Hadoop生态系统大揭秘之Pig)(1)

Pig是什么?

hadoop的生态系统组成(Hadoop生态系统大揭秘之Pig)(2)

Pig最早是雅虎公司的一个基于Hadoop的并行处理架构,后来Yahoo将Pig捐献给Apache的一个项目,由Apache来负责维护。Pig是一个基于 Hadoop的大规模数据分析平台,它提供的SQL-like语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简易的操作和编程接口,这一点和FaceBook开源的Hive一样简洁,清晰,易上手! Pig可加载数据、表达转换数据以及存储最终结果。同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。

Pig的特点

hadoop的生态系统组成(Hadoop生态系统大揭秘之Pig)(3)

(1)易编程。Pig Latin程序由一系列的“操作”或“变换”构成,实际上通过“操作”将MapRecude程序变成数据流,使得实现简单的和并行要求高的数据分析任务变 得非常容易,在它所提供的Pig Latin控制台上,可以用几行Pig Latin代码轻松完成TB级的数据集处理任务。 (2)自动优化。系统会对编写的Pig Latin代码自动进行优化,程序员就可以省去优化过程,不必关心效率问题,将大量的时间专注与分析语义方面。 (3)扩展性好。程序员可以按照自己的需求编写自定义函数。其载入(load)、存储(store)、过滤(filter)、连接(join)过程均可定制。Pig在Hadoop生态系统中的地位

hadoop的生态系统组成(Hadoop生态系统大揭秘之Pig)(4)

hadoop的生态系统组成(Hadoop生态系统大揭秘之Pig)(5)

Pig的运行模式

hadoop的生态系统组成(Hadoop生态系统大揭秘之Pig)(6)

Pig有两种运行模式:Local模式和MapReduce模式。Local模式只能访问本地系统文件,一般用于处理小规模的数据集,不需要Hadoop集群环境的支持。MapReduce模式运 行于Hadoop集群环境上,Pig将Pig Latin程序编译为MapReduce作业执行。Pig程序的运行由三种方法:脚本文件、Grunt Shell和程序嵌入式。这三种方法均适用于Local模式和MapReduce模式,在Local模式与MapReduce模式下的执行几乎一样,只需 说明采用的模式就行。

hadoop的生态系统组成(Hadoop生态系统大揭秘之Pig)(7)

Pig的用途

hadoop的生态系统组成(Hadoop生态系统大揭秘之Pig)(8)

经过Pig Latin的转换后变成了一道MapReduce的作业,通过MapReduce多个线程,进程或者独立系统并行执行处理的结果集进行分类和归纳。Map和Reduce两个函数会并行运行,即使不是在同一的系统的同一时刻也在同时运行一套任务,当所有的处理都完成之后,结果将被排序,格式化,并且保存到一个文件。

Pig利用MapReduce将计算分成两个阶段,第一个阶段分解成为小块并且分布到每一个存储数据的节点上进行执行,对计算的压力进行分散,第二个阶段聚合第一个阶段执行的这些结果,这样可以达到非常高的吞吐量,通过不多的代码和工作量就能够驱动上千台机器并行计算,充分的利用计算机的资源,打消运行中的瓶颈。

也就是说,Pig最大的作用就是对mapreduce算法(框架)实现了一套shell脚本 , 类似我们通常熟悉的SQL语句,在Pig中称之为Pig Latin,在这套脚本中我们可以对加载出来的数据进行排序、过滤、求和、分组(group by)、关联(Joining),Pig也可以由用户自定义一些函数对数据集进行操作,也就是传说中的UDF(user-defined functions)。

hadoop的生态系统组成(Hadoop生态系统大揭秘之Pig)(9)

怎么样?听了小编的讲述,也发现Pig的不一般了吧,其实Pig最方便的用处就是可以在极短的时间内写出适宜的脚本,这个或许是大家钟爱Pig最重要的原因了。

文章来源:大数据科技视界(bigdata_horizon)

,