Maiale Apache - Grunt Shell

Dopo aver richiamato la shell Grunt, puoi eseguire i tuoi script Pig nella shell. In aggiunta a ciò, ci sono alcuni utili comandi di shell e di utilità forniti dalla shell Grunt. Questo capitolo spiega la shell e i comandi di utilità forniti dalla shell Grunt.

Note - In alcune parti di questo capitolo, i comandi come Load e Storesono usati. Fare riferimento ai rispettivi capitoli per ottenere informazioni dettagliate su di essi.

Comandi della shell

La shell Grunt di Apache Pig viene utilizzata principalmente per scrivere script latini di Pig. Prima di ciò, possiamo invocare qualsiasi comando di shell usandosh e fs.

sh Comando

Utilizzando shpossiamo richiamare qualsiasi comando di shell dalla shell di Grunt. Utilizzandosh comando dalla shell Grunt, non possiamo eseguire i comandi che fanno parte dell'ambiente shell (ex - cd).

Syntax

Di seguito è riportata la sintassi di sh comando.

grunt> sh shell command parameters

Example

Possiamo invocare il file ls comando della shell Linux dalla shell Grunt usando il shopzione come mostrato di seguito. In questo esempio, elenca i file in/pig/bin/ directory.

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

Comando fs

Usando il fs comando, possiamo richiamare qualsiasi comando FsShell dalla shell Grunt.

Syntax

Di seguito è riportata la sintassi di fs comando.

grunt> sh File System command parameters

Example

Possiamo richiamare il comando ls di HDFS dalla shell Grunt usando il comando fs. Nell'esempio seguente, elenca i file nella directory principale di 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

Allo stesso modo, possiamo richiamare tutti gli altri comandi della shell del file system dalla shell Grunt usando il fs comando.

Comandi di utilità

La shell Grunt fornisce una serie di comandi di utilità. Questi includono comandi di utilità comeclear, help, history, quit, e set; e comandi comeexec, kill, e runper controllare Pig dal guscio Grunt. Di seguito è riportata la descrizione dei comandi di utilità forniti dalla shell Grunt.

comando chiaro

Il clear comando viene utilizzato per cancellare lo schermo della shell Grunt.

Syntax

Puoi cancellare lo schermo della shell grugnito usando il clear comando come mostrato di seguito.

grunt> clear

comando di aiuto

Il help comando ti fornisce un elenco di comandi Pig o proprietà Pig.

Usage

Puoi ottenere un elenco di comandi Pig usando il help comando come mostrato di seguito.

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.

Comando storia

Questo comando mostra un elenco di istruzioni eseguite / utilizzate finora da quando è stata invocata la vendita Grunt.

Usage

Supponiamo di aver eseguito tre istruzioni dall'apertura della 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(',');

Quindi, utilizzando il history Il comando produrrà il seguente output.

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

Il set viene utilizzato per mostrare / assegnare valori alle chiavi usate in Pig.

Usage

Utilizzando questo comando, è possibile impostare i valori sulle seguenti chiavi.

Chiave Descrizione e valori
default_parallel È possibile impostare il numero di riduzioni per un lavoro di mappatura passando qualsiasi numero intero come valore a questa chiave.
debug Puoi disattivare o attivare la funzione di debug in Pig passando on / off a questa chiave.
job.name È possibile impostare il nome del lavoro sul lavoro richiesto passando un valore stringa a questa chiave.
job.priority

È possibile impostare la priorità del lavoro su un lavoro passando uno dei seguenti valori a questa chiave:

  • very_low
  • low
  • normal
  • high
  • very_high
stream.skippath Per lo streaming, è possibile impostare il percorso da cui i dati non devono essere trasferiti, passando il percorso desiderato sotto forma di una stringa a questa chiave.

esci da Command

Puoi uscire dalla shell Grunt usando questo comando.

Usage

Esci dalla shell Grunt come mostrato di seguito.

grunt> quit

Diamo ora un'occhiata ai comandi che consentono di controllare Apache Pig dalla shell Grunt.

comando exec

Usando il exec possiamo eseguire gli script Pig dalla shell Grunt.

Syntax

Di seguito è riportata la sintassi del comando di utilità exec.

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

Example

Supponiamo che ci sia un file denominato student.txt nel /pig_data/ directory di HDFS con il seguente contenuto.

Student.txt

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

E, supponiamo di avere un file di script denominato sample_script.pig nel /pig_data/ directory di HDFS con il seguente contenuto.

Sample_script.pig

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

Ora, eseguiamo lo script precedente dalla shell Grunt usando il exec comando come mostrato di seguito.

grunt> exec /sample_script.pig

Output

Il exec comando esegue lo script nel file sample_script.pig. Come indicato nello script, carica il filestudent.txt file in Pig e fornisce il risultato dell'operatore Dump che mostra il seguente contenuto.

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

kill Command

Puoi terminare un lavoro dalla shell Grunt usando questo comando.

Syntax

Di seguito è riportata la sintassi di kill comando.

grunt> kill JobId

Example

Supponiamo che ci sia un lavoro Pig in esecuzione con id Id_0055, puoi ucciderlo dalla shell Grunt usando il kill comando, come mostrato di seguito.

grunt> kill Id_0055

eseguire Command

Puoi eseguire uno script Pig dalla shell Grunt usando il run comando

Syntax

Di seguito è riportata la sintassi di run comando.

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

Example

Supponiamo che ci sia un file denominato student.txt nel /pig_data/ directory di HDFS con il seguente contenuto.

Student.txt

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

E, supponiamo di avere un file di script denominato sample_script.pig nel filesystem locale con il seguente contenuto.

Sample_script.pig

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

Ora, eseguiamo lo script precedente dalla shell Grunt usando il comando run come mostrato di seguito.

grunt> run /sample_script.pig

Puoi vedere l'output dello script usando il file Dump operator come mostrato di seguito.

grunt> Dump;

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

Note - La differenza tra exec e il run comando è che se usiamo run, le istruzioni dello script sono disponibili nella cronologia dei comandi.