Apache Pig 是一个高级过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。从编写mapreduce程序到编译部署通常都很耗费时间,有可能运维人员都不懂mapreduce,在这种情况下可以用轻量级的脚本语言Pig来完成,通过Pig引擎生成分布式的mapreduce job最终完成计算。

      Pig 是一个强大的工具,可以在 Hadoop 集群中查询数据。它是如此强大,Yahoo! 估计,其 Hadoop 工作负载中有 40% 至 60% 由 Pig Latin 脚本产生。在 Yahoo! 的 100,000 个 CPU 中,大约有 50% 的 CPU 仍在运行 Hadoop。但 Yahoo! 并不是利用 Pig 的惟一组织。您在 Twitter 中也会发现 Pig(用于处理日志和挖掘微博数据);在 AOL 和 MapQuest 上也会发现它(用于分析和批量数据处理);而在 LinkedIn 上,Pig 用于发现您可能认识的人。据报道,Ebay 使用 Pig 来实现搜索优化,而 adyard 的推荐工具系统有大约一半都使用了 Pig。
安装:
下载0.12.0的Pig: http://www.trieuvan.com/apache/pig/pig-0.12.0/pig-0.12.0.tar.gz
配置:
PIG_HOME=/usr/local/pigPATH=$PATH:$PIG_HOME/binPIG_CLASSPATH=$HADOOP_HOME/conf

实例:

有一段网站的访问日志如下格式
220.181.108.151 - - [31/Jan/2012:00:02:32 +0800] "GET /home.php?mod=space&uid=158&do=album&view=me&from=space HTTP/1.1" 200 8784 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"208.115.113.82 - - [31/Jan/2012:00:07:54 +0800] "GET /robots.txt HTTP/1.1" 200 582 "-" "Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)"220.181.94.221 - - [31/Jan/2012:00:09:24 +0800] "GET /home.php?mod=spacecp&ac=pm&op=showmsg&handlekey=showmsg_3&touid=3&pmid=0&daterange=2&pid=398&tid=66 HTTP/1.1" 200 10070 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"112.97.24.243 - - [31/Jan/2012:00:14:48 +0800] "GET /data/cache/style_2_common.css?AZH HTTP/1.1" 200 57752 "http://f.dataguru.cn/forum-58-1.html" "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A406"

通过如下的Pig脚本完成点击数 排名前20的IP

logRecords = LOAD '/feixu/log/access_log' USING PigStorage(' ') AS (ip:chararray, link:chararray);groupRecords = GROUP logRecords BY ip;countRecords = FOREACH groupRecords GENERATE group AS ip, COUNT(logRecords) AS count;sortRecords = ORDER countRecords BY count DESC;row20 = LIMIT sortRecords 20;STORE row20 INTO '/feixu/log/access_out2' USING PigStorage('\t');

运行的结果如下:

可以看到Pig调用自己生成的MapReduce Job如下:

链接:
http://pig.apache.org/docs/r0.12.0/index.html  (Apache Pig的官方文档)
http://www.ibm.com/developerworks/cn/linux/l-apachepigdataquery/  (IBM developer works的Pig介绍)

Hadoop的脚本语言Pig应用相关推荐

  1. Hadoop学习笔记—16.Pig框架学习

    Hadoop学习笔记-16.Pig框架学习 一.关于Pig:别以为猪不能干活 1.1 Pig的简介 Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin, ...

  2. Hadoop的Python语言封装

    Hadoop的Python语言封装 Gao Ang 发表于 2010年05月25日 11:38 | Hits: 245 Hadoop使 用Java语言实现,编写具体的应用业务除了借助Hadoop的Ja ...

  3. hadoop是什么语言

    Hadoop是什么?Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算. Hadoop框架中 ...

  4. 如何让Hadoop结合R语言做统计和大数据分析?

    广大R语言爱好者借助强大工具RHadoop,可以在大数据领域大展拳脚,这对R语言程序员来说无疑是个喜讯. R是GNU的一个开源工具,具有S语言血统,擅长统计计算和统计制图.由Revolution An ...

  5. Python脚本语言写法

    Python脚本语言写法 脚本语言的开始行,是指文件中的代码用什么可执行程序去运行它,就这么简单. #!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的pyth ...

  6. html脚本语言居中,web前端:CSS--几种常用的水平垂直居中对齐方法

    层叠样式表(英文全称:CascadingStyleSheets)是一种用来表现html(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.css不仅可以静态地修 ...

  7. Java中使用LUA脚本语言

    Lua 是一个小巧的脚本语言.是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ieru ...

  8. 重大改变!Python 或将取代 VBA 成为 Excel 官方脚本语言

    如果微软的 Excel 中支持了人生苦短的 Python,你还会喜欢那个直接且易上手的 VBA 编程吗? 近日,据国外媒体 BLEEPINGCOMPUTER 报道,微软正考虑添加 Python 为官方 ...

  9. python是脚本语言不需要编译器编译执行_都有Python了,还要什么编译器!

    编译的目的是将源码转化为机器可识别的可执行程序,在早期,每次编译都需要重新构建所有东西,后来人们意识到可以让编译器自动完成一些工作,从而提升编译效率. 但"编译器不过是用于代码生成的软机器, ...

最新文章

  1. Silverlight+WCF 新手实例 象棋 棋盘(二)
  2. CSS入门之【背景图像和渐变】
  3. hdu 4101(bfs+博弈)
  4. 世界四大重要检索系统简介
  5. C# 使用Win32 API模拟键盘鼠标操作网页
  6. MongoDB学习笔记三:查询
  7. 防抖函数和节流函数的实现,这个是在某保险公司笔试题遇到的。
  8. 百度获得国内首批无人驾驶乘用车高速公路道路测试资质
  9. oracle分布式事物锁,ORA-02049:超时:分布式事务处理等待锁诊断-Oracle
  10. k8s springboot 文件_用Kubernetes部署Springboot或Nginx,也就一个文件的事
  11. bzoj 3672 利用点分治将CDQ分治推广到树型结构上
  12. android o系统字体下载,fonts软件安卓下载-fonts字体 安卓版v4.0.0-PC6安卓网
  13. JS下载地图离线数据,前端下载谷歌离线地图
  14. 同花顺股票交易接口怎样执行量化挂单策略?
  15. 网站改造为百度智能小程序教程,适合所有网站封装
  16. 模拟网络延迟抖动测试
  17. 面试中常见的问题总结
  18. 利用Tsai-lenz算法实现手眼标定
  19. vertex系列芯片和zynq系列芯片结构的异同_使用ZYNQ实现复杂嵌入式系统,真的好用!...
  20. github语法使用

热门文章

  1. 论文阅读 Jointly Optimize Data Augmentation and Network Training
  2. 一. Linux基础
  3. 教你用JavaScript制作图片回廊
  4. springboot+dubbo+mybatis(注册中心使用的是zookeeper)学习
  5. Linux 配置git同步GitHub代码
  6. 【已解决】部分安卓手机,部分ios机型,调微信的jssdk方法失败
  7. 一个屌丝程序猿的人生(九十)
  8. 解除OA系统Word文档不能修改编辑问题
  9. 485通信c语言编程linux,Rs485通信单片机C程序
  10. android socket代理app,android socket客户端app