`
qindongliang1922
  • 浏览: 2186237 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117593
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125970
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59955
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71334
社区版块
存档分类
最新评论

Apache Pig的前世今生

    博客分类:
  • 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/,里面有很全,很丰富的介绍和学习资料等着你的加入!



扫码关注微信公众号:我是攻城师(woshigcs),如果有什么疑问,技术问题,职业问题或求职问题,等,欢迎在公众号上留言与我探讨!让我们做不一样的攻城师!谢谢大家! 




  • 大小: 20.4 KB
  • 大小: 28.2 KB
0
5
分享到:
评论

相关推荐

    Beginning Apache Pig: Big Data Processing Made Easy [2016]

    Beginning Apache Pig: Big Data Processing Made Easy English | 29 Dec. 2016 | ISBN: 1484223365 | 300 Pages | PDF | 4.9 MB Learn to use Apache Pig to develop lightweight big data applications easily ...

    apache pig 基础及应用

    apache pig 基础及应用,urldecode row_number web日志分析 根据 用户行为 做出 简易的 相似度 判断。

    TutorialsPoint Apache Pig 介绍.epub

    TutorialsPoint Apache Pig 介绍.epub

    Apache Pig的性能优化.pdf

    根据给定的文件信息,我们可以深入探讨Apache Pig的性能优化及其在大数据处理中的角色与优势。首先,让我们从Apache Pig的基本概念入手。 ### Apache Pig概述 Apache Pig是一种高生产力的数据流语言和执行框架,...

    Apache pig:基础及应用

    分享嘉宾:李尤(智联招聘 高级工程师) 分享内容:天讲的主要题目就是Hadoop的应用。我们有两块,一块是日志分析。还有一块是简单的应用。

    [原创]Apache_Pig的一些基础概念及用法总结

    ### Apache Pig的基础概念及用法总结 #### 一、引言 Apache Pig是一种高级的数据流语言,用于在Hadoop平台上处理大规模数据集。它通过提供一种抽象层,简化了复杂的大规模数据处理任务,使用户能够更加专注于数据...

    Apache pig的性能优化

    Apache Pig是一种高级数据流语言和执行框架,用于处理和分析大数据,其运行在Hadoop上。Pig提供了一种名为Pig Latin的数据处理语言,它是一种类SQL语言,可以让用户编写更简洁的代码来处理数据,相对于传统的...

    Apache Pig用法总结

    Apache Pig是一个开源的平台,它为用户提供了一种高级查询语言,即Pig Latin,用于处理大规模数据集。Pig Latin抽象了MapReduce编程模型,从而使得数据分析师能够轻松地编写数据转换脚本,而无需深入Java编程。Pig...

    Apache Hadoop---Pig.docx

    Apache Hadoop 中的 Pig 是一个强大的分布式数据分析引擎,专门设计用于处理大规模数据集。Pig 构建在 Hadoop 平台上,通过提供一个名为 Pig Latin 的高级抽象语言,简化了在 Hadoop 上进行数据分析的过程。Pig ...

    apache-pig-on-storm:使用Apache Pig的Pig Latin生成并运行Apache Storm拓扑

    Apache Pig和Apache Storm是两个在大数据处理领域广泛应用的开源项目。Apache Pig提供了一种高级的、声明性数据处理语言——Pig Latin,使得用户可以专注于数据处理逻辑,而不是底层实现。而Apache Storm则是一个...

    pig-json:用于 Apache Pig 的 Mortar JSON 工具

    用于 Apache Pig 的 Mortar JSON 工具。 里面有什么 此回购中包括: JsonLoader :用于任意 JSON 文件的 Pig 加载函数(不仅仅是 JsonStorage 生成的文件) FromJsonInferSchema :包装 JsonLoader 以将字符数组...

    pig-0.15.0

    《Apache Pig 0.15.0:大数据处理的利器》 Apache Pig 是一个用于大数据分析的平台,它提供了一种高级的编程语言——Pig Latin,使得数据处理变得更加简单和高效。标题“pig-0.15.0”表明我们讨论的是 Apache Pig ...

    Hadoop的前世今生 英文

    《Hadoop的前世今生》是一份深入探讨Hadoop发展历程的英文文档,旨在揭示这款开源大数据处理框架的起源、发展及现状。Hadoop,这个在云计算领域具有重要地位的名字,其背后有着丰富的历史和技术演变。 Hadoop最初是...

    tpch-pig:在Apache Pig中实现的TPC-H查询

    标题中的“tpch-pig”指的是一个项目,它实现了在Apache Pig中运行TPC-H查询的能力。Apache Pig是一个用于大数据分析的平台,它提供了一种高级的编程语言Pig Latin,使得用户可以处理大规模数据集,而无需关注底层的...

    jpmml-pig:Apache Pig 平台的 PMML 评估器库(旧代码库)

    Apache Pig 平台 ( ) 的 PMML 评估器库。 特征 完全支持 PMML 规范版本 3.0 到 4.2。 评估由 [JPMML-Evaluator] ( ) 库处理。 先决条件 Apache Pig 0.8.0 或更新版本。 概述 一个有效的 JPMML-Pig 设置由一个库 JAR...

    pig-0.17.0.tar的安装包,

    《Apache Pig 0.17.0 安装与配置指南》 Apache Pig 是一个用于大数据分析的平台,它提供了一种高级语言 Pig Latin 来处理大规模数据集。Pig-0.17.0 是该平台的一个稳定版本,包含了多项优化和改进,适用于Hadoop...

    pig-0.12.0-cdh5.5.0.tar.gz

    《Apache Pig 0.12.0 在 CDH 5.5.0 上的应用与解析》 Apache Pig 是一个用于大数据分析的高级编程平台,它提供了名为 Pig Latin 的脚本语言,使得用户能够以相对简单的语法处理大规模数据集。Pig-0.12.0 是 Pig 的...

    银行业数据架构设计的前世今生共34页.pdf.zip

    在探讨银行业数据架构设计的前世今生时,我们首先要理解数据架构在银行业务中的核心地位。数据不仅是银行业的生命线,更是决策制定、风险控制、客户关系管理等关键业务环节的基础。这份34页的报告深入剖析了银行业...

Global site tag (gtag.js) - Google Analytics