Apache Pig 是一个开源平台,专注于对大型数据集进行数据流处理。它提供了一种高级语言——Pig Latin,使得用户能够以更简洁的方式编写数据处理任务。与传统的 MapReduce (MR) 编程模型相比,Pig Latin 提供了一种更为直观和灵活的方式来处理大数据。
Pig Latin 脚本通过一系列操作符,如 LOAD、FILTER、SORT、JOIN、GROUP、FOREACH 和 STORE,来执行相关的数据操作。这些操作符使用简单的代码行来实现数据转换功能。与 MR 代码相比,Pig Latin 代码在行数上更少,且在某些 IT 行业应用中提供了更好的灵活性。
Apache Pig的架构包括 Pig Latin 解释器,它运行在客户端机器上。Pig Latin 文本被转换成一系列 MR 任务,然后提取 MR 函数并将效果保存到 HDFS 中。在这个过程中,会执行诸如解析、编译、准备和组织数据等不同任务。
当 Apache Pig 编辑器创建脚本时,它们以用户定义的任务形式保存在本地文件系统中。当移动 Pig 脚本时,它与Pig Latin编译器交互,编译器分离任务并使用一系列 MR 任务,同时 Pig 编译器将数据下载到 HDFS(即输入文件)。在启动 MR 操作后,输出文件将保存在 HDFS 中。
Pig 可以在两种模式下工作:本地模式和 MapReduce 模式。模式的选择取决于 Pig 脚本的工作位置以及数据的存储位置。数据可以存储在单个机器上,即本地文件系统,也可以存储在分布式位置,如常规的Hadoop集群。可以使用三种不同的方式运行 Pig 程序。
第一种是非交互式 shell,也称为脚本模式。在这种情况下,需要创建一个文件,将代码上传到文件中并提取脚本。第二种是 grunt shell,即 Apache Pig 命令的交互式 shell。第三种是嵌入式模式,此时使用 JDBC 在 Java 中运行 SQL 程序。
在这种模式下,Pig 在单个 JVM 上工作并访问本地文件系统。这种模式最适合处理小型数据集。在这种情况下,由于Hadoop早期版本的安全性问题,无法移除相应的 map。通过提供 local -x,可以进入本地 Pig 杀模式。在这种模式下,Pig 会持续监控数据上传位置的文件系统。本地 $ pig -x 表示它处于本地模式。
在这种模式下,可能拥有适当的Hadoop设置和 Hadoop 安装。默认情况下,Pig 在 MR 模式下工作。Pig 将发送到 Map cuts 作业的查询进行翻译,并在 Hadoop 集合上运行。可以将这种模式称为完全分布式集合中的 Reduce Map 模式。
LOAD 和 STORE 等 Latin Pig 语句用于从 HDFS 文件系统读取数据和输出。这些语句用于处理数据。
在 MR 操作的处理和执行过程中,会生成中间数据。Pig 将这些数据存储在 HDFS 存储的临时位置。为了保留这些中间数据,必须在 HDFS 中创建一个临时位置。
通过使用 DUMP,可以在退出屏幕上显示最终结果。在生产区域,结果将使用 STORE 操作符存储。
电信行业产生大量数据(电话详情)。为了处理这些数据,使用 Apache Pig 来排除用户呼叫数据详情。第一步是将数据存储在 HDFS 中,使用 Pig 脚本处理上传的数据,并改进用户呼叫数据,下载重要的呼叫信息,如持续时间、频率和其他重要的日志信息。如果存在未识别信息,结果将存储在 HDFS 中。
像这样大量的数据来到系统服务器,并存储在 HDFS 上,并使用脚本进行处理。在此过程中,它将过滤数据、重复数据并产生结果。
使用 Pig 处理数据的 IT 公司包括 Yahoo、Twitter、LinkedIn 和 eBay。他们使用 Apache Pig 来完成大部分 MR 工作。Pig 被广泛用于处理网络日志、标准数据挖掘条件和图像处理。
现在将看到类似于袋子或在某些情况下类似于表格的连接。可以说关系是一个袋子,袋子包含元组,元组包含字段,条目是简单的数据。从图表中,可以说关系是拉丁猪数据模型的最外层结构。一个关系可以有许多袋子。一旦进入数据库,数据将被转换为元组、袋子和关系。因此,猪以不同的方式处理数据。
关系是一个袋子(在某些情况下类似于表格)
关系 = {(10, iPhone), (20, Samsung), (30, Nokia)}
袋子包含元组
元组 = (10, iPhone)
元组包含字段
字段是数据的一部分。在上面的数据集中,product_name 是一个字段。
关系是 Pig Latin 数据模型中最外层的结构
关系代表完整的数据库。关系是一个袋子。准确地说,关系是一个外层袋子。可以称关系为元组的袋子。
Apache Pig 是一个开源平台,致力于分析大型数据库并表示它们与数据流。通过其高级语言 Pig Latin,用户可以提高任务效率并编写文本以处理数据。这些文本被转换为 MapReduce 函数,使用一个称为 Pig Engine 的组件。
Pig 架构由解析器、优化器、编译器和 HDFS 组成。