Apache Pig-그런트 셸

Grunt 셸을 호출 한 후 셸에서 Pig 스크립트를 실행할 수 있습니다. 그 외에도 Grunt 셸에서 제공하는 유용한 셸 및 유틸리티 명령이 있습니다. 이 장에서는 Grunt 셸에서 제공하는 셸 및 유틸리티 명령에 대해 설명합니다.

Note −이 장의 일부에서 다음과 같은 명령은 LoadStore사용됩니다. 자세한 정보는 각 장을 참조하십시오.

셸 명령

Apache Pig의 Grunt 쉘은 주로 Pig 라틴 스크립트를 작성하는 데 사용됩니다. 그 전에는 다음을 사용하여 모든 쉘 명령을 호출 할 수 있습니다.shfs.

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

이 키에 다음 값 중 하나를 전달하여 작업 우선 순위를 설정할 수 있습니다.

  • very_low
  • low
  • normal
  • high
  • very_high
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, 스크립트의 명령문은 명령 기록에서 사용할 수 있습니다.