使用 Apache Pig 从大数据集中获得所需的信息

Apache Pig 是一个高级过程语言,适合于使用 Hadoop 和 MapReduce 平台来查询大型半结构化数据集。通过允许对分布式数据集进行类似 SQL 的查询,Pig 可以简化 Hadoop 的使用。本文将探索 Pig 背后的语言,并在一个简单的 Hadoop 集群中发现其用途。

Hadoop 的普及和其生态系统的不断壮大并不令人感到意外。Hadoop 不断进步的一个特殊领域是 Hadoop 应用程序的编写。虽然编写 Map 和 Reduce 应用程序并不十分复杂,但这些编程确实需要一些软件开发经验。Apache Pig 改变了这种状况,它在 MapReduce 的基础上创建了更简单的过程语言抽象,为 Hadoop 应用程序提供了一种更加接近结构化查询语言 (SQL) 的接口。因此,您不需要编写一个单独的 MapReduce 应用程序,您可以用 Pig Latin 语言写一个脚本,在集群中自动并行处理与分发该脚本。

Pig Latin 示例

让我们从一个简单的 Pig 示例开始介绍,并剖析该示例。Hadoop 的一个有趣的用法是,在大型数据集中搜索满足某个给定搜索条件的记录(在 Linux® 中被称为 grep)。清单 1 显示了在 Pig 中实现该过程的简单性。在所显示的三行代码中,只有一行是真正的搜索。第一行只是将测试数据集(消息日志)读取到代表元组集合的包中。用一个正则表达式来筛选该数据(元组中的惟一条目,表示为 $0 或 field 1),然后查找字符序列 WARN。最后,在主机文件系统中将这个包存储在一个名为 warnings 的新文件中,这个包现在代表来自消息的包含 WARN 的所有元组。

清单 1. 一个简单的 Pig Latin 脚本
messages = LOAD 'messages';
warns = FILTER messages BY $0 MATCHES '.*WARN+.*';
STORE warns INTO 'warnings';

如您所见,这个简单的脚本实现了一个简单的流,但是,如果直接在传统的 MapReduce 模型中实现它,则需要增加大量的代码。这使得学习 Hadoop 并开始使用数据比原始开发容易得多。

现在让我们更深入地探讨 Pig 语言,然后查看该语言的一些功能的其他示例。

示例演示:

1、准备数据

  messages文件 内容(含有两条WARN的)

  This is WARNING message1

  This is INFOING message2

  This is WARNING message3

2、上传数据

  hadoop dfs -put messages /input
3、运行pig进入grunt

  grunt> messages = load '/input/messages';

  grunt> warns = filter messages by $0 matches '.*WARN+.*';
  grunt> dump warns

  
    (This is WARNING message1)
    (This is WARNING message3)

  grunt> store warns into '/output/wranings'; 保存进入文件(位于hdfs上)

  参考:http://www.ibm.com/developerworks/cn/linux/l-apachepigdataquery/index.html

转载于:https://www.cnblogs.com/jsunday/p/3789690.html

使用 Apache Pig 处理数据5相关推荐

  1. 使用 Apache Pig 处理数据7

    Mapreduce 模式中的 Pig 对于 MapReduce 模式,必须首先确保 Hadoop 正在运行.要做到这一点,最简单的方法是在 Hadoop 文件系统树的根上执行文件列表操作,如 清单 3 ...

  2. Apache Pig教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 Apache Pig 是apache平台下的一个免费开源项目,Pig为大型数据集的处理提供了更高层次的抽象,很多时候数据的处理需要多个MapReduce过程才能实现,使得数据处理过程与该模式 ...

  3. 大数据Hadoop之——数据分析引擎Apache Pig

    文章目录 一.Apache Pig概述 二.Apache Pig架构 1)架构图 2)Apache Pig组件 1.Parser(解析器) 2.Optimizer(优化器) 3.Compiler(编译 ...

  4. ssis组件_使用SSIS Hadoop组件连接到Apache Hive和Apache Pig

    ssis组件 In our previously published articles in this series, we talked about many SSIS Hadoop compone ...

  5. Apache Pig语法简述

    Apache Pig是MapReduce的一个抽象.它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流. 它使用Pig Latin编程语言来写脚本,和 Hive 有一些相似之处.这里简单做 ...

  6. 【php毕业设计】基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码)——网络数据包分析工具

    基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于php+mysql+apache的网络数据包分析工具设计与实现,文章末尾附有本毕业设 ...

  7. Apache Superset可视化数据大屏

    搭建Apache Superset可视化数据大屏 1.下载git并安装 Git (git-scm.com) 在CentOS6以上版本的yum源中有git的版本了,可以直接使用yum源进行安装. $ s ...

  8. Apache Kylin 大数据时代的OLAP利器

    1. OLAP简介 OLAP的历史与基本概念 OLAP全称为在线联机分析应用,是一种对于多维数据分析查询的解决方案.典型的OLAP应用场景包括销售.市场.管理等商务报表,预算决算,经济报表等等. 最早 ...

  9. Apache DolphinScheduler 大数据工作流调度系统

    [本文正在参与 "拥抱开源 - Apache DolphinScheduler 有奖征稿活动],活动地址 Apache DolphinScheduler 大数据工作流调度系统 一.背景 二. ...

最新文章

  1. Entity Freamwork 6连接PostgreSql数据库
  2. elementUI树状图竖向滚动条和横向滚动条问题
  3. Android application 中使用 provided aar 并没有那么简单
  4. Graphviz安装配置及入门(windows安装亲测)
  5. SAP Commerce web service 的扩展
  6. 工作组服务器操作系统,工作组服务器操作系统
  7. python的类里的属性是否可以为列表_是否有Python方法可以访问类的所有非私有和非内置属性?...
  8. [暑假小记]有点堕落——一个星期做完了一辈子的白日梦
  9. 【推荐实践】内容分发场景的多目标架构实践
  10. dorado基本事件样例
  11. 程序员“不会”修电脑的原因
  12. Ubuntu18.04 安装wine
  13. c#语法复习总结(1)-浅谈c#.net
  14. aggs 聚合 取结果
  15. UReport2导出报错
  16. Java代码利用aspose-words将word文档转换成pdf和图片格式(PNG,JPG,JPEG破解 无水印)
  17. python计算字节数_Python len()函数详解:获取字符串长度或字节数
  18. Android打包动态配置签名
  19. 电脑 显示 无可用电源选项 怎么办
  20. QtScrcpy使用指南

热门文章

  1. 为今天的光纤检测选择光纤示波器
  2. Spring系列(三):@ComponentScan注解用法介绍
  3. Nginx进行流量限制的解决方案
  4. 后端开发应该掌握的 Redis 基础
  5. .Net架构必备工具列表
  6. php渲染视图,Laravel 视图渲染:Blade 模板引擎
  7. 大疆口袋相机美颜怎么设置_灵眸Osmo口袋云台相机评测-大疆灵眸云相机使用说明...
  8. shields 徽标_到处都有平面徽标
  9. nda协议_如何将NDA项目添加到您的投资组合
  10. 字节面试官:如何实现Ajax并发请求控制