Apache Pig - Grunt Shell

Après avoir appelé le shell Grunt, vous pouvez exécuter vos scripts Pig dans le shell. En plus de cela, il existe certaines commandes shell et utilitaires utiles fournies par le shell Grunt. Ce chapitre explique les commandes shell et utilitaires fournies par le shell Grunt.

Note - Dans certaines parties de ce chapitre, les commandes comme Load et Storesont utilisés. Reportez-vous aux chapitres respectifs pour obtenir des informations détaillées à leur sujet.

Commandes du shell

Le shell Grunt d'Apache Pig est principalement utilisé pour écrire des scripts Pig Latin. Avant cela, nous pouvons invoquer toutes les commandes shell en utilisantsh et fs.

Commande sh

En utilisant shcommande, nous pouvons invoquer n'importe quelle commande shell depuis le shell Grunt. En utilisantsh commande depuis le shell Grunt, nous ne pouvons pas exécuter les commandes qui font partie de l'environnement du shell (ex - cd).

Syntax

Ci-dessous, la syntaxe de sh commander.

grunt> sh shell command parameters

Example

Nous pouvons invoquer le ls commande du shell Linux depuis le shell Grunt en utilisant le shoption comme indiqué ci-dessous. Dans cet exemple, il répertorie les fichiers dans le/pig/bin/ annuaire.

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

Commande fs

En utilisant le fs commande, nous pouvons invoquer toutes les commandes FsShell à partir du shell Grunt.

Syntax

Ci-dessous, la syntaxe de fs commander.

grunt> sh File System command parameters

Example

Nous pouvons appeler la commande ls de HDFS à partir du shell Grunt en utilisant la commande fs. Dans l'exemple suivant, il répertorie les fichiers dans le répertoire racine 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

De la même manière, nous pouvons invoquer toutes les autres commandes shell du système de fichiers depuis le shell Grunt en utilisant le fs commander.

Commandes utilitaires

Le shell Grunt fournit un ensemble de commandes utilitaires. Celles-ci incluent des commandes utilitaires telles queclear, help, history, quit, et set; et des commandes telles queexec, kill, et runpour contrôler Pig depuis le shell Grunt. Ci-dessous se trouve la description des commandes utilitaires fournies par le shell Grunt.

Effacer la commande

le clear La commande est utilisée pour effacer l'écran du shell Grunt.

Syntax

Vous pouvez effacer l'écran du grunt shell en utilisant le clear comme indiqué ci-dessous.

grunt> clear

Commande help

le help commande vous donne une liste de commandes Pig ou de propriétés Pig.

Usage

Vous pouvez obtenir une liste des commandes Pig en utilisant le help comme indiqué ci-dessous.

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.

Commande historique

Cette commande affiche une liste d'instructions exécutées / utilisées jusqu'à présent depuis l'appel de la vente Grunt.

Usage

Supposons que nous ayons exécuté trois instructions depuis l'ouverture du 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(',');

Ensuite, en utilisant le history commande produira la sortie suivante.

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(',');

commande set

le set La commande est utilisée pour afficher / affecter des valeurs aux clés utilisées dans Pig.

Usage

À l'aide de cette commande, vous pouvez définir les valeurs des touches suivantes.

Clé Description et valeurs
default_parallel Vous pouvez définir le nombre de réducteurs pour un travail de carte en transmettant n'importe quel nombre entier comme valeur à cette clé.
debug Vous pouvez désactiver ou activer la fonction de débogage dans Pig en passant on / off à cette touche.
job.name Vous pouvez définir le nom de la tâche sur la tâche requise en transmettant une valeur de chaîne à cette clé.
job.priority

Vous pouvez définir la priorité du travail sur un travail en transmettant l'une des valeurs suivantes à cette clé -

  • very_low
  • low
  • normal
  • high
  • very_high
stream.skippath Pour le streaming, vous pouvez définir le chemin à partir duquel les données ne doivent pas être transférées, en passant le chemin souhaité sous forme de chaîne à cette clé.

Commande quit

Vous pouvez quitter le shell Grunt en utilisant cette commande.

Usage

Quittez le shell Grunt comme indiqué ci-dessous.

grunt> quit

Jetons maintenant un coup d'œil aux commandes à l'aide desquelles vous pouvez contrôler Apache Pig à partir du shell Grunt.

Commande exec

En utilisant le exec commande, nous pouvons exécuter des scripts Pig à partir du shell Grunt.

Syntax

Vous trouverez ci-dessous la syntaxe de la commande utilitaire exec.

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

Example

Supposons qu'il existe un fichier nommé student.txt dans le /pig_data/ répertoire de HDFS avec le contenu suivant.

Student.txt

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

Et supposons que nous ayons un fichier de script nommé sample_script.pig dans le /pig_data/ répertoire de HDFS avec le contenu suivant.

Sample_script.pig

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

Maintenant, exécutons le script ci-dessus à partir du shell Grunt en utilisant le exec comme indiqué ci-dessous.

grunt> exec /sample_script.pig

Output

le exec commande exécute le script dans le sample_script.pig. Comme indiqué dans le script, il charge lestudent.txt file dans Pig et vous donne le résultat de l'opérateur Dump affichant le contenu suivant.

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

Commande kill

Vous pouvez tuer un travail du shell Grunt en utilisant cette commande.

Syntax

Vous trouverez ci-dessous la syntaxe du kill commander.

grunt> kill JobId

Example

Supposons qu'il y ait un travail Pig en cours d'exécution ayant un identifiant Id_0055, vous pouvez le tuer depuis le shell Grunt en utilisant le kill commande, comme indiqué ci-dessous.

grunt> kill Id_0055

exécuter la commande

Vous pouvez exécuter un script Pig à partir du shell Grunt en utilisant le run commander

Syntax

Vous trouverez ci-dessous la syntaxe du run commander.

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

Example

Supposons qu'il existe un fichier nommé student.txt dans le /pig_data/ répertoire de HDFS avec le contenu suivant.

Student.txt

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

Et supposons que nous ayons un fichier de script nommé sample_script.pig dans le système de fichiers local avec le contenu suivant.

Sample_script.pig

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

Maintenant, exécutons le script ci-dessus à partir du shell Grunt en utilisant la commande run comme indiqué ci-dessous.

grunt> run /sample_script.pig

Vous pouvez voir la sortie du script en utilisant le Dump operator comme indiqué ci-dessous.

grunt> Dump;

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

Note - La différence entre exec et le run commande est que si nous utilisons run, les instructions du script sont disponibles dans l'historique des commandes.