Lặn sâu vào lợn



Bài đăng trên blog này đi sâu vào Pig và các chức năng của nó. Bạn sẽ tìm thấy bản demo về cách bạn có thể làm việc trên Hadoop bằng Pig mà không phụ thuộc vào Java.

Một trong những lý do lớn nhất khiến sự phổ biến của Hadoop tăng vọt trong thời gian gần đây là thực tế là các tính năng như Pig và Hive chạy trên nó cho phép những người không phải lập trình viên có chức năng trước đây chỉ dành riêng cho các lập trình viên Java. Những tính năng này là kết quả của nhu cầu ngày càng tăng đối với các chuyên gia Hadoop. Các tính năng khác được sử dụng bởi các chuyên gia Hadoop từ nền tảng không phải Java là Flume, Sqoop, HBase và Oozie.





Để hiểu tại sao bạn không cần Java để học Hadoop, hãy xem blog này .

Lịch sử 1Pig



Hãy hiểu cách hoạt động của các tính năng này.

Chúng ta đều biết rằng kiến ​​thức lập trình là điều cần thiết để viết mã MapReduce. Nhưng điều gì sẽ xảy ra nếu tôi có một công cụ có thể viết mã nếu tôi chỉ cung cấp chi tiết? Đó là nơi Heo thể hiện sức mạnh cơ bắp của mình. Pig sử dụng một nền tảng được gọi là Pig Latin, trừu tượng hóa lập trình từ thành ngữ Java MapReduce thành một ký hiệu giúp lập trình MapReduce ở cấp độ cao, tương tự như SQL dành cho các hệ thống RDBMS. Các mã được viết bằng Pig Latin MapReduce tự động được chuyển đổi thành các hàm MapReduce tương đương. Nó không tuyệt vời phải không? Một sự thật đáng kinh ngạc khác là chỉ cần 10 Dòng Lợn để thay thế 200 Dòng Java.



10 dòng Pig = 200 dòng Java

Điều này không chỉ có nghĩa là các chuyên gia không sử dụng Java sử dụng Hadoop mà còn chứng minh sự thật rằng Pig được sử dụng bởi một số lượng tương đương các nhà phát triển kỹ thuật.

Ngoài ra, nếu bạn muốn viết mã MapReduce của riêng mình, bạn có thể làm điều đó bằng bất kỳ ngôn ngữ nào như Perl, Python, Ruby hoặc C. Một số hoạt động cơ bản mà chúng tôi có thể thực hiện trên bất kỳ Tập dữ liệu nào sử dụng Pig là Nhóm, Tham gia, Lọc và Sắp xếp . Các hoạt động này có thể được thực hiện trên dữ liệu có cấu trúc, không có cấu trúc và cả bán cấu trúc. Chúng cung cấp một cách đặc biệt để tạo và thực hiện các công việc MapReduce trên các tập dữ liệu rất lớn.

Tiếp theo, hãy hiểu Hive. Đây là một khung lưu trữ dữ liệu mã nguồn mở, quy mô peta-byte dựa trên Hadoop để tóm tắt, truy vấn và phân tích dữ liệu. Hive cung cấp giao diện giống SQL cho Hadoop. Bạn có thể sử dụng Hive để đọc và ghi tệp trên Hadoop và chạy các báo cáo của mình từ công cụ BI. Một số chức năng điển hình của Hadoop là:

Hãy để tôi cho bạn xem bản demo sử dụng tập dữ liệu Pig on Clickstream
Chúng tôi sẽ sử dụng dữ liệu Clickstream này và thực hiện các phép Chuyển đổi, Nối và Nhóm.

ClickStream là một chuỗi các lần nhấp chuột của người dùng khi truy cập Internet, đặc biệt là khi được giám sát để đánh giá sở thích của một người cho các mục đích tiếp thị. Nó chủ yếu được sử dụng bởi các trang web bán lẻ trực tuyến như Flipkart và Amazon, những người theo dõi hoạt động của bạn để đưa ra các đề xuất. Tập dữ liệu Clickstream mà chúng tôi đã sử dụng có các trường sau:

1. Loại ngôn ngữ được ứng dụng web hỗ trợ

2. Loại trình duyệt

3. Kiểu kết nối

4. ID quốc gia

làm cách nào để cài đặt php

5. Dấu thời gian

6. URL

7. Trạng thái người dùng

8. Loại người dùng

Nó sẽ giống như thế này với các trường thích hợp.

Dưới đây là danh sách các loại trình duyệt đã được nhiều người sử dụng khi lướt trên một trang web cụ thể. Trong số danh sách có các trình duyệt như Internet Explorer, Google Chrome, Lynx, v.v.

Loại kết nối Internet có thể là Lan / Modem / Wifi. Xem hình ảnh dưới đây để biết danh sách đầy đủ:

Trong hình ảnh tiếp theo, bạn sẽ tìm thấy danh sách các quốc gia mà trang web đã thu hút người xem cùng với ID của họ.

Khi chúng tôi đã thu thập tất cả các tập dữ liệu, chúng tôi phải khởi chạy trình bao Pig’s Grunt, được khởi chạy để chạy các lệnh Pig.

Điều đầu tiên chúng ta phải làm khi khởi chạy Grunt shell là tải dữ liệu Clickstream vào mối quan hệ của Pig. Một quan hệ không là gì ngoài một bảng. Dưới đây là lệnh mà chúng tôi sử dụng để tải tệp nằm trong HDFS vào mối quan hệ của Pig.

Chúng ta có thể xác minh lược đồ của mối quan hệ bằng lệnh mô tả click_stream.

Bây giờ chúng ta cần thêm các tệp tham chiếu sẽ chứa thông tin chi tiết về danh sách các quốc gia có ID của họ và các loại trình duyệt khác nhau cùng với ID của họ.

Bây giờ chúng ta có hai tệp tham chiếu, nhưng chúng cần được kết nối để tạo thành một mối quan hệ.
Chúng tôi chạy lệnh connect_ref để chỉ ra loại kết nối.

Bây giờ chúng ta có một kết nối hoạt động và một mối quan hệ đã được thiết lập, chúng tôi sẽ chỉ cho bạn cách chúng tôi có thể Chuyển đổi dữ liệu đó.
Đối với mỗi bản ghi trong Clickstream, chúng tôi sẽ tạo một bản ghi mới ở định dạng khác, tức là dữ liệu đã chuyển đổi. Định dạng mới sẽ bao gồm các trường như TimeStamp, Loại trình duyệt, ID quốc gia và một số trường khác.

Chúng tôi có thể thực hiện thao tác Lọc để cắt bớt Dữ liệu lớn. Các loại người dùng khác nhau là Quản trị viên, Khách hoặc Bots. Trong bản demo của chúng tôi, tôi đã lọc danh sách cho Khách.

Nếu bạn nhớ, ID quốc gia có trong Clickstream và chúng tôi đã tải tệp country_ref chứa tên của các quốc gia cùng với ID của quốc gia đó. Do đó, chúng tôi có thể thực hiện thao tác Nối giữa hai tệp và hợp nhất dữ liệu để thu được thông tin chi tiết.

Nếu chúng tôi đã kết hợp dữ liệu, thì chúng tôi có thể tìm ra các quốc gia khác với vị trí của người dùng bằng cách Nhóm. Sau khi có dữ liệu này, chúng tôi có thể thực hiện thao tác Đếm để xác định số lượng người dùng từ một quốc gia cụ thể.

Không phải là khoa học tên lửa để có được thông tin chi tiết từ Dữ liệu lớn. Đây chỉ là một số tính năng mà tôi đã triển khai và với các công cụ như Hive, Hbase, Oozie, Sqoop và Flume, vẫn còn một kho tàng dữ liệu chưa được khám phá. Vì vậy, những người trong số các bạn đang kìm hãm bản thân khi học Hadoop, đã đến lúc thay đổi.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến chúng trong phần nhận xét và chúng tôi sẽ liên hệ lại với bạn.

Bài viết liên quan:

ứng dụng phân tích dữ liệu lớn

4 cách để sử dụng R và Hadoop cùng nhau

Mọi thứ về Nhà phát triển được chứng nhận Cloudera cho Apache Hadoop