Vấn đề cơ bản để viết ứng dụng MapReduce

Vấn đề cơ bản để viết ứng dụng MapReduce

Để viết 1 ứng dụng MapReduce chạy trên Hadoop, điều quan trọng nhất là chuẩn bị 2 hàm số Map và Reduce, tuy nhiên cũng còn nhiều thành phần khác cần phải biết. Để dễ hiểu, có thể tóm tắt đường đi của dữ liệu trong ứng dụng MapReduce như hình sau:

Và quá trình thực thi ứng dụng như sau:

Chúng ta sẽ lần lượt tìm hiểu từng thành phần một.

Input Files : thường lưu trên HDFS, kiểu tập tin không cố định và dung lượng thường rất lớn, có thể đến vài GB.

InputFormat: định nghĩa InputSplits để cắt nhỏ file input chia cho các nhiệm vụ và RecordReader để đọc những mảnh nhỏ đó (split) vào map. Tất cả các hàm InputFormat đều kế thừa tính năng và đặc tính của lớp trừu tượng FileInputFormat. Khi một nhiệm vụ Hadoop được khởi động, thư mục chứa file input sẽ được nhập vào đối tượng FileInputFormat. FileInputFormat sẽ đọc tất cả các file có trong thu mục đó, và sau đó nó sẽ phân các file này thành nhiều InputSplit. Có thể dùng đối tượng JobCof để thiết lập định dạng file input (bằng lệnh JobCof.setInputFormat). Các định dạng bao gồm:

Trong đó, TextInputFormat là dạng mặc định còn KeyValueInputFormat là mặc định OutputFormat, có thể dùng cho kết quả trung gian.

InputSplit: định nghĩa dữ liệu nhập vào nhiệm vụ Map. InputSplit phân 1 file thành các split 64MB, nhưng cũng có thể thiết lập bằng tham số mapred.min.split.size

RecordReader: định nghĩa cách chuyển đổi split thành cặp key-value và truyền vào Mapper. TextInputFormat cung cấp LineRecordReader.

Mỗi Mapper sinh ra một Java process, có tham số OutputCollector để thu thập kết quả trung gian và Reporter để báo cáo trạng thái hiện tại.

Patitioner qui định kết quả trung gian key-value nào được truyền cho Reducer nào. Quá trình truyền này gọi là Shuffle. Khi 1 hàm Reduce nhận được các cặp key-value từ nhiều hàm Map truyền tới (các cặp key-value có cùng key được truyền về cùng 1 hàm reduce), đồng thời sẽ sắp xếp để các cặp có cùng key nằm cạnh nhau. Đây là quá trình Sort. Sort và Shuffle được tiến hành song song.

Mỗi Reducer dùng đối tượng OutputFormat (được thừa kế từ FileOutputFormat) để viết vào thư mục (chung cho tất cả các Reducer của ứng dụng đó) trong HDFS một file có tên là part-nnnnn, trong đó nnnnn là số partition id của Reducer. Dùng lệnh FileOutputFormat.setOutputPath() để chỉ định thư mục xuất ra và JobConf.setOutputFormat() để chỉ định đối tượng OutputFormat. Các loại OutputFormat gồm:

Tương tự lúc nhập, OutputFormat cũng có RecordWriter để hướng dẫn viết vào file output như thế nào.

Như đã nói ở phần trước Combiner cũng rất quan trọng trong việc giảm tải lượng dữ liệu truyền từ Map về Reduce. Combiner nằm trước Partitioner:

Vấn đề cơ bản để viết ứng dụng MapReduce

Có thể dùng JobCof.setCombinerClass() để chỉ định lớp Combiner này.

Với kiến thức cơ bản trên đây, bạn hãy đối chiếu và phân tích ví dụ wordcount để hiểu rõ hơn.

Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Tommy Tran

Tommy Tran owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy
  • Phone/Zalo: (+84) 944 225 212
  • WhatsApp: (+84) 944 225 212
  • Line Messenger: (+84) 944 225 212
  • Email: asaleotestf@gmail.com
  • Telegram Messenger: https:/t.me/tommytran0401

Quảng cáo việc làm

 

Thích hợp các bạn nữ mảng thợ may làm việc tại nước NGA

Đơn hàng Tuyển dụng 100 Thợ may đi Nga(đợt 1 tháng 3.2021, đợt 2 tháng 5.2021). Lương thực lãnh 800 USD, bao ăn ở, vé máy bay và visa, phí xuất cảnh(1800 USD)trả khi đi làm có lương. Bạn có thể liên hệ CÔNG TY qua Phone/Zalo: (+84) 944 225 212. Công ty sẽ tư vấn cho bạn.

Xem chi tiết: >>> https://bit.ly/3o9NOfR

Tìm kiếm bất động sản

 

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Những từ khóa làm đẹp được người Châu Á tìm kiếm nhiều nhất

Những từ khóa làm đẹp được người Châu Á tìm kiếm nhiều nhất

Với những tiến bộ về mặt công nghệ, giải phẩu thẫm mỹ đã trở nên phổ biến và không còn là một dịch vụ xa xỉ như trước đây

How To Make Video Calls On Android Phones Through Skype

How To Make Video Calls On Android Phones Through Skype

Skype has an app that was developed specifically for Android users called Skype for Android. This app has brought video calling to this very lovely market.

Mark Zuckerberg ở tuổi 21 trổ tài vẽ Graffiti (VIDEO)

Mark Zuckerberg ở tuổi 21 trổ tài vẽ Graffiti (VIDEO)

Sau khi IPO Facebook được công bố, một nghệ sĩ lang thang không nhà cũng thành triệu phú.

BLOG POSTS