具体描述
《Pig编程指南》不仅为初学者讲解ApachePig的基础知识,同时也向有一定使用经验的高级用户介绍更加综合全面的Pig重要特性,如PigLatin脚本语言、控制台shell交互命令以及用于对Pig进行拓展的用户自定义函数(UDF)等。当读者有大数据处理需求时,《Pig编程指南》提供了如何更高效地使用Pig来完成需求的方法。
《Pig编程指南》适合各个层次的Pig用户及开发人员阅读使用。
作者简介
目录信息
1.1 Pig是什么?
1.1.1 Pig是基于Hadoop的
1.1.2 Pig Latin,一种并行数据流语言
1.1.3 Pig的用途
1.1.4 Pig的设计思想
1.2 Pig发展简史
第2章 安装和运行Pig
2.1 下载和安装Pig
2.1.1 从Apache下载Pig软件包
2.1.2 从Cloudera下载Pig
2.1.3 使用Maven下载Pig
2.1.4 下载Pig源码
2.2 运行Pig
2.2.1 本地单机运行Pig
2.2.2 在Hadoop集群上运行Pig
2.2.3 在云服务上运行Pig
2.2.4 命令行使用以及配置选项介绍
2.2.5 返回码
第3章 命令行交互工具Grunt
3.1 在Grunt中输入Pig Latin脚本
3.2 在Grunt中使用HDFS命令
3.3 在Grunt中控制Pig
第4章 Pig数据模型
4.1 数据类型
4.1.1 基本类型
4.1.2 复杂类型
4.1.3 NULL值
4.2 模式
第5章 Pig Latin介绍
5.1 基础知识
5.1.1 大小写敏感
5.1.2 注释
5.2 输入和输出
5.2.1 加载
5.2.2 存储
5.2.3 输出
5.3 关系操作
5.3.1 foreach
5.3.2 Filter
5.3.3 Group
5.3.4 Order by
5.3.5 Distinct
5.3.6 Join
5.3.7 Limit
5.3.8 Sample
5.3.9 Parallel
5.4 用户自定义函数UDF
5.4.1 注册UDF
5.4.2 define命令和UDF
5.4.3 调用静态Java函数
第6章 Pig Latin高级应用
6.1 高级关系操作
6.1.1 foreach的高级功能
6.1.2 使用不同的Join实现方法
6.1.3 cogroup
6.1.4 union
6.1.5 cross
6.2 在Pig中集成遗留代码和MapReduce程序
6.2.1 stream
6.2.2 mapreduce
6.3 非线性数据流
6.4 执行过程控制
6.4.1 set
6.4.2 设置分割器
6.5 Pig Latin预处理器
6.5.1 参数传入
6.5.2 宏
6.5.3 包含其他的Pig Latin脚本
第7章 开发和测试Pig Latin脚本
7.1 开发工具
7.1.1 语法高亮和语法检查
7.1.2 describe
7.1.3 explain
7.1.4 illustrate
7.1.5 Pig统计信息
7.1.6 MapReduce任务运行状态信息
7.1.7 调试技巧
7.2 使用PigUnit测试用户的脚本
第8章 让Pig飞起来
8.1 编写优质的脚本
8.1.1 尽早地并经常地进行过滤
8.1.2 尽早地并经常地进行映射
8.1.3 正确并合理使用join
8.1.4 适当的情况下使用multiquery
8.1.5 选择正确的数据类型
8.1.6 选择合适的并行值
8.2 编写优质的UDF
8.3 调整Pig和Hadoop
8.4 对计算中间结果进行压缩
8.5 数据层优化
8.6 垃圾数据处理
第9章 在Python中嵌入Pig Latin脚本
9.1 编译
9.2 绑定
9.3 运行
9.4 工具方法
第10章 编写评估函数和过滤函数
10.1 使用Java编写评估函数
10.1.1 UDF将在哪里执行
10.1.2 求值函数基本概念
10.1.3 输入和输出模式
10.1.4 错误处理和处理过程信息报告
10.1.5 构造器和将数据从前端传送到后端
10.1.6 重载UDF
10.1.7 运算函数的内存问题
10.2 代数运算接口
10.3 累加器接口
10.4 使用Python写UDF
10.5 书写过滤器函数
第11章 编写加载函数和存储函数
11.1 加载函数
11.1.1 前端执行计划函数
11.1.2 从前端调用传递信息到后端调用
11.1.3 后端数据读取
11.1.4 可扩展的加载函数接口
11.2 存储函数
11.2.1 存储函数前端执行计划
11.2.2 存储函数和UDFContext
11.2.3 写数据
11.2.4 任务失败后数据的清理
11.2.5 存储元数据信息
第12章 Pig和其他Hadoop社区的成员
12.1 Pig和Hive
12.2 Cascading
12.3 NoSQL数据库
12.3.1 HBase
12.3.2 Cassandra
12.4 Hadoop中的元数据
附录A 内置的用户自定义函数和Piggybank
内置UDF
内置加载函数和存储函数
内置求值函数和过滤函数
Piggybank
附录B Hadoop综述
MapReduce
Map阶段
Combiner阶段
Shuffle阶段
Reduce阶段
输出阶段
分布式缓存
故障处理
HDFS
作者介绍
书末说明
· · · · · · (收起)
读后感
最近微软已经在下一代SQL SERVER 2012中准备整合Hadoop了,很有可能YAHOO这家公司最后的命运就是被微软收购掉。 而作为YAHOO数据部分最有价值的拳头产品就是Hadoop。 Pig则是一种引擎,Pig Latin则是基于此引擎上的一种数据查询语言。 整本书12章,目录在此不一一列举。 我...
最近微软已经在下一代SQL SERVER 2012中准备整合Hadoop了,很有可能YAHOO这家公司最后的命运就是被微软收购掉。 而作为YAHOO数据部分最有价值的拳头产品就是Hadoop。 Pig则是一种引擎,Pig Latin则是基于此引擎上的一种数据查询语言。 整本书12章,目录在此不一一列举。 我...
最近微软已经在下一代SQL SERVER 2012中准备整合Hadoop了,很有可能YAHOO这家公司最后的命运就是被微软收购掉。 而作为YAHOO数据部分最有价值的拳头产品就是Hadoop。 Pig则是一种引擎,Pig Latin则是基于此引擎上的一种数据查询语言。 整本书12章,目录在此不一一列举。 我...
最近微软已经在下一代SQL SERVER 2012中准备整合Hadoop了,很有可能YAHOO这家公司最后的命运就是被微软收购掉。 而作为YAHOO数据部分最有价值的拳头产品就是Hadoop。 Pig则是一种引擎,Pig Latin则是基于此引擎上的一种数据查询语言。 整本书12章,目录在此不一一列举。 我...
最近微软已经在下一代SQL SERVER 2012中准备整合Hadoop了,很有可能YAHOO这家公司最后的命运就是被微软收购掉。 而作为YAHOO数据部分最有价值的拳头产品就是Hadoop。 Pig则是一种引擎,Pig Latin则是基于此引擎上的一种数据查询语言。 整本书12章,目录在此不一一列举。 我...
用户评价
**评价四:对现代开发范式的深刻洞察与前瞻性** 这本书的视野远不止于介绍一门语言的基础语法。真正体现其价值的是作者对于整个软件工程领域最新思潮的把握。它巧妙地将语言特性与最新的架构理念——比如微服务通信、事件驱动架构(EDA)的实现细节——相结合进行讲解。书中对于“可测试性”的强调贯穿始终,每一个代码示例都清晰地展示了如何编写易于单元测试和集成测试的代码,这在当前强调DevOps和自动化测试的行业环境下显得尤为重要。此外,关于安全编码实践的章节,也并非泛泛而谈,而是直接指出了几种常见漏洞(如注入攻击、不安全的序列化)的具体利用方式和防御代码,这种“知己知彼”的讲解方式非常有效。我认为,这本书不仅仅是教你如何写代码,更是在培养你作为一名现代软件工程师的“安全意识”和“系统思维”。它成功地预见并解答了我们在未来两年内可能会遇到的技术挑战。
**评价三:细腻的语言风格与绝佳的排版设计** 坦白说,很多技术书籍的阅读体验就像是在啃一本硬邦邦的字典,枯燥乏味。《Pig编程指南》在这方面做出了革命性的改进。作者的文字功力非常深厚,他懂得如何用一种近乎聊天的、充满幽默感的口吻来解释复杂的逻辑。书中充满了恰到好处的比喻,将抽象的概念具象化,读起来完全没有压力,甚至有时候会因为一个巧妙的比喻而会心一笑。更值得称赞的是这本书的排版和视觉设计。代码块的着色方案非常护眼,长难句的断行和缩进处理得非常考究,错误提示和重点标注使用了醒目的颜色区分,使得在快速浏览和深度阅读之间切换自如。这对于长时间面对屏幕阅读的开发者来说,极大地减轻了视觉疲劳。我甚至愿意把它放在床头而不是堆在书架上,随时翻阅。这种对读者体验的极致关注,是很多传统技术出版物所缺失的宝贵品质。
**评价二:实战性极强的项目驱动学习法** 我最欣赏这本书的一点是它纯粹的实战导向。市面上很多教材要么是纯理论的“空中楼阁”,要么是堆砌代码片段的“菜谱”。但《Pig编程指南》采取了一种非常高明的项目驱动学习路径。它从第一个章节开始,就引入了一个小型应用的需求,并随着章节的推进,逐步引入新的语言特性和设计模式来解决当前遇到的技术瓶颈。这种“边学边用,即时反馈”的学习模式,极大地提高了我的学习效率和积极性。尤其是在讲解框架集成的那部分,作者没有选择最新的、最热门的库做演示,而是选取了那些经过时间检验、在工业界使用频率极高的稳定技术栈进行整合。这保证了我们学到的知识不仅时髦,而且管用。我甚至可以把书中的某几个项目结构直接应用到我当前的工作模块中,进行了非常成功的“代码重构”实验。唯一的槽点可能在于,对于完全没有编程经验的“小白”来说,一开始的项目复杂度可能略显陡峭,可能需要额外的查阅资料来跟上节奏。
**评价五:对错误处理与调试艺术的独到见解** 很多技术书在讲解完“如何让程序跑起来”之后就戛然而止了,但真正的挑战往往出现在程序出错的时候。《Pig编程指南》在这方面提供的指导堪称一绝。它用专门的章节详细剖析了如何构建健壮的错误处理机制,从底层异常捕获到上层业务错误码的封装,逻辑链条完整。更精彩的是,作者分享了他自己多年积累的调试“心法”——如何利用特定工具的高级功能进行时间旅行调试(Time Travel Debugging),以及如何高效地在复杂多线程环境中追踪死锁和竞态条件。这些内容不是官方文档能轻易找到的经验之谈。通过书中描述的调试案例,我学会了不再被动地“猜”Bug在哪里,而是能系统性地缩小排查范围。这种对“程序崩溃后该怎么办”的深入探讨,极大地提升了我解决实际生产问题的信心和效率,可以说,这本书的调试篇章的价值,甚至超过了前面所有关于“如何实现功能”的内容。
**评价一:深度与广度兼备的理论基石** 这本书真正让我惊喜的是它在核心概念上的深度挖掘,完全超越了我之前看过的许多入门书籍。它没有停留在表面的语法介绍,而是花了大量篇幅去剖析底层的数据结构和算法是如何在实际编程中发挥作用的。比如,在讲解面向对象设计时,作者不仅仅罗列了封装、继承、多态,而是用一系列精心设计的案例,展示了如何在不同业务场景下权衡这几种范式的优劣,这一点对于我这种想从“会写代码”过渡到“写好代码”的人来说,简直是醍醐灌顶。特别是关于并发控制那一章,复杂的锁机制和同步原语被分解得条理清晰,配合大量的流程图和伪代码示例,让原本晦涩难懂的部分变得触手可及。读完之后,我感觉自己对编程世界的理解不再是零散的知识点堆砌,而是一个拥有坚固地基的知识体系。如果说有什么遗憾,那就是某些高级主题的深入探讨可以再多一点点,但考虑到全书的广度,目前的平衡已经做得非常出色了。它绝对是那种需要反复研读,并且每次都能发现新东西的工具书。
书是不错,但是不建议太依赖pig
好顶赞
好顶赞
翻译得一般般。。。。。。
好顶赞