第4章 使用Hive、Pig和MapReduce处理常见的任务

本章我们将介绍:

使用Hive 将HDFS 中的网络日志数据映射为外部表

使用Hive 动态地为网络日志查询结果创建Hive 表

利用Hive 字符串UDF 拼接网络日志数据的各个字段

使用Hive 截取网络日志的IP 字段并确定其对应国家

使用MapReduce 对新闻档案数据生成n-gram

通过MapReduce 使用分布式缓存查找新闻档案数据中包含关键词的行

使用Pig 加载一个表并执行包含GROUP BY 的SELECT 操作

4.1 介绍

在使用Apache Hive、Pig以及MapReduce 的过程中,会发现有一些需要经常运行的任务。本章的内容对执行一些常见的工作流程提供了相应的解决方案。

这些工具会让你发现解决同样的问题可以有多种不同的方式,选择一个正确的实现是一个艰难的任务。下面的内容会使你的代码更加高效易读。

Hive以及Pig为数据流与有意义的查询之间提供了清晰的抽象层,它们会将这些内容编译成复杂的 MapReduce 工作流。你可以利用 MapReduce 的强大功能对查询进行扩展,而不必考虑底层的 MapReduce 语义。这些工具会解析相关表达并创建合适的 MapReduce 序列。Hive 使用了一种被称之为 HiveQL的声明式类 SQL 语言,你可以通过这种语言对数据进行分析和关联。Pig Latin 书写的 Pig 操作是一种更紧凑精简的形式。

4.2 使用Hive将HDFS中的网络日志数据映射为外部表

我们时常需要为存在于HDFS的数据建立表,而这些数据又不是通过Hive数据仓库管理的。创建一个Hive外部表是处理这种情况最简单的方法。通常情况下,从Hive客户端查询外部表与查询Hive内部管理的表一样。 ...

Get Hadoop实际解决方案手册 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.