Учебники

Apache Pig — Grunt Shell

После вызова оболочки Grunt вы можете запустить свои сценарии Pig в оболочке. В дополнение к этому, есть некоторые полезные команды оболочки и утилиты, предоставляемые оболочкой Grunt. В этой главе описываются команды оболочки и утилиты, предоставляемые оболочкой Grunt.

Примечание. В некоторых частях этой главы используются такие команды, как Load и Store . Обратитесь к соответствующим главам, чтобы получить подробную информацию о них.

Команды оболочки

Оболочка Grunt Apache Pig в основном используется для написания латинских скриптов Pig. До этого мы можем вызывать любые команды оболочки, используя sh и fs .

Sh Command

Используя команду sh , мы можем вызывать любые команды оболочки из оболочки Grunt. Используя команду sh из оболочки Grunt, мы не можем выполнять команды, которые являются частью среды оболочки ( ex- cd).

Синтаксис

Ниже приведен синтаксис команды sh .

grunt> sh shell command parameters

пример

Мы можем вызвать команду ls оболочки Linux из оболочки Grunt, используя опцию sh, как показано ниже. В этом примере он перечисляет файлы в каталоге / pig / bin / .

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

Команда FS

Используя команду fs , мы можем вызывать любые команды FsShell из оболочки Grunt.

Синтаксис

Ниже приведен синтаксис команды fs .

grunt> sh File System command parameters

пример

Мы можем вызвать команду ls HDFS из оболочки Grunt с помощью команды fs. В следующем примере перечислены файлы в корневом каталоге 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

Таким же образом мы можем вызывать все другие команды оболочки файловой системы из оболочки Grunt с помощью команды fs .

Команды утилиты

Оболочка Grunt предоставляет набор служебных команд. К ним относятся служебные команды, такие как очистка, справка, история, выход и установка ; и такие команды, как exec, kill и run для управления Pig из оболочки Grunt. Ниже приведено описание служебных команд, предоставляемых оболочкой Grunt.

очистить команду

Команда очистки используется для очистки экрана оболочки Grunt.

Синтаксис

Вы можете очистить экран оболочки grunt с помощью команды очистки, как показано ниже.

grunt> clear

Команда помощи

Команда help выдает список команд Pig или свойств Pig.

использование

Вы можете получить список команд Pig, используя команду help, как показано ниже.

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. 

Команда истории

Эта команда отображает список операторов, выполненных / использованных до тех пор, пока вызывается Grunt sell.

использование

Предположим, мы выполнили три оператора с момента открытия оболочки 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(',');
 

Затем, используя команду 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.

использование

Используя эту команду, вы можете установить значения для следующих клавиш.

ключ Описание и значения
default_parallel Вы можете установить число редукторов для задания карты, передавая любое целое число в качестве значения для этого ключа.
отлаживать Вы можете выключить или включить существо отладки в Pig, передавая / выключая эту клавишу.
название работы Вы можете установить имя задания на требуемое задание, передав строковое значение этому ключу.
job.priority

Вы можете установить приоритет задания для задания, передав этому ключу одно из следующих значений:

  • очень низкий
  • низкий
  • нормальный
  • высоко
  • очень высоко
stream.skippath Для потоковой передачи вы можете установить путь, откуда данные не должны передаваться, передавая этот ключ в виде строки в виде строки.

Вы можете установить приоритет задания для задания, передав этому ключу одно из следующих значений:

выйти из команды

Вы можете выйти из оболочки Grunt с помощью этой команды.

использование

Выйдите из оболочки Grunt, как показано ниже.

grunt> quit

Давайте теперь посмотрим на команды, с помощью которых вы можете управлять Apache Pig из оболочки Grunt.

Exec Command

Используя команду exec , мы можем выполнить сценарии Pig из оболочки Grunt.

Синтаксис

Ниже приведен синтаксис служебной команды 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

И, предположим, у нас есть файл сценария с именем sample_script.pig в каталоге / pig_data / HDFS со следующим содержимым.

Sample_script.pig

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

Теперь давайте выполним приведенный выше скрипт из оболочки Grunt с помощью команды exec, как показано ниже.

grunt> exec /sample_script.pig

Выход

Команда exec выполняет сценарий в файле sample_script.pig . Как указано в сценарии, он загружает файл student.txt в Pig и выдает результат оператора Dump, отображающий следующее содержимое.

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

убить команду

Вы можете убить задание из оболочки Grunt с помощью этой команды.

Синтаксис

Ниже приведен синтаксис команды kill .

grunt> kill JobId

пример

Предположим, что есть запущенное задание Pig с идентификатором Id_0055 , вы можете уничтожить его из оболочки Grunt с помощью команды kill , как показано ниже.

grunt> kill Id_0055

Команда запуска

Вы можете запустить скрипт Pig из оболочки Grunt с помощью команды run

Синтаксис

Ниже приведен синтаксис команды 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);

Теперь давайте запустим приведенный выше скрипт из оболочки Grunt с помощью команды run, как показано ниже.

grunt> run /sample_script.pig

Вы можете увидеть вывод скрипта с помощью оператора Dump, как показано ниже.

grunt> Dump;

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

Примечание . Разница между exec и командой run заключается в том, что если мы используем run , операторы из сценария доступны в истории команд.