使用 Apache Pig 处理数据(4)

Pig 支持大量诊断运算符,您可以用它们来调试 Pig 脚本。正如您在之前的脚本示例中所看到的,DUMP 运算符是无价的,它不仅可以查看数据,还可以查看数据架构。您还可以使用 DESCRIBE 运算符来生成一个关系架构的详细格式(字段和类型)。

EXPLAIN 运算符更复杂一些,但也很有用。对于某个给定的关系,您可以使用 EXPLAIN 来查看如何将物理运算符分组为 Map 和 Reduce 任务(也就是说,如何推导出数据)。

对 Pig Latin 中的诊断运算符及其描述提供了一个列表。


表 2. Pig Latin 诊断运算符
运算符 描述
DESCRIBE   返回关系的架构。  
DUMP   将关系的内容转储到屏幕。  
EXPLAIN   显示 MapReduce 执行计划。  

用户定义的函数

虽然 Pig 在本文探讨的范围内是强大且有用的,但是通过用户定义的函数 (UDF) 可以使它变得更强大。Pig 脚本可以使用您为解析输入数据、格式化输出数据甚至运算符等定义的函数。UDF 是用 Java 语言编写的,允许 Pig 支持自定义处理。UDF 是将 Pig 扩展到您的特定应用程序领域的一种方式。您可以在 中了解有关 UDF 开发的更多信息。

Pig 用户

正如您从这篇短文中可以看到的,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。

展望未来

没有一本书可以完全列举 Pig 背后处理大数据的强大功能。即使对于非开发人员而言,Pig 也可以使得执行 Hadoop 集群上的大数据处理变得很容易。Pig 最初是由 Yahoo! 于 2006 年开发,并且此后不久被迁移到 Apache Software Foundation,使得它在全球范围得到广泛应用。进行这种迁移是因为 Yahoo! 研究人员意识到 Pig 能为非开发人员提供强大的功能。Hadoop 作为一个基础架构已经逐渐开始普及,Hadoop 生态系统将会改变大数据的外观及其日益增长的使用情况。

参考资料

学习

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/65bb2cae26719f59c182fa5ce13409d2.html