Команды оболочки и утилиты
Команды оболочки
fs
Вызывает любую команду FsShell изнутри скрипта Pig или оболочки Grunt.
Синтаксис
| fs подкоманда параметры_подкоманды |
Термины
| подкоманда | Команда FsShell. |
| параметры_подкоманды | Параметры команды FsShell. |
Использование
Используйте команду fs для вызова любой команды FsShell изнутри скрипта Pig или оболочки Grunt. Команда fs значительно расширяет набор поддерживаемых команд файловой системы и возможности, поддерживаемые для существующих команд, таких как ls, которые теперь будут поддерживать шаблоны. Полный список команд FsShell см. в Руководстве по оболочке файловой системы.
Примеры
В этих примерах создается каталог, копируется файл, перечисляются файлы.
fs -mkdir /tmp fs -copyFromLocal file-x file-y fs -ls file-y
sh
Вызывает любую команду оболочки sh изнутри скрипта Pig или оболочки Grunt.
Синтаксис
| sh подкоманда параметры_подкоманды |
Термины
| подкоманда | Команда оболочки sh. |
| параметры_подкоманды | Параметры команды оболочки sh. |
Использование
Используйте команду sh для вызова любой команды оболочки sh изнутри скрипта Pig или оболочки Grunt.
Обратите внимание, что из команды sh можно запускать только реальные программы. Команды, такие как cd, не являются программами, а частью среды оболочки, и, следовательно, их нельзя выполнить, если пользователь не вызовет оболочку явно, например, «bash cd».
Пример
В этом примере вызывается команда ls.
grunt> sh ls bigdata.conf nightly.conf ..... grunt>
Команды утилит
clear
Очистить экран оболочки Pig grunt и установить курсор в начало экрана.
Синтаксис
| clear |
Термины
| key | Описание. |
| none | без параметров |
Пример
В этом примере команда clear очищает оболочку Pig grunt.
grunt> clear
exec
Выполнить скрипт Pig.
Синтаксис
| exec [–param param_name = param_value] [–param_file file_name] [script] |
Термины
| –param param_name = param_value | См. Замену параметров. |
| –param_file file_name | См. Замену параметров. |
| script | Имя скрипта Pig. |
Использование
Используйте команду exec для запуска скрипта Pig без взаимодействия между скриптом и оболочкой Grunt (режим пакетной обработки). Псевдонимы, определенные в скрипте, недоступны в оболочке; однако, файлы, созданные в качестве выходных данных скрипта и сохранённые в системе, видны после выполнения скрипта. Псевдонимы, определенные через оболочку, недоступны скрипту.
При использовании команды exec, операторы store не вызовут выполнение; вместо этого весь скрипт парсится перед началом выполнения. В отличие от команды run, exec не изменяет историю команд или не запоминает дескрипторы, используемые внутри скрипта. Exec без параметров может использоваться в скриптах для принудительного выполнения до точки в скрипте, где происходит exec.
Для сравнения, см. команду run. Обе команды exec и run полезны для отладки, так как вы можете изменить скрипт Pig в редакторе и затем повторно запустить скрипт в оболочке Grunt, не выходя из оболочки. Кроме того, обе команды способствуют модульности скриптов Pig, позволяя повторно использовать существующие компоненты.
Примеры
В этом примере скрипт отображается и выполняется.
grunt> cat myscript.pig a = LOAD 'student' AS (name, age, gpa); b = LIMIT a 3; DUMP b; grunt> exec myscript.pig (alice,20,2.47) (luke,18,4.00) (holly,24,3.27)
В этом примере используется замена параметров с командой exec.
grunt> cat myscript.pig a = LOAD 'student' AS (name, age, gpa); b = ORDER a BY name; STORE b into '$out'; grunt> exec –param out=myoutput myscript.pig
В этом примере задано несколько параметров.
grunt> exec –param p1=myparam1 –param p2=myparam2 myscript.pig
help
Выводит список команд Pig или свойств.
Синтаксис
| -help [properties] |
Термины
| properties | Список свойств Pig. |
Использование
Команда help выводит список команд Pig или свойств.
Пример
Используйте "-help", чтобы получить список команд.
$ pig -help
Apache Pig version 0.8.0-dev (r987348)
compiled Aug 19 2010, 16:38:44
USAGE: Pig [options] [-] : Run interactively in grunt shell.
Pig [options] -e[xecute] cmd [cmd ...] : Run cmd(s).
Pig [options] [-f[ile]] file : Run cmds found in file.
options include:
-4, -log4jconf - Log4j configuration file, overrides log conf
-b, -brief - Brief logging (no timestamps)
-c, -check - Syntax check
etc …
Используйте "-help properties", чтобы получить список свойств.
$ pig -help properties
The following properties are supported:
Logging:
verbose=true|false; default is false. This property is the same as -v switch
brief=true|false; default is false. This property is the same as -b switch
debug=OFF|ERROR|WARN|INFO|DEBUG; default is INFO. This property is the same as -d switch
aggregate.warning=true|false; default is true. If true, prints count of warnings
of each type rather than logging each warning.
etc …
history
Отобразить список используемых ранее операторов.
Синтаксис
| history [-n] |
Термины
| key | Описание. |
| -n | Опустить номера строк в списке. |
Использование
Команда history показывает используемые ранее операторы.
Пример
В этом примере команда history отображает все операторы с номерами строк и без них.
grunt> a = LOAD 'student' AS (name, age, gpa); grunt> b = order a by name; grunt> history 1 a = LOAD 'student' AS (name, age, gpa); 2 b = order a by name; grunt> c = order a by name; grunt> history -n a = LOAD 'student' AS (name, age, gpa); b = order a by name; c = order a by name;
kill
Убить задачу.
Синтаксис
| kill jobid |
Термины
| jobid | Идентификатор задачи. |
Использование
Используйте команду kill для остановки задачи Pig на основе её идентификатора.
Команда kill попытается остановить все связанные с задачей Pig MapReduce задачи. Однако в некоторых случаях это может не сработать, например, когда задача Pig завершается, и у неё нет возможности вызвать процедуры завершения.
Пример
В этом примере убивается задача с идентификатором job_0001.
grunt> kill job_0001
quit
Выйти из оболочки Pig grunt.
Синтаксис
| exit |
Термины
| none | без параметров |
Использование
Команда quit позволяет выйти из оболочки Pig grunt.
Пример
В этом примере команда quit завершает работу оболочки Pig grunt.
grunt> quit
run
Выполнить скрипт Pig.
Синтаксис
| run [–param param_name = param_value] [–param_file file_name] script |
Термины
| –param param_name = param_value | См. Замену параметров. |
| –param_file file_name | См. Замену параметров. |
| script | Имя скрипта Pig. |
Использование
Используйте команду run для запуска скрипта Pig, который может взаимодействовать с оболочкой Grunt (интерактивный режим). Скрипт имеет доступ к псевдонимам, определенным внешним образом в оболочке Grunt. Оболочка Grunt имеет доступ к псевдонимам, определенным в скрипте. Все команды из скрипта отображаются в истории команд.
При использовании команды run каждый оператор store инициирует выполнение. Операторы из скрипта добавляются в историю команд, и все псевдонимы, определенные в скрипте, могут быть использованы в последующих операторах после завершения команды run. Выполнение команды run в командной строке оболочки Grunt в основном эквивалентно ручному вводу операторов.
Для сравнения, см. команду exec. Обе команды run и exec полезны для отладки, так как вы можете изменить скрипт Pig в редакторе и затем повторно запустить скрипт в оболочке Grunt, не выходя из оболочки. Кроме того, обе команды способствуют модульности скриптов Pig, позволяя повторно использовать существующие компоненты.
Пример
В этом примере скрипт взаимодействует с результатами команд, выпущенных через оболочку Grunt.
grunt> cat myscript.pig b = ORDER a BY name; c = LIMIT b 10; grunt> a = LOAD 'student' AS (name, age, gpa); grunt> run myscript.pig grunt> d = LIMIT c 3; grunt> DUMP d; (alice,20,2.47) (alice,27,1.95) (alice,36,2.27)
В этом примере используется замена параметров с командой run.
grunt> a = LOAD 'student' AS (name, age, gpa); grunt> cat myscript.pig b = ORDER a BY name; STORE b into '$out'; grunt> run –param out=myoutput myscript.pig
set
Отображает/присваивает значения ключам, используемым в Pig.
Синтаксис
| set [key 'value'] |
Термины
| key | Ключ (см. таблицу). Регистрозависимый. |
| value | Значение для ключа (см. таблицу). Регистрозависимый. |
Использование
Используйте команду set для присвоения значений ключам, как показано в таблице. Все ключи и соответствующие значения (для Pig и Hadoop) регистрозависимы. Если команда set используется без аргумента пары ключ/значение, Pig выводит все конфигурации и системные свойства.
| Ключ | Значение | Описание |
| default_parallel | целое число | Устанавливает количество редьюсеров для всех задач MapReduce, сгенерированных Pig (см. Использование функций параллельности). |
| debug | вкл/выкл | Включает или отключает логирование уровня отладки. |
| job.name | Строка в одинарных кавычках, содержащая имя задачи. | Устанавливает имя задачи, заданное пользователем. |
| job.priority | Допустимые значения (регистронезависимые): very_low, low, normal, high, very_high | Устанавливает приоритет задачи Pig. |
| stream.skippath | Строка, содержащая путь. | Для потоковой обработки устанавливает путь, из которого не следует передавать данные (см. DEFINE (UDFs, streaming) и О загрузке по умолчанию). |
Все свойства Pig и Hadoop могут быть установлены, как в скрипте Pig, так и в командной строке Grunt.
Примеры
В этом примере пары ключ-значение задаются в командной строке.
grunt> SET debug 'on' grunt> SET job.name 'my job' grunt> SET default_parallel 100
В этом примере default_parallel устанавливается в скрипте Pig; все запускаемые задачи MapReduce будут использовать 20 редьюсеров.
SET default_parallel 20; A = LOAD 'myfile.txt' USING PigStorage() AS (t, u, v); B = GROUP A BY t; C = FOREACH B GENERATE group, COUNT(A.t) as mycount; D = ORDER C BY mycount; STORE D INTO 'mysortedcount' USING PigStorage();
В этом примере в скрипте Pig задаётся несколько пар ключ-значение. Эти пары ключ-значение добавляются в job-conf скриптом Pig (делая их доступными для Pig и Hadoop). Это общее значение скрипта; если ключ-значение определяется несколько раз в скрипте, последнее значение вступит в силу и будет установлено для всех задач, генерируемых скриптом.
... SET mapred.map.tasks.speculative.execution false; SET pig.logfile mylogfile.log; SET my.arbitrary.key my.arbitary.value; ...
© 2007–2016 Apache Software Foundation
Licensed under the Apache Software License version 2.0.
https://pig.apache.org/docs/r0.15.0/cmds.html