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 | Вы можете установить приоритет задания для задания, передав одно из следующих значений этому ключу:
|
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, операторы скрипта доступны в истории команд.