Hướng dẫn về Hadoop Pig: Apache Pig là gì? Archikiến trúc, Ví dụ
Chúng ta sẽ bắt đầu với phần giới thiệu về Pig
Lợn Apache là gì?
Pig là ngôn ngữ lập trình cấp cao hữu ích để phân tích các tập dữ liệu lớn. Pig là kết quả của nỗ lực phát triển tại Yahoo!
Trong khung MapReduce, các chương trình cần được dịch thành một loạt các giai đoạn Map và Giảm. Tuy nhiên, đây không phải là mô hình lập trình mà các nhà phân tích dữ liệu quen thuộc. Vì vậy, để thu hẹp khoảng cách này, một bản tóm tắt có tên Pig đã được xây dựng trên Hadoop.
Apache Pig cho phép mọi người tập trung hơn vào phân tích các tập dữ liệu số lượng lớn và dành ít thời gian hơn để viết các chương trình Map-Reduce. Tương tự như Lợn ăn bất cứ thứ gì, Lợn Apache ngôn ngữ lập trình được thiết kế để làm việc trên bất kỳ loại dữ liệu nào. Đó là lý do tại sao có tên là Lợn!
Trong hướng dẫn Apache Pig dành cho người mới bắt đầu này, bạn sẽ học-
- HEO là gì?
- Heo Archikiến trúc
- Điều kiện tiên quyết
- Cách tải xuống và cài đặt Pig
- Ví dụ về tập lệnh lợn
Heo Archikiến trúc
ArchiCấu trúc của Pig bao gồm hai thành phần:
-
lợn Latin, đó là một ngôn ngữ
-
Một môi trường thời gian chạy, để chạy các chương trình PigLatin.
Chương trình Pig Latin bao gồm một loạt các thao tác hoặc phép biến đổi được áp dụng cho dữ liệu đầu vào để tạo ra đầu ra. Các hoạt động này mô tả luồng dữ liệu được dịch thành dạng biểu diễn có thể thực thi được bởi môi trường thực thi Hadoop Pig. Bên dưới, kết quả của những chuyển đổi này là hàng loạt công việc MapReduce mà lập trình viên không hề hay biết. Vì vậy, theo một cách nào đó, Pig trong Hadoop cho phép lập trình viên tập trung vào dữ liệu hơn là bản chất của việc thực thi.
PigLatin là một ngôn ngữ tương đối cứng sử dụng các từ khóa quen thuộc trong quá trình xử lý dữ liệu, ví dụ: Tham gia, Nhóm và Lọc.
Các chế độ thực hiện:
Pig trong Hadoop có hai chế độ thực thi:
-
Chế độ cục bộ: Ở chế độ này, ngôn ngữ Hadoop Pig chạy trong một JVM và sử dụng hệ thống tập tin cục bộ. Chế độ này chỉ phù hợp để phân tích các tập dữ liệu nhỏ bằng Pig trong Hadoop
-
Chế độ Giảm bản đồ: Trong chế độ này, các truy vấn được viết bằng Pig Latin sẽ được dịch sang Bản đồGiảm công việc và được chạy trên cụm Hadoop (cụm có thể là giả hoặc được phân phối đầy đủ). Chế độ MapReduce với cụm phân phối đầy đủ rất hữu ích khi chạy Pig trên các tập dữ liệu lớn.
Cách tải xuống và cài đặt Pig
Bây giờ trong hướng dẫn Apache Pig này, chúng ta sẽ tìm hiểu cách tải xuống và cài đặt Pig:
Trước khi chúng ta bắt đầu quy trình thực tế, hãy đảm bảo bạn đã cài đặt Hadoop. Thay đổi người dùng thành 'hduser' (id được sử dụng khi cấu hình Hadoop, bạn có thể chuyển sang userid được sử dụng trong cấu hình Hadoop của mình)
Bước 1) Tải xuống bản phát hành ổn định mới nhất của Pig Hadoop từ bất kỳ trang nhân bản nào có sẵn tại
http://pig.apache.org/releases.html
Chọn tar.gz (và không src.tar.gz) tệp để tải xuống.
Bước 2) Sau khi quá trình tải xuống hoàn tất, hãy điều hướng đến thư mục chứa tệp tar đã tải xuống và di chuyển tar đến vị trí bạn muốn thiết lập Pig Hadoop. Trong trường hợp này, chúng tôi sẽ chuyển đến /usr/local
Di chuyển đến thư mục chứa Tệp Pig Hadoop
cd /usr/local
Trích xuất nội dung của file tar như bên dưới
sudo tar -xvf pig-0.12.1.tar.gz
Bước 3). Sửa đổi ~ / .bashrc để thêm các biến môi trường liên quan đến Pig
Mở ~ / .bashrc tập tin trong bất kỳ trình soạn thảo văn bản nào bạn chọn và thực hiện các sửa đổi bên dưới-
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Bước 4) Bây giờ, tìm nguồn cấu hình môi trường này bằng lệnh bên dưới
. ~/.bashrc
Bước 5) Chúng ta cần biên dịch lại CON LỢN hỗ trợ Hadoop 2.2.0
Dưới đây là các bước để thực hiện việc này-
Chuyển đến thư mục chính của PIG
cd $PIG_HOME
Cài đặt kiến
sudo apt-get install ant
Lưu ý: Quá trình tải xuống sẽ bắt đầu và sẽ tiêu tốn thời gian tùy theo tốc độ internet của bạn.
Biên dịch lại LỢN
sudo ant clean jar-all -Dhadoopversion=23
Xin lưu ý rằng trong quá trình biên dịch lại này, nhiều thành phần sẽ được tải xuống. Vì vậy, một hệ thống nên được kết nối với internet.
Ngoài ra, trong trường hợp quá trình này bị kẹt ở đâu đó và bạn không thấy bất kỳ chuyển động nào trên dấu nhắc lệnh trong hơn 20 phút thì hãy nhấn ctrl + c và chạy lại lệnh tương tự.
Trong trường hợp của chúng tôi, phải mất 20 phút
Bước 6) Kiểm tra Heo cài đặt bằng lệnh
pig -help
Ví dụ về tập lệnh lợn
Chúng ta sẽ sử dụng Pig Script để tìm Số lượng sản phẩm được bán ở mỗi quốc gia.
Đầu vào: Tập dữ liệu đầu vào của chúng tôi là tệp CSV, Bán hàngJan2009.csv
Bước 1) Bắt đầu Hadoop
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Bước 2) Pig trong Dữ liệu lớn lấy một tệp từ HDFS ở chế độ MapReduce và lưu kết quả trở lại HDFS.
Sao chép tệp Bán hàngJan2009.csv (được lưu trữ trên hệ thống tệp cục bộ, ~/input/SalesJan2009.csv) sang HDFS (Hệ thống tệp phân tán Hadoop) Thư mục chính
Ở đây trong ví dụ về Apache Pig này, tệp nằm trong đầu vào Thư mục. Nếu tệp được lưu trữ ở một vị trí khác, hãy đặt tên đó
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Xác minh xem một tập tin có thực sự được sao chép hay không.
$HADOOP_HOME/bin/hdfs dfs -ls /
Bước 3) Cấu hình lợn
Đầu tiên, điều hướng đến $PIG_HOME/conf
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
Mở lợn.property bằng trình soạn thảo văn bản bạn chọn và chỉ định đường dẫn tệp nhật ký bằng cách sử dụng lợn.logfile
sudo gedit pig.properties
Trình ghi nhật ký sẽ sử dụng tệp này để ghi lại lỗi.
Bước 4) Chạy lệnh 'pig' để khởi động dấu nhắc lệnh Pig, đây là một truy vấn shell tương tác của Pig.
pig
Bước 5)Trong dấu nhắc lệnh Grunt dành cho Pig, hãy thực thi các lệnh Pig bên dưới theo thứ tự.
— A. Tải file chứa dữ liệu.
salesTable = LOAD '/SalesJan2009.csv' USING PigStorage(',') AS (Transaction_date:chararray,Product:chararray,Price:chararray,Payment_Type:chararray,Name:chararray,City:chararray,State:chararray,Country:chararray,Account_Created:chararray,Last_Login:chararray,Latitude:chararray,Longitude:chararray);
Nhấn Enter sau lệnh này.
— B. Nhóm dữ liệu theo trường Quốc gia
GroupByCountry = GROUP salesTable BY Country;
— C. Với mỗi bộ trong 'GroupByCountry', tạo chuỗi kết quả có dạng-> Tên quốc gia: Số lượng sản phẩm đã bán
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
Nhấn Enter sau lệnh này.
— D. Lưu kết quả của Data Flow vào thư mục 'pig_output_sale' trên HDFS
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Lệnh này sẽ mất một thời gian để thực hiện. Sau khi thực hiện xong, bạn sẽ thấy màn hình sau
Bước 6) Kết quả có thể được nhìn thấy thông qua giao diện lệnh như,
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
Kết quả cũng có thể được nhìn thấy thông qua giao diện web như-
Kết quả thông qua giao diện web-
Mở http://localhost:50070/
trong trình duyệt web.
bây giờ chọn 'Duyệt hệ thống tập tin' và điều hướng tối đa /người dùng/hduser/pig_output_sale
Mở phần-r-00000