TÌM HIỂU VỀ ĐIỆN TOÁN ĐÁM MÂY.
Trang 1ĐỀ CƯƠNG:
ĐỀ TÀI : TÌM HIỂU VỀ ĐIỆN TOÁN ĐÁM MÂY
I.ĐIỆN TOÁN ĐÁM MÂY 1.1 Khái niệm.
1.2.Các đặc điểm của điện toán đám mây
1.3 Ưu và nhược của mô hình "Điện toán đám mây" 1.4.Sự cần thiết của điện toán đám mây.
II.HOẠT ĐỘNG CỦA ĐIỆN TOÁN ĐÁM MÂY 2.1.Kiến trúc của ứng dụng điện toán đám mây 2.2.Kiến trúc của máy chủ.
2.3.Map Reduce 2.4.Hadoop.
III ĐIỆN TOÁN ĐÁM MÂY – XU HƯỚNG CÔNG NGHỆ MỚI TẠI VIỆT NAM IV ĐIỆN TOÁN ĐÁM MÂY CỦA MICROSOFT.
V TỔNG KẾT.
Trang 2I ĐIỆN TOÁN ĐÁM MÂY1.1 Khái niệm
Điện toán đám mây (Thuật ngữ tiếng Anh: Cloud Computing, hay còn biết đến
với tên gọi “Điện toán máy chủ ảo”) là mô hình máy tính dựa trên nền tảng phát triển của Internet.
Điện toán đám mây là sự nâng cấp từ mô hình máy chủ mainframe sang mô hình cleint-server Cụ thể, người dùng sẽ không còn phải có các kiến thức về chuyên mục để điều khiển các công nghệ, máy móc và cơ sở hạ tầng, mà các chuyên gia trong “đám mây” của các hãng cung cấp sẽ giúp thực hiện điều đó.
Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa vào cách được bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng về độ phức tạp của các cơ sở hạ tầng chứa trong nó Ở mô hình điện toán này, mọi khả năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó.
Ví dụ nếu một website được chứa trên một máy chủ, người dùng phải lựa chọn hệ điều hành để cài đặt (Linux/Windows/Mac), tiến hành các thiết lập để máy chủ và website có thể hoạt động Tuy nhiên, nếu trang web được chứa trên “đám mây”, người dùng sẽ không cần phải thực hiện thêm bất cứ điều gì khác Điều này cũng đảm bảo yếu tố đầu tư về phần cũng được giảm tải ở mức tối đa.
Sơ đồ điện toán đám mây, với các dịch vụ được cung cấp nằm bên trong “đámmây” được truy cập từ các máy tính ở bên ngoài.
Trang 3Tài nguyên, dữ liệu, phần mềm và các thông tin liên quan đều được chứa trên các server (chính là các “đám mây”).
Nói một cách đơn giản nhất “ứng dụng điện toán đám mây” chính là những ứng dụng trực tuyến trên Internet Trình duyệt là nơi ứng dụng hiện hữu và vận hành còn dữ liệu được lưu trữ và xử lý ở máy chủ của nhà cung cấp ứng dụng đó.
1.2.Các đặc điểm của điện toán đám mây.
Điện toán đám mây có những đặc điểm chính sau đây: Tránh phí tổn cho khách hàng.
Độc lập thiết bị và vị trí: cho phép khách hàng truy cập hệ thống từ bất kỳ nơinào hoặc bằng bất kỳ thiết bị gì.
Nhiều người sử dụng: giúp chia sẻ tài nguyên và giá thành, cho phép tập trunghóa cơ sở hạ tầng, tận dụng hiệu quả các hệ thống.
Phân phối theo nhu cầu sử dụng Quản lý được hiệu suất
Tin cậy
Khả năng mở rộng Cải thiện tài nguyên Khả năng duy trì.
1.3 Ưu và nhược của mô hình "Điện toán đám mây":
1.3.1 Ưu điểm: Những ưu điểm và thế mạnh dưới đây đã góp phần giúp "điện toán
đám mây" trở thành mô hình điện toán được áp dụng rộng rãi trên toàn thế giới.
a Tốc độ xử lý nhanh, cung cấp cho người dùng những dịch vụ nhanh chóng và giá thành rẻ dựa trên nền tảng cơ sở hạ tầng tập trung (đám mây).
b Chi phí đầu tư ban đầu về cơ sở hạ tầng, máy móc và nguồn nhân lựa của người sử dụng điện toán đám mây được giảm đến mức thấp nhất.
c Không còn phụ thuộc vào thiết bị và vị trí địa lý, cho phép người dùng truy cập và sử dụng hệ thống thông qua trình duyệt web ở bất kỳ đâu và trên bất kỳ thiết bị nào mà họ sử dụng (chẳng hạn là PC hoặc là điện thoại di động…)
d Chia sẻ tài nguyên và chi phí trên một địa bàn rộng lớn, mang lại các loại ích cho người dùng như:
Trang 4• Công suất xử lý nhanh hơn do tài nguyên được tập trung Ngoài ra, người dùng không cần phải đầu tư về nguồn nhân lực quản lý hệ thống.
• Khả năng khai thác và hiệu suất được cài thiện hơn 10-20% so với hệ thống máy tính cá nhân thông thường.
e Với độ tin cậy cao, không chỉ giành cho người dùng phổ thông, điện toán đám mây phù hợp với các yêu cầu cao và liên tục của các công ty kinh doanh và các nghiên cứu khoa học Tuy nhiên, một vài dịch vụ lớn của điện toán đám mây đôi khi rơi vào trạng thái quá tải, khiến hoạt động bị ngưng trệ Khi rơi vào trạng thái này, người dùng không có khả năng để xử lý các sự cố mà phải nhờ vào các chuyên gia từ đám mây tiến hành xử lý.
f Khả năng mở rộng được, giúp cải thiện chất lượng các dịch vụ được cung cấp trên “đám mây”.
g Khả năng bảo mật được cài thiện do sự tập trung về dữ liệu.
h Các ứng dụng của điện toán đám mây dễ dàng để sửa chữa hơn bởi lẽ chúng không được cìa đặt cố định trên một má tính nào Chúng cũng dễ dàng hỗ trợ và cài thiện về tính năng.
i Tài nguyên sử dụng của điện toán đám mây luôn được quản lý và thống kê trên từng khách hàng và ứng dụng, theo từng ngày, từng tuần, từng tháng Điều này đảm bảo cho việc định lượng giá cả của mỗi dịch vụ do điện toán đám mây cung cấp để người dùng có thể lựa chọn phù hợp.
1.3.2 Nhược điểm: Tuy nhiên, mô hình điện toán này vẫn còn mắc phải một số nhược
điểm sau:
a Tính riêng tư:
Các thông tin người dùng và dữ liệu được chứa trên điện toán đám mây có đảm bảo được riêng tư, và liệu các thông tin đó có bị sử dụng vì một mục đích nào khác?
b Tính sẵn dùng:
Liệu các dịch vụ đám mây có bị “treo” bất ngờ, khiến cho người dùng không thể truy cập các dịch vụ và dữ liệu của mình trong những khoảng thời gian nào đó khiến ảnh hưởng đến công việc?
c Mất dữ liệu:
Trang 5Một vài dịch vụ lưu trữ dữ liệu trực tuyến trên đám mây bất ngờ ngừng hoạt động hoặc không tiếp tục cung cấp dịch vụ, khiến cho người dùng phải sao lưu dữ liệu của họ từ “đám mây” về máy tính cá nhân Điều này sẽ mất nhiều thời gian Thậm chí một vài trường hợp, vì một lý do nào đó, dữ liệu người dùng bị mất và không thể phục hồi được.
Dữ liệu chứa trên các "đám mây" sẽ phải giao phó toàn bộ"số phận" cho "đám mâyd Tính di động của dữ liệu và quyền sở hữu:
Một câu hỏi đặt ra, liệu người dùng có thể chia sẻ dữ liệu từ dịch vụ đám mây này sang dịch vụ của đám mây khác? Hoặc trong trường hợp không muốn tiếp tục sử dụng dịch vụ cung cáp từ đám mây, liệu người dùng có thể sao lưu toàn bộ dữ liệu của họ từ đám mây? Và làm cách nào để người dùng có thể chắc chắn rằng các dịch vụ đám mây sẽ không hủy toàn bộ dữ liệu của họ trong trường hợp dịch vụ ngừng hoạt động.
e Khả năng bảo mật:
Vấn đề tập trung dữ liệu trên các “đám mây” là cách thức hiệu quả để tăng cường bảo mật, nhưng mặt khác cũng lại chính là mối lo của người sử dụng dịch vụ của điện toán đám mây Bởi lẽ một khi các đám mây bị tấn công hoặc đột nhập, toàn bộ dữ liệu sẽ bị chiếm dụng Tuy nhiên, đây không thực sự là vấn đề của riêng “điện toán đám mây”, bởi lẽ tấn công đánh cắp dữ liệu là vấn đề gặp phải trên bất kỳ môi trường nào, ngay cả trên các máy tính cá nhân.
1.4 Sự cần thiết của điện toán đám mây.
Trang 6Điện toán đám mây có khả năng sẽ mở ra những giá trị vĩ đại cho các nguồn lực
ngoài (Outsourcing) của ngành CNTT và làm thay đổi bộ mặt của ngành dịch vụ
CNTT truyền thống.
Dưới đây sẽ là những gì ngành công nghiệp Outsourcing đang phản ứng tương tác với sự phát triển của điện toán đám mây.
Các hợp đồng dịch vụ Outsourcing truyền thống luôn mang những nội dung khá rõ ràng với các máy chủ, các trung tâm dữ liệu, mạng lưới, các chỉ tiêu kỹ thuật, hiệu suất công việc và dòng mã sản phẩm Sự xuất hiện của điện toán đám mây lại đang làm thay đổi tất cả những điều đó nhờ sự xuất hiện của các dịch vụ CNTT năng động như một cơ sở cần thiết cho những viễn cảnh công nghệ dành cho doanh nghiệp.
Nhờ các dịch vụ đám mây điện toán, nhiều đơn vị CNTT sẵn lòng đi trước một bước hơn trong việc tạo ra các tùy biến: Chúng giúp các hãng CNTT dần loại bỏ được những chi phí vốn khá tốn kém từ cơ sở hạ tầng đến các phần mềm tiếp cận khách hàng và những vấn đề trung gian khác Và hệ quả là, điện toán đám mây đang làm thay đổi hoàn toàn bộ mặt của các dịch vụ CNTT truyền thống.
Susan Tan, giám đốc dịch vụ CNTT và nghiên cứu nguồn lực của Gartner cho
rằng: “Điện toán đám mây là bước chuyển cơ bản của các công ty trong việc chi tiềnvà tiếp cận các dịch vụ CNTT” Trên thực tế, Gartner dự đoán cho đến năm 2012, 20%
công việc kinh doanh sẽ là ảo và không có bất kỳ tài sản CNTT nào Đây sẽ là người thay đổi cuộc chơi dành cho các nhà sản xuất dịch vụ Outsourcing, từ các nhà cung
Trang 7cấp và tư vấn dịch vụ “onshore” đến dịch vụ thuê ngoài, các nhà tích hợp hệ thống đến các nhà sản xuất mới riêng biệt, nhằm làm cuộc chơi tốt hơn hoặc xấu đi.
Phil Fersht, sáng lập viên của công ty tư vấn dịch vụ thuê ngoài Horses for
Sources cho rằng:“Nếu điện toán đám mây chỉ là một ngành khai thác các cơ sở hạtầng đắt đỏ, rắc rối và không thân thiện với môi trường trong đó, Amazon và các côngty khác phân phối các năng lượng điện toán, thì điện toán đám mây đơn giản chỉ làngành cung cấp các ích lợi về cơ sở hạ tầng Tuy nhiên, nếu để các dữ liệu và trìnhứng dụng được lưu giữ bên ngoài đám mây, người sử dụng liệu có cần phải tự mìnhquản lý chúng nữa không? Người sử dụng có thật sự cần phải đạt được các lợi íchcạnh tranh đi cùng với việc thực hiện các hợp đồng bảo hiểm? Hay đã đến lúc tìmkiếm các nhà cung cấp dịch vụ có chức năng quản lý trình ứng dụng, cơ sở hạ tầng cóliên quan và thực hiện các giao dịch chưa?”
Trang 8Fersht gọi các dịch vụ đám mây là nền tảng cho các giải pháp nguồn dành cho doanh nghiệp thế hệ kế tiếp Ông tin rằng các dịch vụ đám mây sẽ làm cho quá trình phân
phối truyền thống của các dịch vụ CNTT hiệu quả hơn và tiết kiệm chi phí hơn “Chúngcũng giúp tạo ra một cơ cấu phân phối cho các dịch vụ gia công thực sự Thế hệ dịch vụthuê ngoài mới này có khả năng mở ra những giá trị to lớn cho khách hàng”
II HOẠT ĐỘNG CỦA ĐIỆN TOÁN ĐÁM MÂY2.1 Kiến trúc của ứng dụng điện toán đám mây.
Trang 9Chúng ta biết rằng điện toán đám mây là một tổ hợp tính toán dựa trên các thiết bị hạ tầng phần cứng trong một đám mây của nhà cung cấp dịch vụ Hạ tầng phần cứng bao gồm các sản phẩm máy chủ chứa dữ liệu nhỏ được kết nối lại với nhau như một hệ thống phục vụ cho việc lưu trữ và xử lý dữ liệu và các ứng dụng tính toán trên các tài nguyên khác Điện toán đám mây gọi một ứng dụng chạy trên máy chủ ảo như là nó đang chạy tại chỗ trên hạ tầng phần cứng phân tán trong đám mây Những máy chủ ảo được tạo ra theo những cách mà ở đó những thỏa thuận dịch vụ (SLA) khác nhau và sự tin cậy đều được đảm bảo Có thể có nhiều thực thể khác nhau của cùng một máy chủ ảo truy cập vào những phần sẵn sàng của cơ sở hạ tầng phần cứng Điều này đảm bảo rằng có nhiều bản sao của các ứng dụng, để khi xảy ra lỗi chúng sẵn sàng khắc phục Máy chủ ảo phân tán quá trình xử lý vào cơ sở hạ tầng phần cứng và sau khi quá trình tính toán được hoàn thành chúng sẽ trả về kết quả Quá trình này cần có một phần mềm hoặc hệ điều hành xử lý công việc quản lý hệ thống phân tán, giống như kỹ thuật tính toán lưới, giúp quản lý các yêu cầu khác nhau đến máy chủ ảo Cơ chế này sẽ đảm bảo việc tạo ra nhiều bản sao và cả việc bảo vệ sự thống nhất dữ liệu được lưu trên cơ sở hạ tầng Đồng thời hệ điều hành đó cũng có thể tự điều chỉnh như là khi gặp quá tải các tiến trình, phân chia xử lý để hoàn thành đáp ứng yêu cầu Hệ thống quản lý công việc như vậy được che dấu với người dùng, hay nói các khác là ẩn với người dùng Sự độc lập với người dùng thể hiện ở chỗ nó xử lý và trả về kết quả đạt được, chứ không cần phải quan trọng nó ở đâu và nó thực hiện điều đó bằng cách nào Người dùng trả tiền trên lưu lượng sử dụng hệ thống, như đã nói dịch vụ được tính bằng chu kỳ của CPU hoặc byte Thực tế số tiền mà khách hàng phải trả thường được tính dựa vào lưu lượng dùng CPU trên một giờ hoặc số Gb dữ liệu di chuyển trong một giờ.
Trang 102.2 Kiến trúc máy chủ:
Điện toán đám mây được tạo thành bằng cách sử dụng tài nguyên vật lý lớn từ
nhiều máy chủ trong đám mây của nhà cung cấp dịch vụ Đây là một ứng dụng của nguyên tắc kết hợp vào trong bài toán cần một hệ thống tính toán lớn mà thiết bị hoặc cơ sở vật chất không cho phép nên chúng ta cần phải ghép những thiết bị, những hệ thống nhỏ lại với nhau để trở thành một hệ thống lớn đáp ứng những nhu cầu lớn hơn
cho người sử dụng trong những hệ thống yêu cầu tính toán và lưu trữ lớn Như đã nói
bên trên, dịch vụ và ứng dụng của điện toán đám mây dựa trên máy chủ ảo được thiết kế từ tài nguyên góp lại này Có hai ứng dụng (hoặc hệ điều hành) sẽ giúp quản lý các thể hiện trên máy trong đám mây, cũng như quản lý tất cả các tài nguyên của các thể hiện máy chủ ảo Đây là một ứng dụng nguyên lý tách khỏi vào trong hệ thống điện toán đám mây nhằm tách biệt phần cứng phức tạp của hệ thống vói giao diện bên ngoài Nhằm tạo ra một giao diện người dùng đơn giản, dễ sử dụng hơn so với phần cứng phức tạp bên dưới và cũng là để tách biệt giao diện người dùng với hệ thống phần cứng, khi đó người dùng chỉ cần quan tâm đến những ứng dụng mà học cần chứ không cần quan tâm đến phần cứng bên dưới được thực hiện như thế nào Ứng dụng thứ nhất là Xen hypervisor cung cấp các lớp trừu tượng giữa phần cứng và hệ điều hành ảo, nhờ vậy sự phân tán của các tài nguyên và tiến trình được quản lý giống như là đang thực hiện trên một máy Ứng dụng thứ hai cũng được sử dụng rộng rãi là hệ thống quản lý máy chủ ảo Enomalism, nó được sử dụng để quản lý hạ tầng phần cứng nền tảng.
Khi Xen sử dụng cho các lớp ảo của các cơ sở hạ tầng máy chủ, một lớp phần mềm là Xen hypervisor đã được cài đặt giữa máy chủ và hệ điều hành Nó cung cấp
Trang 11một lớp trừu tượng cho phép mỗi server vật lý có thể được chạy như là một hoặc nhiều máy chủ ảo, tách riêng hệ điều hành và các ứng dụng của nó khỏi lớp phần cứng vật lý bên dưới Xen hypervisor là một công nghệ mã nguồn mở, được cộng tác phát triển bởi Xen và các kỹ sư của hơn 20 công ty nổi tiếng về trung tâm dữ liệu có tính chất đổi mới bao gồm : AMD, Cisco, Dell, HP, IBM, Intel, Mellanox, Network Appliance, Novell, Red Hat, SGI, Sun, Unisys, Veritas, Voltaire, and Citrix Xen được đăng ký bởi GNU General Public License (GPL2) và được sử dụng không được thay đổi về mã nguồn và định dạng đối tượng Xen Hypervisor cũng đặc biệt ngắn - ít hơn 50.000 dòng mã Vì vậy chi phí dịch mã code rất thấp và hiệu suất gần giống như trên máy nguyên thủy Xen tái sử dụng các trình điều khiển thiết bị hiện có (đối với cả hai loại là mở và đóng mã nguồn) từ Linux, làm cho thiết bị quản lý dễ dàng Hơn nữa Xen rất mạnh mẽ để điều khiển lỗi và bảo vệ cả người dùng và hypervisor khỏi các vấn đề với các lỗi từ các driver độc hại.
Hệ thống quản lý máy chủ ảo Enomalism là một nền tảng hạ tầng cơ sở máy chủ ảo hoàn chỉnh Enomalism quản lý ảnh hưởng giữa các tài nguyên trong hệ thống Enomalism có thể sử dụng để dẫn các luồng tính toán vào đám mây giống như là luồng từ khách hàng được đi vào thực hiện tính toán trên một máy chủ từ xa Nó mang tất cả những tính năng như: triển khai kế hoạch tính toán, cân bằng tải, tránh xung đột tài nguyên… Enomalism cũng là một ứng dụng mã nguồn mở, nó có một giao diện người dùng dựa trên nền web rất đơn giản và dễ sử dụng Nó có kiến trúc từng phần dễ dàng cho phép tạo và thêm vào hệ thống các bổ sung và các tiện ích cần thiết cho việc sử dụng Nó hỗ triển khai tổ chức phân tán và tạo các ứng dụng dựa trên tổng quang chung Nó hỗ trợ quản lý các trường ảo khác nhau gồm KVM/Qemu, Amazon EC2 and Xen, OpenVZ, Linux Containers, VirtualBox Nó có chế độ phân quyền người dùng và đặt quyền truy cập.
Trang 12Map Reduce là một mô hình lập trình, được Google phát triển vào năm 2003, để hỗ trợ cho quá trình tính toán song song trên số lượng tập các dữ liệu cực lớn (vài tỷ byte) lưu trữ ở các cụm máy tính thành phần trong đám mây điện toán Trong mô hình
này, người dùng định nghĩa một hàm map để tính toán một cặp khóa/giá trị đầu vào vàtạo nên một tập các cặp khóa/giá trị tạm thời, sau đó hàm reduce sẽ gom nhóm tất cả
những giá trị tạm thời nào có chung khóa lại với nhau cho ra kết quả mong muốn Rất nhiều các tác vụ trong đời sống thực có thể được thực thi bằng mô hình này,chúng ta sẽ xem xét cụ thể hơn ở phần sau.
Chương trình được viết theo kiểu chức năng này được song song hóa một cách tự động và được thực thi trên một cụm lớn các “máy tính hàng hóa” (các máy tính thành phần cấu tạo nên đám mây điện toán) Hệ thống khi chạy sẽ quan tâm chi tiết phân vùng của dữ liệu đầu vào, lập lịch quá trình thực thi chương trình thông qua một tập các máy tính thành phần, xử lý lỗi và quản lý các kết nối nội giữa các máy tính thành phần Điều này cho phép các lập trình viên ngay cả chưa có bất kỳ kinh nghiệm nào trong các hệ thống song song và phân tán đều có thể dễ dàng tối ưu hóa các tài nguyên của một hệ thống phân tán lớn
Trong vòng vài năm trước đây, các kỹ sư của Google phải khởi tạo hàng trăm các quá trình tính toán dành cho các mục đích đặc biệt trên số lượng lớn các dữ liệu thô như các dữ liệu móc nối, nhật ký các trang web yêu cầu…Các quá trình tính toán này dùng cho nhiều mục đích khác nhau như tóm tắt số lượng các trang đã được móc nối bởi từng host, tính tần số truy xuất của 1 trang web, tìm ra tập các câu truy vấn được dùng nhiều nhất trong ngày…Hầu hết các tính toán này đều không phức tạp,nhưng dữ liệu đầu vào thường rất lớn và quá trình tính toán cần phải được phân tán cho hàng trăm ngàn máy nhằm có thể thực thi trong khoảng thời gian cho phép Các vấn đề về việc song song hóa tính toán,phân tán dữ liệu và quản lý lỗi đã làm cho các quá trình tính toán vốn đơn giản này trở nên vô cùng phức tạp.
Để giải quyết vấn đề, các kỹ sư của Google đã thiết kế một mô hình trừu tượng cho phép chúng ta diễn tả quá trình tính toán này một cách đơn giản như vốn dĩ của nó, đồng thời che dấu đi các chi tiết phức tạp trong việc song song hóa, chấp nhận lỗi, cân bằng nạp, phân tán dữ liệu trong một thư viện riêng Sự trừu tượng hóa này được lấy ý
tưởng từ 2 thành phần cơ bản là map và reduce trong Lisp và nhiều loại ngôn ngữ lập
trình hàm khác Chúng ta có thể nhận thấy rằng trong hầu hết các quá trình tính toán
Trang 13của chúng ta đều bao gồm một thao tác map, ánh xạ các đầu vào với các giá trị của
“bản ghi” để thực hiện việc tính toán các giá trị đó thành 1 tập các cặp khóa/giá trị tạm
thời, sau đó ta lại tạo thêm một thao tác reduce, thu gọn các giá trị mà có cùng key lạivới nhau và cho ra kết quả.Việc sử dụng mô hình hàm chức năng map và reduce cho
phép chúng ta có thể thực thi song song các tính toán lớn dễ dàng và có thể sử dụng quá trình thực thi lại như một cơ chế chấp nhận lỗi.
Các thế mạnh chính của phương pháp này là cung cấp cho chúng ta một giao diện đơn giản và mạnh mẽ, cho phép song song hóa và phân tán dữ liệu trong các phép toán lớn một cách tự động, giúp cho ta thu được hiệu năng cao nhất trong số lượng lớn các cụm máy tính thành phần của đám mây điện toán Ở phần sau chúng ta sẽ lần lượt xem xét mô hình lập trình cơ bản của MapReduce và một vài ví dụ đơn giản
Mô hình lập trình
Quá trình tính toán nhận một cặp giá trị đầu vào gồm khóa/giá trị, và tính toán cho ra một tập các cặp khóa/giá trị đầu ra Người dùng sử dụng thư viện MapReduce
để diễn tả quá trình này thông qua hai hàm là Map và Reduce.
Map là hàm được định nghĩa bởi người dùng, nhận một cặp giá trị đầu vào và
tạo ra các cặp giá trị trung gian.Thư viện MapReduce nhóm tất cả các giá trị trung gian
có liên quan tới key I lại với nhau và chuyển nó cho hàm Reduce.
Hàm Reduce cũng được viết bởi người dùng, chấp nhận key I và các tập giá trị
trung gian của key I này Sau đó tiến hành hợp nhất các giá trị này thành một tập các giá trị nhỏ hơn nếu có thể Một lần nữa nguyên tắc kết hợp lại được sử dụng trong hệ
Trang 14song song nhằm làm giảm thời gian thực hiện một bài toán thì hệ thống tiến hành kết hợp các kết quả tính toán từ các tiến trình nhỏ song song lại với nhau để đưa ra một kết
quả tính toán thống nhất của chương trình tính toán mà người dùng yêu cầu Thông
thường chỉ có một giá trị output được đưa ra từ hàm Reduce hoặc không có giá trị nào
Ví dụ:
Giả sử chúng ta có một bài toán là đếm số lần xuất hiện của một từ trong một bộ tài liệu lớn, người dùng cần phải viết một đoạn code tương tự với mã giả sau đây:
map(String key,String value): //key: tên của tài liệu //value:nội dung tài liệu đó Với mỗi chữ cái w trong value :
EmitIntermediate(w,”1”); reduce(String key,Iterator values): //key: chữ cái cần đếm
//values:danh sách các số đếm trong map int result = 0;
với mỗi giá trị v trong values: result += ParseInt(v);
Emit(AsString(result)) ;
Hàm map thêm vào mỗi từ một số tương ứng với số lần xuất hiện của nó (trong ví dụ đơn giản trên là ‘1’) Hàm reduce làm nhiệm vụ cộng tất cả các số đếm của từ đó Sau đó, người dùng cần phải thực hiện thêm các thủ tục khai báo đặc tả đối
tượng mapreduce với tên của các file input, output và các biến tùy chỉnh Người dùng
Trang 15sau đó gọi hàm MapReduce, chuyển cho nó đối tượng đã đặc tả ở trên, lúc này cácđoạn code của người dùng được liên kết lại thông qua thư viện MapReduce
Tổng quan quá trình thực thi
Quá trình gọi thực thi hàm Map được phân tán trong nhiều các máy thành viên
của đám mây điện toán bằng cách tự động phân vùng các giá trị đầu vào thành một bộ gồm M phần Các phần này có thể được tính toán song song bởi các máy khác nhau.
Tương tự hàm Reduce cũng được phân tán bằng cách phân vùng các khóa giá trị trung
gian thành R mảnh bằng các hàm phân vùng (ví dụ như hash(key) mod R) Số lượng R và hàm phân vùng có thể được chỉ rõ bởi người dùng.
Hình bên dưới cho chúng ta cái nhìn tổng quát nhất về luồng thực thi một thao tác
MapReduce.