Map Side Tham gia Vs. Tham gia



Bài đăng này thảo luận về Hadoop Map side tham gia Vs. tham gia. Đồng thời tìm hiểu bản đồ thu nhỏ, tham gia bảng, tham gia phe là gì, lợi thế của việc sử dụng thao tác tham gia phía bản đồ trong Hive

Trong blog này, chúng ta sẽ thảo luận về Tham gia bên bản đồ và những lợi thế của nó so với hoạt động tham gia bình thường trong Hive .Đây là một khái niệm quan trọng mà bạn cần học để triển khai .Nhưng trước khi biết về điều này, trước tiên chúng ta nên hiểu khái niệm 'Tham gia' và điều gì xảy ra trong nội bộ khi chúng tôi thực hiện tham gia Hive .

Tham gia là một mệnh đề kết hợp các bản ghi của hai bảng (hoặc Tập dữ liệu).
Giả sử rằng chúng ta có hai bảng A và B. Khi chúng ta thực hiện phép nối trên chúng, nó sẽ trả về các bản ghi là sự kết hợp của tất cả các cột o f A và B.





Bây giờ chúng ta hãy hiểu chức năng của phép nối bình thường với một ví dụ ..

Bất cứ khi nào, chúng tôi áp dụng thao tác tham gia, công việc sẽ được giao cho một nhiệm vụ Map Reduce bao gồm hai giai đoạn- a ‘Giai đoạn bản đồ 'Và một' Giảm giai đoạn '. Công việc của một người vẽ bản đồ trong Giai đoạn Bản đồ là 'đọc' dữ liệu từ các bảng tham gia và 'trở về' các ‘Khóa tham gia’'Gia nhập giá trị' ghép nối thành tệp trung gian. Hơn nữa, trong giai đoạn trộn, tệp trung gian này sau đó được sắp xếp và hợp nhất. Công việc của bộ giảm trong giai đoạn giảm là lấy kết quả đã sắp xếp này làm đầu vào và hoàn thành nhiệm vụ nối.



  • Map-side Join tương tự như phép nối nhưng tất cả nhiệm vụ sẽ được thực hiện bởi một mình người lập bản đồ.

  • Map-side Join sẽ chủ yếu phù hợp với các bảng nhỏ để tối ưu hóa nhiệm vụ.



Tham gia phía bản đồ sẽ tối ưu hóa nhiệm vụ như thế nào?

Giả sử rằng chúng ta có hai bảng trong đó một bảng là bảng nhỏ. Khi chúng tôi gửi một tác vụ thu nhỏ bản đồ, một tác vụ Map Reduce cục bộ sẽ được tạo trước tác vụ Map Reduce tham gia ban đầu sẽ đọc dữ liệu của bảng nhỏ từ HDFS và lưu trữ nó vào một bảng băm trong bộ nhớ. Sau khi đọc, nó tuần tự hóa bảng băm trong bộ nhớ thành một tệp bảng băm.

Trong giai đoạn tiếp theo, khi tác vụ Map Reduce tham gia ban đầu đang chạy, nó sẽ di chuyển dữ liệu trong tệp bảng băm vào bộ đệm ẩn phân tán Hadoop, bộ đệm này sẽ đưa các tệp này vào đĩa cục bộ của mỗi người lập bản đồ. Vì vậy, tất cả những người lập bản đồ có thể tải lại tệp bảng băm liên tục này vào bộ nhớ và thực hiện công việc nối như trước. Quy trình thực thi của phép nối bản đồ được tối ưu hóa được hiển thị trong hình bên dưới. Sau khi tối ưu hóa, bảng nhỏ chỉ cần được đọc một lần. Ngoài ra, nếu nhiều trình ánh xạ đang chạy trên cùng một máy, bộ đệm phân tán chỉ cần đẩy một bản sao của tệp bảng băm sang máy này.

Ưu điểm của việc sử dụng phép nối phía bản đồ:

  • Tham gia phía bản đồ giúp giảm thiểu chi phí phát sinh cho việc phân loại và hợp nhất trong xáo trộngiảm các giai đoạn.
  • Tham gia bên bản đồ cũng giúp cải thiện hiệu suất của nhiệm vụ bằng cách giảm thời gian hoàn thành nhiệm vụ.

Nhược điểm của tham gia phía bản đồ:

  • Phép nối phía bản đồ chỉ đủ khi một trong các bảng mà bạn thực hiện thao tác phép nối phía bản đồ đủ nhỏ để vừa với bộ nhớ. Do đó, không thích hợp để thực hiện phép nối phía bản đồ trên các bảng có dữ liệu khổng lồ trong cả hai bảng đó.

Ví dụ đơn giản cho Map Reduce Joins:

Hãy để chúng tôi tạo hai bảng:

  • Emp : chứa thông tin chi tiết của một Nhân viên như tên Nhân viên, ID Nhân viên và Bộ phận mà cô ấy thuộc về.

  • Bộ phận: chứa các thông tin chi tiết như Tên Bộ phận, Mã Bộ phận, v.v.

Tạo hai tệp đầu vào như trong hình sau để tải dữ liệu vào các bảng đã tạo.

nhân viên.txt

dept.txt

Bây giờ, chúng ta hãy tải dữ liệu vào các bảng.

Hãy để chúng tôi thực hiện Bản đồ Tham gia trên hai bảng để trích xuất danh sách các phòng ban mà mỗi nhân viên đang làm việc.

Đây, bảng thứ hai ghi nợ là một cái bàn nhỏ. Hãy nhớ rằng, luôn luôn số lượng phòng ban sẽ ít hơn số lượng nhân viên trong một tổ chức.

cách sử dụng nguyên tử với python

Bây giờ, chúng ta hãy thực hiện tác vụ tương tự với sự trợ giúp của phép tham gia Reduce-side thông thường.

Trong khi thực hiện cả hai phép nối, bạn có thể tìm thấy hai điểm khác biệt:

  • Map-giảm tham gia đã hoàn thành công việc trong thời gian ngắn hơn so với thời gian thực hiện trong tham gia bình thường.

  • Phép nối bản đồ-giảm đã hoàn thành công việc của nó mà không cần sự trợ giúp của bất kỳ bộ giảm nào trong khi phép nối bình thường thực hiện công việc này với sự trợ giúp của một bộ giảm tốc.

Vì thế, Tham gia phía bản đồ là đặt cược tốt nhất của bạn khi một trong các bảng đủ nhỏ để vừa với bộ nhớ để hoàn thành công việc trong một khoảng thời gian ngắn.

Trong Môi trường thời gian thực , bạn sẽ có tập dữ liệu với lượng dữ liệu khổng lồ. Vì vậy, thực hiện phân tích và truy xuất dữ liệu sẽ tốn thời gian nếu một trong các tập dữ liệu có kích thước nhỏ hơn. Trong trường hợp này Tham gia phía bản đồ sẽ giúp hoàn thành công việc trong thời gian ngắn hơn.

Chưa bao giờ có thời điểm tốt hơn để làm chủ Hadoop! Bắt đầu ngay bây giờ với khóa học Dữ liệu lớn và Hadoop được tuyển chọn đặc biệt bởi Edureka.

Người giới thiệu:
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919

Bài viết liên quan:

7 cách đào tạo về dữ liệu lớn có thể thay đổi tổ chức của bạn