Apache Pig的前世今生

最近,散仙用了几周的Pig来处理分析我们网站搜索的日志数据,感觉用起来很不错,今天就写篇笔记介绍下Pig的由来,除了搞大数据的人,可能很少有人知道Pig是干啥的,包括一些是搞编程的,但不是搞大数据的,还包括一些既不是搞编程的,也不是搞大数据的,而是从事其他行业的朋友,所以很有可能望文生义,一看标题,就乐了,心里就开始默默的翻译了===》 Apache 猪的笔记,看起来Apache的猪,比较厉害啊,都能写笔记了。 开个玩笑,下面进入正题,散仙,尽量写的通俗易懂,让大家看了之后都能够理解这头Pig到底是干什么的。 Pig最早是雅虎公司的一个基于Hadoop的并行处理架构,后来Yahoo将Pig捐献给Apache(一个开源软件的基金组织)的一个项目,由Apache来负责维护,Pig是一个基于 Hadoop的大规模数据分析平台,它提供的SQL-like语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简 易的操作和编程接口,这一点和FaceBook开源的Hive(一个以SQL方式,操作hadoop的一个开源框架)一样简洁,清晰,易上手! 那么雅虎公司主要使用Pig来干什么呢? 1)吸收和分析用户的行为日志数据(点击流分析、搜索内容分析等),改进匹配和排名算法,以提高检索和广告业务的质量。 2)构建和更新search index。对于web-crawler抓取了的内容是一个流数据的形式,这包括去冗余、链接分析、内容分类、基于点击次数的受欢迎程度计算(PageRank)、最后建立倒排表。 3)处理半结构化数据订阅(data seeds)服务。包括:deduplcaitin(去冗余),geographic location resolution,以及 named entity recognition. 使用Pig来操作hadoop处理海量数据,是非常简单的,如果没有Pig,我们就得手写MapReduce代码,这可是一件非常繁琐的事,因为MapReduce的任务职责非常明确,清洗数据得一个job,处理得一个job,过滤得一个job,统计得一个job,排序得一个job,编写DAG(带先后顺序依赖的)作业很不方便,这还可以接受,但是每次只要改动很小的一个地方,就得重新编译整个job,然后打成jar提交到Hadoop集群上运行,是非常繁琐的,调试还很困难,所以,在现在的大互联网公司或者是电商公司里,很少有纯写MapReduce来处理各种任务的,基本上都会使用一些工具或开源框架来操作。 随着,数据海啸的来临,传统的DB(Oracle、DB2)已经不能满足海量数据处理的需求,MapReduce逐渐成为了数据处理的事实标准,被应用到各行各业中。所以,我们不再期望所有的客户都能快速开发应用相关代码,只能把客户的工作变得简单,就像使用SQL语言,经过简单培训就可以“云”上操作。 Pig就是为了屏蔽MapReduce开发的繁琐细节,为用户提供Pig Latin这样近SQL语言处理能力,让用户可以更方便地处理海量数据。Pig将SQL语句翻译成MR的作业的集合,并通过数据流的方式将其组合起来。 Pig的一个简单处理流程,如下所示:

执行引擎如下所示:

在Pig里面,每一步操作,都是一个数据流,非常容易理解,你想要什么,它就能得到什么,即使不能得到,我们也可以通过轻松扩展UDF来实现,比SQL更容易理解,每一步要做什么,非常容易上手和学习,在大数据时代,了解和使用Pig来分析海量数据是非常容易的。 最后告诉大家一个好消息,在最新的Pig(0.14)发行版里,有两个重要的特性: (1)支持Pig运行在Tez上 (2)支持Orc格式的存储 如果你已经迫不及待想了解Pig了,那么请不要客气,直接点击Pig官网链接http://pig.apache.org/,里面有很全,很丰富的介绍和学习资料等着你的加入! 最后提问大家两个小问题,直接在公众号里,回复即可,

(1)Pig的前世和今生,分别在哪里度过的?

(2)你喜欢其他的Pig吗?

原文发布于微信公众号 - 我是攻城师(woshigcs)

原文发表时间:2015-01-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AILearning

Apache Spark 2.2.0 中文文档

Apache Spark™ 是一个快速的, 用于海量数据处理的通用引擎. 官方网址: http://spark.apache.org 中文文档: htt...

2605
来自专栏华章科技

国外、国内Hadoop的应用现状

摘要:Hadoop是一个开源的高效云计算基础架构平台,其不仅仅在云计算领域用途广泛,还可以支撑搜索引擎服务,作为搜索引擎底层的基础架构系统,同时在海量数据处理、...

1812
来自专栏企鹅号快讯

全球100款大数据工具汇总

次文包含前50款 ? 01 Talend Open Studio 是第一家针对的数据集成工具市场的ETL(数据的提取Extract、传输Transform、载...

2027
来自专栏大数据文摘

后Hadoop时代的大数据架构

2434
来自专栏精讲JAVA

什么是Hadoop,怎样学习Hadoop(文尾有福利)

转自java知音 概述:Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的...

20210
来自专栏IT大咖说

大数据平台快速解决方案

摘要 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化...

3839
来自专栏喔家ArchiSelf

架构大数据应用

数据管理比以往更加复杂,到处都是大数据,包括每个人的想法以及不同的形式:广告 , 社交图谱,信息流 ,推荐 ,市场, 健康, 安全, 政府等等。 过去的三年里,...

1842
来自专栏张善友的专栏

微软用于大数据管理、分析和挖掘的Hadoop发布版HDInsight

SQL Server 2012与SQL Server 2008最重要的区别之一就是与Hadoop的兼容性。Hadoop允许用户处理大量的结构化和非结构化数据并快...

2239
来自专栏xingoo, 一个梦想做发明家的程序员

大数据学习之路(持续更新中...)

在16年8月份至今,一直在努力学习大数据大数据相关的技术,很想了解众多老司机的学习历程。因为大数据涉及的技术很广需要了解的东西也很多,会让很多新手望而却步。所...

2138
来自专栏灯塔大数据

干货|浅谈什么是Hadoop及如何学习Hadoop

首先hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。 HDFS有高容错性的特点,并且设计用来部署在...

36810

扫码关注云+社区

领取腾讯云代金券