📜  Apache Pig-Grunt Shell

📅  最后修改于: 2020-12-02 05:31:08             🧑  作者: Mango


调用Grunt Shell之后,您可以在Shell中运行Pig脚本。除此之外,Grunt shell还提供了某些有用的shell和实用程序命令。本章介绍了Grunt shell提供的shell和实用程序命令。

–在本章的某些部分中,使用了诸如LoadStore之类的命令。请参阅相应的章节以获取有关它们的详细信息。

Shell命令

Apache Pig的Grunt外壳程序主要用于编写Pig拉丁脚本。在此之前,我们可以使用shfs调用任何shell命令。

sh命令

使用sh命令,我们可以从Grunt shell调用任何shell命令。使用Grunt外壳程序中的sh命令,我们无法执行外壳程序环境( ex -cd)中的命令。

句法

下面给出的是sh命令的语法。

grunt> sh shell command parameters

我们可以使用sh选项从Grunt shell调用Linux shell的ls命令,如下所示。在此示例中,它列出了/ pig / bin /目录中的文件。

grunt> sh ls
   
pig 
pig_1444799121955.log 
pig.cmd 
pig.py

fs命令

使用fs命令,我们可以从Grunt shell调用任何FsShell命令。

句法

下面给出的是fs命令的语法。

grunt> sh File System command parameters

我们可以使用fs命令从Grunt shell调用HDFS的ls命令。在以下示例中,它列出了HDFS根目录中的文件。

grunt> fs –ls
  
Found 3 items
drwxrwxrwx   - Hadoop supergroup          0 2015-09-08 14:13 Hbase
drwxr-xr-x   - Hadoop supergroup          0 2015-09-09 14:52 seqgen_data
drwxr-xr-x   - Hadoop supergroup          0 2015-09-08 11:30 twitter_data

以同样的方式,我们可以使用fs命令从Grunt shell调用所有其他文件系统shell命令。

实用程序命令

Grunt Shell提供了一组实用程序命令。这些包括实用程序命令,例如清除,帮助,历史记录,退出设置;和诸如exec,kill运行之类的命令从Grunt shell中控制Pig。下面给出了Grunt shell提供的实用程序命令的描述。

清除命令

clear命令用于清除Grunt外壳的屏幕。

句法

您可以使用clear命令清除grunt shell的屏幕,如下所示。

grunt> clear

帮助命令

help命令为您提供Pig命令或Pig属性的列表。

用法

您可以使用help命令获得Pig命令的列表,如下所示。

grunt> help

Commands: ; - See the PigLatin manual for details:
http://hadoop.apache.org/pig
  
File system commands:fs  - Equivalent to Hadoop dfs  command:
http://hadoop.apache.org/common/docs/current/hdfs_shell.html
     
Diagnostic Commands:describe [::] [-out ] [-brief] [-dot|-xml] 
       [-param =]
       [-param_file ] [] - 
       Show the execution plan to compute the alias or for entire script.
       -script - Explain the entire script.
       -out - Store the output into directory rather than print to stdout.
       -brief - Don't expand nested plans (presenting a smaller graph for overview).
       -dot - Generate the output in .dot format. Default is text format.
       -xml - Generate the output in .xml format. Default is text format.
       -param  - See parameter substitution for details.
       alias - Alias to explain.
       dump  - Compute the alias and writes the results to stdout.

Utility Commands: exec [-param =param_value] [-param_file ] 

历史命令

该命令显示了自调用Grunt sell以来已执行/使用过的语句列表。

用法

假设自打开Grunt shell之后,我们已经执行了三个语句。

grunt> customers = LOAD 'hdfs://localhost:9000/pig_data/customers.txt' USING PigStorage(',');
 
grunt> orders = LOAD 'hdfs://localhost:9000/pig_data/orders.txt' USING PigStorage(',');
 
grunt> student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING PigStorage(',');
 

然后,使用history命令将产生以下输出。

grunt> history

customers = LOAD 'hdfs://localhost:9000/pig_data/customers.txt' USING PigStorage(','); 
  
orders = LOAD 'hdfs://localhost:9000/pig_data/orders.txt' USING PigStorage(',');
   
student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING PigStorage(',');
 

设置命令

set命令用于显示/分配给Pig中使用的键值。

用法

使用此命令,可以将值设置为以下键。

Key Description and values
default_parallel You can set the number of reducers for a map job by passing any whole number as a value to this key.
debug You can turn off or turn on the debugging freature in Pig by passing on/off to this key.
job.name You can set the Job name to the required job by passing a string value to this key.
job.priority

You can set the job priority to a job by passing one of the following values to this key −

  • very_low
  • low
  • normal
  • high
  • very_high
stream.skippath For streaming, you can set the path from where the data is not to be transferred, by passing the desired path in the form of a string to this key.

退出命令

您可以使用此命令从Grunt shell退出。

用法

如下所示从Grunt外壳退出。

grunt> quit

现在,让我们看一下可以从Grunt shell控制Apache Pig的命令。

exec命令

使用exec命令,我们可以从Grunt shell执行Pig脚本。

句法

下面给出的是实用程序命令exec的语法。

grunt> exec [–param param_name = param_value] [–param_file file_name] [script]

让我们假设有一个与下面的内容/ pig_data /目录HDFS的命名student.txt文件。

Student.txt

001,Rajiv,Hyderabad
002,siddarth,Kolkata
003,Rajesh,Delhi

并且,假设我们在HDFS的/ pig_data /目录中有一个名为sample_script.pig的脚本文件,内容如下。

Sample_script.pig

student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING PigStorage(',') 
   as (id:int,name:chararray,city:chararray);
  
Dump student;

现在,让我们使用exec命令从Grunt shell执行上述脚本,如下所示。

grunt> exec /sample_script.pig

输出

exec命令执行sample_script.pig中的脚本。按照脚本中的指示,它会将Student.txt文件加载到Pig中,并为您提供转储运运算符显示以下内容的结果。

(1,Rajiv,Hyderabad)
(2,siddarth,Kolkata)
(3,Rajesh,Delhi) 

杀死命令

您可以使用此命令从Grunt Shell中终止作业。

句法

下面给出的是kill命令的语法。

grunt> kill JobId

假设正在运行一个ID为Id_0055的Pig作业,您可以使用kill命令从Grunt shell中杀死它,如下所示。

grunt> kill Id_0055

运行命令

您可以使用run命令从Grunt shell运行Pig脚本

句法

下面给出的是run命令的语法。

grunt> run [–param param_name = param_value] [–param_file file_name] script

让我们假设有一个与下面的内容/ pig_data /目录HDFS的命名student.txt文件。

Student.txt

001,Rajiv,Hyderabad
002,siddarth,Kolkata
003,Rajesh,Delhi

并且,假设我们在本地文件系统中有一个名为sample_script.pig的脚本文件,内容如下。

Sample_script.pig

student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING
   PigStorage(',') as (id:int,name:chararray,city:chararray);

现在,让我们使用run命令从Grunt shell运行上面的脚本,如下所示。

grunt> run /sample_script.pig

您可以使用Dump运算符查看脚本的输出,如下所示。

grunt> Dump;

(1,Rajiv,Hyderabad)
(2,siddarth,Kolkata)
(3,Rajesh,Delhi)

execrun命令之间的区别在于,如果我们使用run ,则脚本历史记录中的脚本语句可用。