如何执行Apache Pig,执行模式有几种
Admin 2022-09-26 群英技术资讯 632 次浏览
在本章中,我们将讨论如何执行Apache Pig。
你可以以两种模式运行Apache Pig,即Local(本地)模式和HDFS模式。
在此模式下,所有文件都从本地主机和本地文件系统安装和运行,不需要Hadoop或HDFS。此模式通常用于测试目的。
MapReduce模式是我们使用Apache Pig加载或处理Hadoop文件系统(HDFS)中存在的数据的地方。在这种模式下,每当我们执行Pig Latin语句来处理数据时,会在后端调用一个MapReduce作业,以对HDFS中存在的数据执行特定的操作。
Apache Pig脚本可以通过三种方式执行,即交互模式,批处理模式和嵌入式模式。
交互模式(Grunt shell) - 你可以使用Grunt shell以交互模式运行Apache Pig。在此shell中,你可以输入Pig Latin语句并获取输出(使用Dump运算符)。
批处理模式(脚本) - 你可以通过将Pig Latin脚本写入具有 .pig 扩展名的单个文件中,以批处理模式运行Apache Pig。
嵌入式模式(UDF) - Apache Pig允许在Java等编程语言中定义我们自己的函数(UDF用户定义函数),并在我们的脚本中使用它们。
你可以使用“-x"选项以所需的模式(local/MapReduce)调用Grunt shell,如下所示。
Local模式 | MapReduce模式 |
---|---|
Command(命令) - $ ./pig -x local |
Command(命令)- $ ./pig -x mapreduce |
Output(输出) - ![]() |
Output(输出)- ![]() |
这两个命令都给出了Grunt shell提示符,如下所示。
grunt>
你可以使用“ctrl+d"退出Grunt shell。
在调用Grunt shell之后,可以通过直接输入Pig中的Pig Latin语句来执行Pig脚本。
grunt> customers = LOAD 'customers.txt' USING PigStorage(',');
你可以在文件中编写整个Pig Latin脚本,并使用 -x command 执行它。我们假设在一个名为 sample_script.pig 的文件中有一个Pig脚本,如下所示。
student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING PigStorage(',') as (id:int,name:chararray,city:chararray); Dump student;
现在,你可以在上面的文件中执行脚本,如下所示。
Local模式 | MapReduce模式 |
---|---|
$ pig -x local Sample_script.pig | $ pig -x mapreduce Sample_script.pig |
注意:我们将详细讨论如何在批处理模式和嵌入模式中运行Pig脚本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在本章中,我们将了解如何以批处理模式运行Apache Pig脚本。Pig脚本中的注释在将脚本写入文件时,我们可以在其中包含注释,如下所示。多行注释我们将用'/*'开始多行注释,以'*/'结束。/*
元数据是什么?在大数据时代,元数据具有巨大的潜力,但是很多并不了解元素。因此,这篇文章小编就带大家快速的了解元数据是什么,感兴趣的朋友就继续往看吧。
Load 语句会简单地将数据加载到Apache Pig中的指定关系中。要验证Load语句的执行,必须使用Diagnostic运算符。Pig Latin提供四种不同类型的诊断运算符: Dump运算符、Describe运算符、Explanation运算符、Illustration运算符
GROUP 运算符用于在一个或多个关系中对数据进行分组,它收集具有相同key的数据。语法下面给出了 group 运算符的语法。grunt> Group_data = GROUP Relation_name BY age;
COGROUP 运算符的运作方式与 GROUP 运算符相同。两个运算符之间的唯一区别是 group 运算符通常用于一个关系,而 cogroup 运算符用于涉及两个或多个关系的语句。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008