Apache Pig - Grunt Shell

Sau khi gọi Grunt shell, bạn có thể chạy các tập lệnh Pig của mình trong shell. Ngoài ra, còn có một số lệnh hữu ích và tiện ích nhất định được cung cấp bởi Grunt shell. Chương này giải thích về shell và các lệnh tiện ích do Grunt shell cung cấp.

Note - Trong một số phần của chương này, các lệnh như LoadStoređược sử dụng. Tham khảo các chương tương ứng để biết thông tin chi tiết về chúng.

Lệnh Shell

Vỏ Grunt của Apache Pig chủ yếu được sử dụng để viết các chữ viết Latin của Pig. Trước đó, chúng ta có thể gọi bất kỳ lệnh shell nào bằng cách sử dụngshfs.

Lệnh sh

Sử dụng shlệnh, chúng ta có thể gọi bất kỳ lệnh shell nào từ shell Grunt. Sử dụngsh lệnh từ shell Grunt, chúng tôi không thể thực hiện các lệnh là một phần của môi trường shell (ex - cd).

Syntax

Dưới đây là cú pháp của sh chỉ huy.

grunt> sh shell command parameters

Example

Chúng ta có thể gọi ls lệnh của Linux shell từ Grunt shell bằng cách sử dụng shtùy chọn như hình dưới đây. Trong ví dụ này, nó liệt kê các tệp trong/pig/bin/ danh mục.

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

Lệnh fs

Sử dụng fs lệnh, chúng ta có thể gọi bất kỳ lệnh FsShell nào từ Grunt shell.

Syntax

Dưới đây là cú pháp của fs chỉ huy.

grunt> sh File System command parameters

Example

Chúng ta có thể gọi lệnh ls của HDFS từ Grunt shell bằng lệnh fs. Trong ví dụ sau, nó liệt kê các tệp trong thư mục gốc 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

Theo cách tương tự, chúng ta có thể gọi tất cả các lệnh shell của hệ thống tệp khác từ Grunt shell bằng cách sử dụng fs chỉ huy.

Lệnh Tiện ích

Grunt shell cung cấp một tập hợp các lệnh tiện ích. Chúng bao gồm các lệnh tiện ích nhưclear, help, history, quit,set; và các lệnh nhưexec, kill,runđể điều khiển Pig khỏi vỏ Grunt. Dưới đây là mô tả của các lệnh tiện ích được cung cấp bởi Grunt shell.

lệnh rõ ràng

Các clear lệnh được sử dụng để xóa màn hình của Grunt shell.

Syntax

Bạn có thể xóa màn hình của vỏ grunt bằng cách sử dụng clear lệnh như hình dưới đây.

grunt> clear

trợ giúp Lệnh

Các help lệnh cung cấp cho bạn danh sách các lệnh Pig hoặc thuộc tính Pig.

Usage

Bạn có thể nhận danh sách các lệnh Pig bằng cách sử dụng help lệnh như hình dưới đây.

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.

lệnh lịch sử

Lệnh này hiển thị danh sách các câu lệnh được thực thi / sử dụng cho đến nay kể từ khi lệnh bán Grunt được gọi.

Usage

Giả sử chúng ta đã thực hiện ba câu lệnh kể từ khi mở Grunt shell.

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(',');

Sau đó, sử dụng history lệnh sẽ tạo ra kết quả sau.

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(',');

đặt lệnh

Các set lệnh được sử dụng để hiển thị / gán giá trị cho các khóa được sử dụng trong Pig.

Usage

Sử dụng lệnh này, bạn có thể đặt giá trị cho các khóa sau.

Chìa khóa Mô tả và giá trị
default_parallel Bạn có thể đặt số lượng bộ giảm bớt cho công việc bản đồ bằng cách chuyển bất kỳ số nguyên nào làm giá trị cho khóa này.
debug Bạn có thể tắt hoặc bật tính năng gỡ lỗi trong Pig bằng cách bật / tắt cho phím này.
job.name Bạn có thể đặt Tên công việc cho công việc được yêu cầu bằng cách chuyển một giá trị chuỗi vào khóa này.
job.priority

Bạn có thể đặt mức độ ưu tiên công việc cho một công việc bằng cách chuyển một trong các giá trị sau vào khóa này:

  • very_low
  • low
  • normal
  • high
  • very_high
stream.skippath Để truyền trực tuyến, bạn có thể đặt đường dẫn từ nơi dữ liệu không được truyền, bằng cách chuyển đường dẫn mong muốn dưới dạng một chuỗi tới khóa này.

bỏ Command

Bạn có thể thoát khỏi trình bao Grunt bằng lệnh này.

Usage

Thoát khỏi vỏ Grunt như hình dưới đây.

grunt> quit

Bây giờ chúng ta hãy xem các lệnh sử dụng mà bạn có thể điều khiển Apache Pig từ Grunt shell.

Lệnh thực thi

Sử dụng exec lệnh, chúng ta có thể thực thi các tập lệnh Pig từ shell Grunt.

Syntax

Dưới đây là cú pháp của lệnh tiện ích exec.

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

Example

Hãy giả sử rằng có một tệp có tên student.txt bên trong /pig_data/ thư mục của HDFS với nội dung sau.

Student.txt

001,Rajiv,Hyderabad
002,siddarth,Kolkata
003,Rajesh,Delhi

Và, giả sử chúng ta có một tệp kịch bản có tên sample_script.pig bên trong /pig_data/ thư mục của HDFS với nội dung sau.

Sample_script.pig

student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING PigStorage(',') 
   as (id:int,name:chararray,city:chararray);
  
Dump student;

Bây giờ, chúng ta hãy thực thi tập lệnh trên từ Grunt shell bằng cách sử dụng exec lệnh như hình dưới đây.

grunt> exec /sample_script.pig

Output

Các exec lệnh thực thi tập lệnh trong sample_script.pig. Theo chỉ dẫn trong kịch bản, nó tảistudent.txt vào Pig và cung cấp cho bạn kết quả của toán tử Dump hiển thị nội dung sau.

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

lệnh giết

Bạn có thể kết thúc một công việc từ Grunt shell bằng lệnh này.

Syntax

Dưới đây là cú pháp của kill chỉ huy.

grunt> kill JobId

Example

Giả sử có một công việc Pig đang chạy có id Id_0055, bạn có thể giết nó từ vỏ Grunt bằng cách sử dụng kill như hình bên dưới.

grunt> kill Id_0055

chạy lệnh

Bạn có thể chạy tập lệnh Pig từ shell Grunt bằng cách sử dụng run chỉ huy

Syntax

Dưới đây là cú pháp của run chỉ huy.

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

Example

Hãy giả sử rằng có một tệp có tên student.txt bên trong /pig_data/ thư mục của HDFS với nội dung sau.

Student.txt

001,Rajiv,Hyderabad
002,siddarth,Kolkata
003,Rajesh,Delhi

Và, giả sử chúng ta có một tệp kịch bản có tên sample_script.pig trong hệ thống tệp cục bộ với nội dung sau.

Sample_script.pig

student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING
   PigStorage(',') as (id:int,name:chararray,city:chararray);

Bây giờ, chúng ta hãy chạy đoạn script trên từ Grunt shell bằng lệnh run như hình dưới đây.

grunt> run /sample_script.pig

Bạn có thể xem đầu ra của tập lệnh bằng cách sử dụng Dump operator như hình bên dưới.

grunt> Dump;

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

Note - Sự khác biệt giữa execrun lệnh đó là nếu chúng ta sử dụng run, các câu lệnh từ tập lệnh có sẵn trong lịch sử lệnh.