Apache Pig - Grunt Shell

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

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

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

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

команда sh

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

Syntax

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

grunt> sh shell command parameters

Example

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

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

команда fs

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

Syntax

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

grunt> sh File System command parameters

Example

Мы можем вызвать команду 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 предоставляет набор служебных команд. К ним относятся служебные команды, такие какclear, help, history, quit, и set; и такие команды, какexec, kill, и runдля управления Pig из оболочки Grunt. Ниже приводится описание служебных команд, предоставляемых оболочкой Grunt.

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

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

Syntax

Вы можете очистить экран от grunt shell с помощью clear как показано ниже.

grunt> clear

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

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

Usage

Вы можете получить список команд 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.

Usage

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

Usage

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

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

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

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

команда выхода

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

Usage

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

grunt> quit

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

Команда exec

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

Syntax

Ниже приведен синтаксис служебной команды exec.

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

Example

Предположим, есть файл с именем student.txt в /pig_data/ каталог HDFS со следующим содержимым.

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

Output

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

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

команда kill

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

Syntax

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

grunt> kill JobId

Example

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

grunt> kill Id_0055

Команда Run

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

Syntax

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

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

Example

Предположим, есть файл с именем student.txt в /pig_data/ каталог HDFS со следующим содержимым.

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 operator как показано ниже.

grunt> Dump;

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

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