1GV: TS. Hồ Bảo QuốcNhóm HV: Đinh Thị Lương 1011036Đoàn Cao Nghĩa 1011043Hồng Xuân Viên 1011067
2Nội dung Giới thiệu• Nhu cầu thực tế• Hadoop là gì?• Lịch sử phát triển Các thành phần của Hadoop• Hadoop Common, HDFS,...
3Nhu cầu thực tế Nhu cầu lưu trữ & xử lý dữ liệu hàng exabyte (1exabyte = 1021 bytes)• Đọc & truyền tải dữ liệu rất chậm...
4 Kiến trúc 2 tầng Các node là các PC Chia làm nhiều rack (khoảng 40 PC/rack)
55Hadoop là gì? Nền tảng ứng dụng hỗ trợ các ứng dụng phântán với dữ liệu rất lớn.• Quy mô: hàng terabyte dữ liệu, hàng n...
6
7Lịch sử phát triển 2002-2004: Doug Cutting giới thiệu Nutch 12/2004 – công bố bài báo về GFS & MapReduce 05/2005 – Nut...
8Hadoop Common Tập hợp những tiện ích hỗ trợ cho các dựán con của Hadoop Bao gồm: tiện ích truy cập hệ thống file,RPC, …
9Hadoop Distributed File System Hệ thống file phân tán? HDFS? Kiến trúc của HDFS Cách thức lưu trữ và sửa lỗi
10Hệ thống fileỨng dụngỔ cứng vật lýHệ thống file (NTFS)
11Hệ thống file phân tánỨng dụngỔ cứng vật lýHệ thống fileHệ thống file phân tánỔ cứng vật lýHệ thống fileỔ cứng vật lýHệ ...
12Mục tiêu của HDFS Lưu trữ file rất lớn (hàng terabyte) Truy cập dữ liệu theo dòng Mô hình liên kết dữ liệu đơn giản• ...
13Điểm yếu của HDFS Ứng dụng cần truy cập với độ trễ cao• HDFS tối ưu quá trình truy cập file rất lớn Không thể lưu quá ...
14Kiến trúc HDFS
15Kiến trúc HDFS (t.t) Các khái niệm• Block: đơn vị lưu trữ dữ liệu nhỏ nhấtHadoop dùng mặc định 64MB/block1 file chia ...
16
17NameNode Thành phần trọng yếu của HDFS Quản lý và thực thi các thao tác liên quanđến tên file• Đóng, mở, đổi tên Quản...
18DataNode Quản lý các block Thực hiện thao tác trên dữ liệu• Thêm, xóa, nhận biết block• Thực hiện các yêu cầu xử lý dữ...
19Các thức lưu trữ & phát hiện lỗi Bản sao dữ liệu:• Mỗi file có nhiều bản sao  nhiều bản sao của block NameNode quyết ...
20
21Chính sách lưu trữ của các bản sao block Cực kỳ quan trọng Quyết định tính ổn định, an toàn, và khả năng vận hànhcủa h...
22Độ bền vững của HDFS Mục tiêu chính: đảm bảo dữ liệu chính xácngay cả khi lỗi hệ thống xảy ra 3 loại lỗi chính:• Lỗi ở...
23Độ bền vững của HDFS (t.t) DataNode gửi định kỳ Heartbeat lên NameNode• Xác định node bị lỗi nếu NameNode không nhậnđượ...
24Độ bền vững của HDFS (t.t) Lỗi ở NameNode• Có thể làm hệ thống HDFS vô dụng• Tạo các bản copy của FsImage và EditLog• K...
25Cơ chế hoạt động Đọc dữ liệu:• Chương trình client yêu cầu đọc dữ liệu từNameNode• NameNode trả về vị trí các block của...
26Cơ chế hoạt động (t.t)
27
28Cơ chế hoạt động (t.t) Ghi dữ liệu:• Ghi theo dạng đường ống (pipeline)• Chương trình yêu cầu thao tác ghi ở NameNode• ...
29Cơ chế hoạt động (t.t)
30
31Map Reduce Tại sao cần Map Reduce ? Map Reduce là gì ? Mô hình Map Reduce Thực thi Hadoop Map Reduce Demo
32Tại sao cần Map Reduce ? Xử lý dữ liệu với quy mô lớn• Muốn xử dụng 1000 CPU Mong muốn một mô hình quản lý đơn giản K...
33Map Reduce là gì ? Mô hình lập trình• MapReduce được xây dựng từ mô hình lập trình hàm và lập trình songsong Hệ thống ...
34Map Reduce là gì ? Cách tiếp cận : chia để trị• Chia nhỏ vấn đề lớn thành các vấn đề nhỏ• Xử lý song song từng việc nhỏ...
35Map Reduce là gì ?
36Mô hình Map Reduce Trải qua hai quá trình Map và Reduce Map Reduce định nghĩa dữ liệu dưới dạng cặp<key,value> Map <k...
37Mô hình Map Reduce Hàm Map• Mỗi phần tử của dữ liệu đầu vào sẽ đượctruyền cho hàm Map dưới dạng cặp<key,value>• Hàm Map...
38Mô hình Map Reduce Sau quá trình Map, các giá trị trung gian đượctập hợp thành các danh sách theo từng khóa Hàm Reduce...
39Ví dụ word count
40Ví dụ word count (tt) Mapper• Đầu vào : Một dòng của văn bản• Đầu ra : key : từ, value : 1 Reducer• Đầu vào : key : từ...
41Tính toán song song Hàm Map chạy song song tạo ra các giá trị trunggian khác nhau từ các tập dữ liệu khác nhau Hàm Red...
42Thực thi MR
43Thực thi ( bước 1) Chương trình (user program), thông quathư viện MapReduce phân mảnh dữ liệuđầu vàoUserProgramInputDat...
44Thực thi ( bước 2)• Map Reduce sao chép chương trình này vàocác máy cluster ( master và các worker )UserProgramMasterWor...
45Thực thi ( bước 3) Master phân phối M tác vụ Map và R tácvụ Reduce vào các worker rảnh rỗi Master phân phối các tác vụ...
46Thực thi ( bước 4) Mỗi map-task worker đọc dữ liệu từ phânvùng dữ liệu được gán cho nó và xuất ranhững cặp <key,value> ...
47Thực thi ( bước 5) Mỗi worker phân chia dữ liệu trung gianthành R vùng, lưu xuống đĩa, xóa dữ liệutrên bộ đệm và thông ...
48Thực thi ( bước 6) Master gán các dữ liệu trung gian và chỉ ravị trí của dữ liệu cho các reduce-taskMasterReduceworkerD...
49Thực thi ( bước 7) Mỗi reduce-task worker sắp xếp các key,gọi hàm reduce và xuất kết quả đầu raReduceworkerSorts data P...
50Thực thi ( bước 8) Master kích hoạt (wakes up) chương trìnhcủa người dùng thông báo kết quả hoànthành Dữ liệu đầu ra đ...
51Hadoop - Map Reduce Là một framework Sử dụng HDFS Kiến trúc master/slaveMaster SlaveDFS Namenode DatanoteMapReduce Jo...
52Hadoop - Map Reduce Client gửi MapReduce Job JobTracker điều phối việc thực thi Job TaskTracker thực thi các task đã ...
53Hadoop - Map Reduce
54Job Submission Yêu cầu ID cho job mới (1 ) Kiểm tra các thư mục đầu vào và đầu ra Chia tách dữ liệu đầu vào Chép các...
55Khởi tạo Job Thêm job vào hàng đợi & khơi tạo các tàinguyên (5) Tạo danh sách các tác vụ ( task ) (6)
56Phân phối các tác vụ TaskTracker định kỳ thông báo sẵn sàngnhận các tác vụ mới (7) JobTracker giao tác vụ cố định choT...
57Thực thi tác vụ TaskTracker Chép chương trình thực thi(Jar File) và các dữ liệu cần thiết từ hệthống chia sẻ file Tạo ...
58Cập nhật trạng thái Cập nhật trạng thái trong quá trìng thực thi• Tác vụ xử lý được bao nhiêu dữ liệu đầu vào ?• Tác vụ...
59Cập nhật trạng thái
60Kết thúc Job Khi JobTracker nhận được tín hiệu kết thúc củatác vụ cuối cùng JobTracker gủi tín hiệu success cho JobCli...
61Khả năng chịu lỗi Master phát hiện các lỗi Lỗi tác vụ (Task Failure)• Văng lỗi ngoại lệ, Bị giết bởi VJM, Treo• JobTra...
62Khả năng chịu lỗi Lỗi TaskTracker• Crashing, Chạy chậm, không gửi báo cáo đúng hạncho JobTracker• JobTracker loại bỏ Ta...
63Khả năng chịu lỗi Lỗi Jobtracker• Nghiêm trọng• Chưa có hướng giải quyết
64Tối ưu hóa Reduce chỉ bắt đầu khi toàn bộ Map kếtthúc• Đĩa trên một node truy xuất chậm có thể ảnhhưởng tới toàn bộ quá...
65Tối ưu hóa Đưa ra hàm combiner• Có thể chạy trên cùng máy với các mapper• Chạy độc lập với các mapper khác• Mini Reduce...
66Ứng dụng Sắp xếp dữ liệu phân tán Phân tích thống kê Web Ranking Dịch máy Indexing ...
67Tổng kết Là mô hình đơn giản để xử lý lượng dữliệu lớn trên mô hình phân tán Tập trung vào vấn đề chính cần xử lý
68Demo Word Count (1) Mappublic static class MapClass extends MapReduceBaseimplements Mapper {private final static IntWri...
69Demo Word Count (2) Reducepublic static class Reduce extends MapReduceBaseimplements Reducer {public void reduce(Writab...
70Demo Word Count (3) Mainpublic static void main(String[] args) throws IOException {//checking goes hereJobConf conf = n...
Upcoming SlideShare
Loading in …5
×

Hadoop

1,766 views

Published on

1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
1,766
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
158
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Hadoop

  1. 1. 1GV: TS. Hồ Bảo QuốcNhóm HV: Đinh Thị Lương 1011036Đoàn Cao Nghĩa 1011043Hồng Xuân Viên 1011067
  2. 2. 2Nội dung Giới thiệu• Nhu cầu thực tế• Hadoop là gì?• Lịch sử phát triển Các thành phần của Hadoop• Hadoop Common, HDFS, MapReduce
  3. 3. 3Nhu cầu thực tế Nhu cầu lưu trữ & xử lý dữ liệu hàng exabyte (1exabyte = 1021 bytes)• Đọc & truyền tải dữ liệu rất chậm Cần rất nhiều node lưu trữ với chi phí thấp• Lỗi phần cứng ở node xảy ra hàng ngày• Kích thước cluster không cố định Nhu cần cần có một hạ tầng chung• Hiệu quả, tin cậy
  4. 4. 4 Kiến trúc 2 tầng Các node là các PC Chia làm nhiều rack (khoảng 40 PC/rack)
  5. 5. 55Hadoop là gì? Nền tảng ứng dụng hỗ trợ các ứng dụng phântán với dữ liệu rất lớn.• Quy mô: hàng terabyte dữ liệu, hàng ngàn node. Thành phần:• Lưu trữ: HDFS (Hadoop Distributed Filesystem)• Xử lý: MapReduceHỗ trợ mô hình lập trình Map/Reduce
  6. 6. 6
  7. 7. 7Lịch sử phát triển 2002-2004: Doug Cutting giới thiệu Nutch 12/2004 – công bố bài báo về GFS & MapReduce 05/2005 – Nutch sử dụng MapReduce & DFS 02/2006 – Trở thành subproject của Lucene 04/2007 – Yahoo chạy 1000-node cluster 01/2008 – trở thành dự án cao cấp của Apache 07/2008 – Yahoo thử nghiệm 4000 node cluster
  8. 8. 8Hadoop Common Tập hợp những tiện ích hỗ trợ cho các dựán con của Hadoop Bao gồm: tiện ích truy cập hệ thống file,RPC, …
  9. 9. 9Hadoop Distributed File System Hệ thống file phân tán? HDFS? Kiến trúc của HDFS Cách thức lưu trữ và sửa lỗi
  10. 10. 10Hệ thống fileỨng dụngỔ cứng vật lýHệ thống file (NTFS)
  11. 11. 11Hệ thống file phân tánỨng dụngỔ cứng vật lýHệ thống fileHệ thống file phân tánỔ cứng vật lýHệ thống fileỔ cứng vật lýHệ thống file
  12. 12. 12Mục tiêu của HDFS Lưu trữ file rất lớn (hàng terabyte) Truy cập dữ liệu theo dòng Mô hình liên kết dữ liệu đơn giản• Ghi 1 lần, đọc nhiều lần Di chuyển quá trình xử lý thay vì dữ liệu Sử dụng phần cứng phổ thông, đa dạng Tự động phát hiện lỗi, phục hồi dữ liệu rất nhanh
  13. 13. 13Điểm yếu của HDFS Ứng dụng cần truy cập với độ trễ cao• HDFS tối ưu quá trình truy cập file rất lớn Không thể lưu quá nhiều file trên 1 cluster• NameNode lưu trên bộ nhớ -> cần nhiều bộ nhớ Không hỗ trợ nhiều bộ ghi, sửa dữ liệu bất kỳ
  14. 14. 14Kiến trúc HDFS
  15. 15. 15Kiến trúc HDFS (t.t) Các khái niệm• Block: đơn vị lưu trữ dữ liệu nhỏ nhấtHadoop dùng mặc định 64MB/block1 file chia làm nhiều blockCác block chứa ở bất kỳ node nào trong cluster• NameNodeQuản lý thông tin của tất cả các file trong cluster• DataNodeQuản lý các block dữ liệu
  16. 16. 16
  17. 17. 17NameNode Thành phần trọng yếu của HDFS Quản lý và thực thi các thao tác liên quanđến tên file• Đóng, mở, đổi tên Quản lý vị trí của các block
  18. 18. 18DataNode Quản lý các block Thực hiện thao tác trên dữ liệu• Thêm, xóa, nhận biết block• Thực hiện các yêu cầu xử lý dữ liệu
  19. 19. 19Các thức lưu trữ & phát hiện lỗi Bản sao dữ liệu:• Mỗi file có nhiều bản sao  nhiều bản sao của block NameNode quyết định việc tạo bản sao• Nhận dữ liệu Heartbeat & Blockreport từ DataNode Heartbeat: tình trạng chức năng của DataNode đó Blockreport: danh sách các block Thiết lập chính sách lưu trữ của các bản sao• Cơ chế xác định block đó thuộc node nào
  20. 20. 20
  21. 21. 21Chính sách lưu trữ của các bản sao block Cực kỳ quan trọng Quyết định tính ổn định, an toàn, và khả năng vận hànhcủa hệ thống Cần nhiều thời gian và kinh nghiệm Quan tâm đến kiến trúc vật lý: rack, bandwith Chính sách thông thường (không tối ưu)• Chia block làm 3 bản sao• Lưu ở node trong rack nội bộ, 2 block ở 2 node khác nhau trongrack khác (remote rack)
  22. 22. 22Độ bền vững của HDFS Mục tiêu chính: đảm bảo dữ liệu chính xácngay cả khi lỗi hệ thống xảy ra 3 loại lỗi chính:• Lỗi ở NameNode• Lỗi ở DataNode• Sự cản trở của mạng máy tính
  23. 23. 23Độ bền vững của HDFS (t.t) DataNode gửi định kỳ Heartbeat lên NameNode• Xác định node bị lỗi nếu NameNode không nhậnđược Heartbeat.• Đưa DataNode khỏi liên kết & cố gắng tạo bản saokhác Tái cân bằng cluster• Chuyển các block sang DataNode khác có khoảngtrống dưới đính mức qui định
  24. 24. 24Độ bền vững của HDFS (t.t) Lỗi ở NameNode• Có thể làm hệ thống HDFS vô dụng• Tạo các bản copy của FsImage và EditLog• Khi NameNode restart, hệ thống sẽ lấy bảnsao gần nhất.
  25. 25. 25Cơ chế hoạt động Đọc dữ liệu:• Chương trình client yêu cầu đọc dữ liệu từNameNode• NameNode trả về vị trí các block của dữ liệu• Chương trình trực tiếp yêu cầu dữ liệu tại cácnode.
  26. 26. 26Cơ chế hoạt động (t.t)
  27. 27. 27
  28. 28. 28Cơ chế hoạt động (t.t) Ghi dữ liệu:• Ghi theo dạng đường ống (pipeline)• Chương trình yêu cầu thao tác ghi ở NameNode• NameNode kiểm tra quyền ghi và đảm bảo file khôngtồn tại• Các bản sao của block tạo thành đường ống để dữliệu tuần tự được ghi vào
  29. 29. 29Cơ chế hoạt động (t.t)
  30. 30. 30
  31. 31. 31Map Reduce Tại sao cần Map Reduce ? Map Reduce là gì ? Mô hình Map Reduce Thực thi Hadoop Map Reduce Demo
  32. 32. 32Tại sao cần Map Reduce ? Xử lý dữ liệu với quy mô lớn• Muốn xử dụng 1000 CPU Mong muốn một mô hình quản lý đơn giản Kiến trúc Map Reduce• Quản lý tiến trình song song và phân tán• Quản lý, sắp xếp lịch trình truy xuất I/O• Theo dõi trạng thái dữ liệu• Quản lý số lượng lớn dữ liệu có quan hệ phụ thuộc nhau• Xử lý lỗi• Trừu tượng đối với các lập trình viên ….
  33. 33. 33Map Reduce là gì ? Mô hình lập trình• MapReduce được xây dựng từ mô hình lập trình hàm và lập trình songsong Hệ thống tính toán phân tán• Tăng tốc độ thực thi xử lý dữ liệu Giải quyết được nhiều bài toán Ẩn các chi tiết cài đặt, quản lý• Quản lý lỗi• Gom nhóm và sắp xếp• Lập lịch• ….
  34. 34. 34Map Reduce là gì ? Cách tiếp cận : chia để trị• Chia nhỏ vấn đề lớn thành các vấn đề nhỏ• Xử lý song song từng việc nhỏ• Tổng hợp kết quả Đọc dữ liệu lớn Rút trích thông tin cần thiết từ từng phần tử ( Map ) Trộn và sắp xếp các kết quả trung gian Tổng hợp các kết quả trung gian ( Reduce ) Phát sinh kết quả cuối cùng
  35. 35. 35Map Reduce là gì ?
  36. 36. 36Mô hình Map Reduce Trải qua hai quá trình Map và Reduce Map Reduce định nghĩa dữ liệu dưới dạng cặp<key,value> Map <k1,v1> -> list(<k2,v2>) Reduce <k2,list(<v2>)> -> < k3, v3 > (input) <k1, v1> -> map -> <k2, v2> -> combine -> <k2, v2>-> reduce -> <k3, v3> (output)
  37. 37. 37Mô hình Map Reduce Hàm Map• Mỗi phần tử của dữ liệu đầu vào sẽ đượctruyền cho hàm Map dưới dạng cặp<key,value>• Hàm Map xuất ra một hoặc nhiều cặp<key,value>
  38. 38. 38Mô hình Map Reduce Sau quá trình Map, các giá trị trung gian đượctập hợp thành các danh sách theo từng khóa Hàm Reduce• Kết hợp, xử lý, biến đổi các value• Đầu ra là một cặp <key,value> đã được xử lý
  39. 39. 39Ví dụ word count
  40. 40. 40Ví dụ word count (tt) Mapper• Đầu vào : Một dòng của văn bản• Đầu ra : key : từ, value : 1 Reducer• Đầu vào : key : từ, values : tập hợp các giá trịđếm được của mỗi từ• Đầu ra : key : từ, value : tổng
  41. 41. 41Tính toán song song Hàm Map chạy song song tạo ra các giá trị trunggian khác nhau từ các tập dữ liệu khác nhau Hàm Reduce cũng chạy song song, mỗi reducerxử lý một tập khóa khác nhau Tất cả các giá trị được xử lý độc lập Bottleneck: Giai đoạn Reduce chỉ bắt đầu khigiai đoạn Map kết thúc
  42. 42. 42Thực thi MR
  43. 43. 43Thực thi ( bước 1) Chương trình (user program), thông quathư viện MapReduce phân mảnh dữ liệuđầu vàoUserProgramInputDataShard 0Shard 1Shard 2Shard 3Shard 4Shard 5Shard 6
  44. 44. 44Thực thi ( bước 2)• Map Reduce sao chép chương trình này vàocác máy cluster ( master và các worker )UserProgramMasterWorkersWorkersWorkersWorkersWorkers
  45. 45. 45Thực thi ( bước 3) Master phân phối M tác vụ Map và R tácvụ Reduce vào các worker rảnh rỗi Master phân phối các tác vụ dựa trên vị trícủa dữ liệuMasterIdleWorkerMessage(Do_map_task)
  46. 46. 46Thực thi ( bước 4) Mỗi map-task worker đọc dữ liệu từ phânvùng dữ liệu được gán cho nó và xuất ranhững cặp <key,value> trung gian• Dữ liệu này được ghi tạm trên RAMMapworkerShard 0 Key/value pairs
  47. 47. 47Thực thi ( bước 5) Mỗi worker phân chia dữ liệu trung gianthành R vùng, lưu xuống đĩa, xóa dữ liệutrên bộ đệm và thông báo cho MasterMasterMapworkerDisk locationsLocalStorage
  48. 48. 48Thực thi ( bước 6) Master gán các dữ liệu trung gian và chỉ ravị trí của dữ liệu cho các reduce-taskMasterReduceworkerDisk locationsremoteStorage
  49. 49. 49Thực thi ( bước 7) Mỗi reduce-task worker sắp xếp các key,gọi hàm reduce và xuất kết quả đầu raReduceworkerSorts data PartitionOutput file
  50. 50. 50Thực thi ( bước 8) Master kích hoạt (wakes up) chương trìnhcủa người dùng thông báo kết quả hoànthành Dữ liệu đầu ra được lưu trong R tập tinwakeup UserProgramMasterOutputfiles
  51. 51. 51Hadoop - Map Reduce Là một framework Sử dụng HDFS Kiến trúc master/slaveMaster SlaveDFS Namenode DatanoteMapReduce Jobtracker Tasktracker
  52. 52. 52Hadoop - Map Reduce Client gửi MapReduce Job JobTracker điều phối việc thực thi Job TaskTracker thực thi các task đã được chia ra
  53. 53. 53Hadoop - Map Reduce
  54. 54. 54Job Submission Yêu cầu ID cho job mới (1 ) Kiểm tra các thư mục đầu vào và đầu ra Chia tách dữ liệu đầu vào Chép các tài nguyên bao gồi chương trình (Jar), các tậptin cấu hình, các mảnh dữ liệu đầu vào filesystem củajobtracker (3) Thông báo với jobtracker job sẵn sàng để thực thi (4)
  55. 55. 55Khởi tạo Job Thêm job vào hàng đợi & khơi tạo các tàinguyên (5) Tạo danh sách các tác vụ ( task ) (6)
  56. 56. 56Phân phối các tác vụ TaskTracker định kỳ thông báo sẵn sàngnhận các tác vụ mới (7) JobTracker giao tác vụ cố định choTaskTracker ( ví dụ 1 TaskTracker chạyđồng thời 2 map-task và 2 reduce-task)
  57. 57. 57Thực thi tác vụ TaskTracker Chép chương trình thực thi(Jar File) và các dữ liệu cần thiết từ hệthống chia sẻ file Tạo tiến trình TaskRunner để thực thi tácvụ
  58. 58. 58Cập nhật trạng thái Cập nhật trạng thái trong quá trìng thực thi• Tác vụ xử lý được bao nhiêu dữ liệu đầu vào ?• Tác vụ hoàn thành thành công ?• Tác vụ lỗi ? Task process gửi báo cáo 3s một lần cho TaskTracker TaskTracker gửi báo cáo 5s một lần cho JobTracker JobTracker tổng hợp các báo cáo, gửi lại cho JobClientmỗi giây một lần
  59. 59. 59Cập nhật trạng thái
  60. 60. 60Kết thúc Job Khi JobTracker nhận được tín hiệu kết thúc củatác vụ cuối cùng JobTracker gủi tín hiệu success cho JobClient JobClient thông báo cho chương trình củangười dùng JobTracker thu gom rác, hủy các kết quả trunggian
  61. 61. 61Khả năng chịu lỗi Master phát hiện các lỗi Lỗi tác vụ (Task Failure)• Văng lỗi ngoại lệ, Bị giết bởi VJM, Treo• JobTracker giao cho TaskTracker khác xử lý trongmột giới hạn nhất định• Hạn chế giao tác vụ mới cho TaskTracker đã xử lýtác vụ bị lỗi
  62. 62. 62Khả năng chịu lỗi Lỗi TaskTracker• Crashing, Chạy chậm, không gửi báo cáo đúng hạncho JobTracker• JobTracker loại bỏ TaskTracker ra khỏi bảng lịch biểutác vụ ( schedule tasks ) và thêm vào blacklist• JobTracker lập lịch lại để chạy các tác vụ đã trao choTaskTracer bị lỗi
  63. 63. 63Khả năng chịu lỗi Lỗi Jobtracker• Nghiêm trọng• Chưa có hướng giải quyết
  64. 64. 64Tối ưu hóa Reduce chỉ bắt đầu khi toàn bộ Map kếtthúc• Đĩa trên một node truy xuất chậm có thể ảnhhưởng tới toàn bộ quá trình Băng thông của mạng
  65. 65. 65Tối ưu hóa Đưa ra hàm combiner• Có thể chạy trên cùng máy với các mapper• Chạy độc lập với các mapper khác• Mini Reducer, làm giảm đầu ra của các giaiđoạn Map. Tiết kiệm băng thông
  66. 66. 66Ứng dụng Sắp xếp dữ liệu phân tán Phân tích thống kê Web Ranking Dịch máy Indexing ...
  67. 67. 67Tổng kết Là mô hình đơn giản để xử lý lượng dữliệu lớn trên mô hình phân tán Tập trung vào vấn đề chính cần xử lý
  68. 68. 68Demo Word Count (1) Mappublic static class MapClass extends MapReduceBaseimplements Mapper {private final static IntWritable one = new IntWritable(1);private Text word = new Text();public void map(WritableComparable key, Writable value,OutputCollector output, Reporter reporter)throws IOException {String line = ((Text)value).toString();StringTokenizer itr = new StringTokenizer(line);while (itr.hasMoreTokens()) {word.set(itr.nextToken());output.collect(word, one);}}}
  69. 69. 69Demo Word Count (2) Reducepublic static class Reduce extends MapReduceBaseimplements Reducer {public void reduce(WritableComparable key, Iteratorvalues, OutputCollector output, Reporter reporter)throws IOException {int sum = 0;while (values.hasNext()) {sum += ((IntWritable) values.next()).get();}output.collect(key, new IntWritable(sum));}}
  70. 70. 70Demo Word Count (3) Mainpublic static void main(String[] args) throws IOException {//checking goes hereJobConf conf = new JobConf();conf.setOutputKeyClass(Text.class);conf.setOutputValueClass(IntWritable.class);conf.setMapperClass(MapClass.class);conf.setCombinerClass(Reduce.class);conf.setReducerClass(Reduce.class);conf.setInputPath(new Path(args[0]));conf.setOutputPath(new Path(args[1]));JobClient.runJob(conf);}

×