Apache Pig-그런트 셸
Grunt 셸을 호출 한 후 셸에서 Pig 스크립트를 실행할 수 있습니다. 그 외에도 Grunt 셸에서 제공하는 유용한 셸 및 유틸리티 명령이 있습니다. 이 장에서는 Grunt 셸에서 제공하는 셸 및 유틸리티 명령에 대해 설명합니다.
Note −이 장의 일부에서 다음과 같은 명령은 Load 과 Store사용됩니다. 자세한 정보는 각 장을 참조하십시오.
셸 명령
Apache Pig의 Grunt 쉘은 주로 Pig 라틴 스크립트를 작성하는 데 사용됩니다. 그 전에는 다음을 사용하여 모든 쉘 명령을 호출 할 수 있습니다.sh 과 fs.
sh 명령
사용 sh명령을 사용하면 Grunt 셸에서 모든 셸 명령을 호출 할 수 있습니다. 사용sh Grunt 셸에서 명령을 내리면 셸 환경의 일부인 명령을 실행할 수 없습니다 (ex − cd).
Syntax
아래에 주어진 구문은 sh 명령.
grunt> sh shell command parameters
Example
우리는 ls 다음을 사용하여 Grunt 쉘에서 Linux 쉘 명령 sh옵션은 아래와 같습니다. 이 예에서는/pig/bin/ 예배 규칙서.
grunt> sh ls
pig
pig_1444799121955.log
pig.cmd
pig.py
fs 명령
사용 fs 명령을 사용하면 Grunt 셸에서 FsShell 명령을 호출 할 수 있습니다.
Syntax
아래에 주어진 구문은 fs 명령.
grunt> sh File System command parameters
Example
fs 명령을 사용하여 Grunt 쉘에서 HDFS의 ls 명령을 호출 할 수 있습니다. 다음 예에서는 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 셸에서 제공하는 유틸리티 명령에 대한 설명입니다.
clear 명령
그만큼 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 판매가 호출 된 이후 지금까지 실행 / 사용 된 명령문 목록을 표시합니다.
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 명령
그만큼 set 명령은 Pig에서 사용되는 키에 값을 표시 / 할당하는 데 사용됩니다.
Usage
이 명령을 사용하여 다음 키에 값을 설정할 수 있습니다.
키 | 설명 및 값 |
---|---|
default_parallel | 이 키에 모든 정수를 값으로 전달하여 맵 작업에 대한 감속기 수를 설정할 수 있습니다. |
debug | 이 키에 on / off를 전달하여 Pig에서 디버깅 기능을 끄거나 켤 수 있습니다. |
job.name | 이 키에 문자열 값을 전달하여 작업 이름을 필요한 작업으로 설정할 수 있습니다. |
job.priority | 이 키에 다음 값 중 하나를 전달하여 작업 우선 순위를 설정할 수 있습니다.
|
stream.skippath | 스트리밍의 경우 원하는 경로를 문자열 형태로이 키에 전달하여 데이터가 전송되지 않는 경로를 설정할 수 있습니다. |
종료 명령
이 명령을 사용하여 Grunt 셸을 종료 할 수 있습니다.
Usage
아래와 같이 Grunt 셸을 종료합니다.
grunt> quit
이제 Grunt 셸에서 Apache Pig를 제어 할 수있는 명령을 살펴 보겠습니다.
exec 명령
사용 exec 명령을 사용하면 Grunt 셸에서 Pig 스크립트를 실행할 수 있습니다.
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
ID가있는 실행중인 Pig 작업이 있다고 가정합니다. Id_0055, 당신은 다음을 사용하여 Grunt 쉘에서 그것을 죽일 수 있습니다 kill 아래에 표시된대로 명령.
grunt> kill Id_0055
명령 실행
다음을 사용하여 Grunt 셸에서 Pig 스크립트를 실행할 수 있습니다. 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 셸에서 위의 스크립트를 실행 해 보겠습니다.
grunt> run /sample_script.pig
다음을 사용하여 스크립트의 출력을 볼 수 있습니다. Dump operator 아래 그림과 같이.
grunt> Dump;
(1,Rajiv,Hyderabad)
(2,siddarth,Kolkata)
(3,Rajesh,Delhi)
Note − 차이점 exec 그리고 run 명령은 우리가 사용한다면 run, 스크립트의 명령문은 명령 기록에서 사용할 수 있습니다.