Apache Pig - Grunt Shell
Depois de invocar o shell Grunt, você pode executar seus scripts Pig no shell. Além disso, existem certos shell úteis e comandos de utilitário fornecidos pelo shell Grunt. Este capítulo explica o shell e os comandos de utilitário fornecidos pelo shell Grunt.
Note - Em algumas partes deste capítulo, os comandos como Load e Storesão usados. Consulte os respectivos capítulos para obter informações detalhadas sobre eles.
Comandos Shell
O shell Grunt do Apache Pig é usado principalmente para escrever scripts do Pig Latin. Antes disso, podemos invocar qualquer comando shell usandosh e fs.
Comando sh
Usando shcomando, podemos invocar qualquer comando shell do shell Grunt. Usandosh comando do shell Grunt, não podemos executar os comandos que fazem parte do ambiente do shell (ex - cd).
Syntax
Dada a seguir é a sintaxe de sh comando.
grunt> sh shell command parameters
Example
Podemos invocar o ls comando do shell Linux a partir do shell Grunt usando o shopção como mostrado abaixo. Neste exemplo, ele lista os arquivos no/pig/bin/ diretório.
grunt> sh ls
pig
pig_1444799121955.log
pig.cmd
pig.py
Comando fs
Usando o fs , podemos invocar quaisquer comandos FsShell do shell Grunt.
Syntax
Dada a seguir é a sintaxe de fs comando.
grunt> sh File System command parameters
Example
Podemos invocar o comando ls do HDFS a partir do shell Grunt usando o comando fs. No exemplo a seguir, ele lista os arquivos no diretório raiz 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
Da mesma forma, podemos invocar todos os outros comandos do shell do sistema de arquivos do shell Grunt usando o fs comando.
Comandos utilitários
O shell Grunt fornece um conjunto de comandos utilitários. Isso inclui comandos de utilitários comoclear, help, history, quit, e set; e comandos comoexec, kill, e runpara controlar Pig do shell Grunt. A seguir, está a descrição dos comandos utilitários fornecidos pelo shell Grunt.
comando claro
o clear comando é usado para limpar a tela do shell Grunt.
Syntax
Você pode limpar a tela do escudo do grunhido usando o clear comando como mostrado abaixo.
grunt> clear
comando de ajuda
o help comando fornece uma lista de comandos do Pig ou propriedades do Pig.
Usage
Você pode obter uma lista de comandos Pig usando o help comando como mostrado abaixo.
grunt> help
Commands: <pig latin statement>; - See the PigLatin manual for details:
http://hadoop.apache.org/pig
File system commands:fs <fs arguments> - Equivalent to Hadoop dfs command:
http://hadoop.apache.org/common/docs/current/hdfs_shell.html
Diagnostic Commands:describe <alias>[::<alias] - Show the schema for the alias.
Inner aliases can be described as A::B.
explain [-script <pigscript>] [-out <path>] [-brief] [-dot|-xml]
[-param <param_name>=<pCram_value>]
[-param_file <file_name>] [<alias>] -
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 <param_name - See parameter substitution for details.
-param_file <file_name> - See parameter substitution for details.
alias - Alias to explain.
dump <alias> - Compute the alias and writes the results to stdout.
Utility Commands: exec [-param <param_name>=param_value] [-param_file <file_name>] <script> -
Execute the script with access to grunt environment including aliases.
-param <param_name - See parameter substitution for details.
-param_file <file_name> - See parameter substitution for details.
script - Script to be executed.
run [-param <param_name>=param_value] [-param_file <file_name>] <script> -
Execute the script with access to grunt environment.
-param <param_name - See parameter substitution for details.
-param_file <file_name> - See parameter substitution for details.
script - Script to be executed.
sh <shell command> - Invoke a shell command.
kill <job_id> - Kill the hadoop job specified by the hadoop job id.
set <key> <value> - Provide execution parameters to Pig. Keys and values are case sensitive.
The following keys are supported:
default_parallel - Script-level reduce parallelism. Basic input size heuristics used
by default.
debug - Set debug on or off. Default is off.
job.name - Single-quoted name for jobs. Default is PigLatin:<script name>
job.priority - Priority for jobs. Values: very_low, low, normal, high, very_high.
Default is normal stream.skippath - String that contains the path.
This is used by streaming any hadoop property.
help - Display this message.
history [-n] - Display the list statements in cache.
-n Hide line numbers.
quit - Quit the grunt shell.
história Comando
Este comando exibe uma lista de instruções executadas / usadas até agora desde que a venda Grunt foi invocada.
Usage
Suponha que executamos três instruções desde a abertura do shell Grunt.
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(',');
Então, usando o history comando irá produzir a seguinte saída.
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 Command
o set comando é usado para mostrar / atribuir valores às chaves usadas no Pig.
Usage
Usando este comando, você pode definir valores para as seguintes chaves.
Chave | Descrição e valores |
---|---|
default_parallel | Você pode definir o número de redutores para um trabalho de mapa passando qualquer número inteiro como um valor para esta chave. |
debug | Você pode desligar ou ligar a freature de depuração no Pig passando on / off para esta chave. |
job.name | Você pode definir o nome do trabalho para o trabalho necessário, passando um valor de string para esta chave. |
job.priority | Você pode definir a prioridade do trabalho para um trabalho, passando um dos seguintes valores para esta chave -
|
stream.skippath | Para streaming, você pode definir o caminho de onde os dados não devem ser transferidos, passando o caminho desejado na forma de uma string para essa chave. |
sair do comando
Você pode sair do shell Grunt usando este comando.
Usage
Saia do shell Grunt conforme mostrado abaixo.
grunt> quit
Vamos agora dar uma olhada nos comandos usando os quais você pode controlar o Apache Pig a partir do shell do Grunt.
Comando exec
Usando o exec comando, podemos executar scripts Pig a partir do shell Grunt.
Syntax
A seguir está a sintaxe do comando do utilitário exec.
grunt> exec [–param param_name = param_value] [–param_file file_name] [script]
Example
Vamos supor que haja um arquivo chamado student.txt no /pig_data/ diretório do HDFS com o seguinte conteúdo.
Student.txt
001,Rajiv,Hyderabad
002,siddarth,Kolkata
003,Rajesh,Delhi
E, suponha que temos um arquivo de script chamado sample_script.pig no /pig_data/ diretório do HDFS com o seguinte conteúdo.
Sample_script.pig
student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING PigStorage(',')
as (id:int,name:chararray,city:chararray);
Dump student;
Agora, vamos executar o script acima a partir do shell Grunt usando o exec comando como mostrado abaixo.
grunt> exec /sample_script.pig
Output
o exec comando executa o script no sample_script.pig. Conforme indicado no script, ele carrega ostudent.txt arquivo no Pig e fornece o resultado do operador Dump exibindo o seguinte conteúdo.
(1,Rajiv,Hyderabad)
(2,siddarth,Kolkata)
(3,Rajesh,Delhi)
comando matar
Você pode eliminar um trabalho do shell Grunt usando este comando.
Syntax
Dada a seguir está a sintaxe do kill comando.
grunt> kill JobId
Example
Suponha que haja um trabalho do Pig em execução com id Id_0055, você pode matá-lo do shell Grunt usando o kill comando, como mostrado abaixo.
grunt> kill Id_0055
comando de execução
Você pode executar um script Pig a partir do shell Grunt usando o run comando
Syntax
Dada a seguir está a sintaxe do run comando.
grunt> run [–param param_name = param_value] [–param_file file_name] script
Example
Vamos supor que haja um arquivo chamado student.txt no /pig_data/ diretório do HDFS com o seguinte conteúdo.
Student.txt
001,Rajiv,Hyderabad
002,siddarth,Kolkata
003,Rajesh,Delhi
E, suponha que temos um arquivo de script chamado sample_script.pig no sistema de arquivos local com o seguinte conteúdo.
Sample_script.pig
student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING
PigStorage(',') as (id:int,name:chararray,city:chararray);
Agora, vamos executar o script acima do shell do Grunt usando o comando run conforme mostrado abaixo.
grunt> run /sample_script.pig
Você pode ver a saída do script usando o Dump operator como mostrado abaixo.
grunt> Dump;
(1,Rajiv,Hyderabad)
(2,siddarth,Kolkata)
(3,Rajesh,Delhi)
Note - A diferença entre exec e a run comando é que se usarmos run, as instruções do script estão disponíveis no histórico de comandos.