Kiến trúc khung tính toán

Một phần của tài liệu Bài Giảng Lưu Trữ Và Phân Tích Dữ Liệu (Trang 77 - 89)

CHƯƠNG 4: KIẾN TRÚC CƠ SỞ DỮ LIỆU LỚN

4.1. Kiến trúc khung tính toán (computing frameworks)

4.1.2 Kiến trúc khung tính toán

Điện toán dữ liệu lớn là một mô hình khoa học dữ liệu mới nổi về khai thác thông tin đa chiều để khám phá khoa học và phân tích kinh doanh trên cơ sở hạ tầng quy mô lớn. Dữ liệu được thu thập/tạo ra từ một số hoạt động khám phá khoa học và giao dịch kinh doanh thường yêu cầu các công cụ hỗ trợ quản lý, phân tích, xác thực, trực quan hóa và phổ biến dữ liệu hiệu quả, đồng thời duy trì giá trị nội tại của dữ liệu. Những tiến bộ mới trong công nghệ bán dẫn cuối cùng dẫn đến máy tính nhanh hơn, lưu trữ quy mô lớn và mạng nhanh hơn và mạnh mẽ với giá thấp hơn, cho phép khối lượng lưu trữ và sử dụng dữ liệu với tốc độ nhanh hơn. Những tiến bộ gần đây trong công nghệ điện toán đám mây cho phép lưu giữ từng bit dữ liệu được thu thập và xử lý, dựa trên các mô hình đăng ký, cung cấp khả năng lưu trữ và tính toán cao với giá cả phải chăng. Các hệ thống lưu trữ dữ liệu thông thường dựa trên các phân tích được xác định trước đối với dữ liệu đã được trừu tượng hóa và sử dụng tính năng làm sạch và chuyển đổi thành một cơ sở dữ liệu khác được gọi là data marts; được cập nhật định kỳ với loại dữ liệu cuộn lên tương tự.

Điện toán chia làm 3 loại:

• Single node computing

• Parallel computing

• Distributed computing

Những tiến bộ trong công nghệ thông tin và sự phát triển vượt bậc của nó trong một số lĩnh vực kinh doanh, kỹ thuật, y tế và nghiên cứu khoa học đang dẫn đến sự bùng nổ thông tin/dữ liệu. Khám phá tri thức và đưa ra quyết định từ dữ liệu khổng lồ đang phát triển nhanh chóng như vậy là một nhiệm vụ đầy thách thức về mặt tổ chức và xử lý dữ liệu, đây là một xu hướng mới nổi được gọi là điện toán dữ liệu lớn, một mô hình mới kết hợp tính toán quy mô lớn, các kỹ thuật sử dụng dữ liệu mới và các mô hình toán học để xây dựng phân tích dữ liệu. Điện toán dữ liệu lớn đòi hỏi một bộ nhớ và tính toán khổng lồ để quản lý và xử lý dữ liệu có thể được phân phối từ cơ sở hạ tầng tại chỗ hoặc đám mây. Do đó, một kiến trúc mạnh mẽ mới là cần thiết để lưu trữ và xử lý thông tin.

Ban đầu các phương pháp lập trình mới được phát triển dựa trên xử lý song song và sau đó các mô hình phân tán được phát triển. Đây là nơi mà các khung Hadoop, Spark, Flink and Storm được phát triển và triển khai để xử lý dữ liệu lớn kể từ vài năm trước. Các nền tảng này đang cho thấy những kết quả đầy hứa hẹn. Trong bài giảng này sẽ tập trung vào thảo luận về sự phát triển của các nền tảng điện toán dữ liệu lớn và so sánh khung Hadoop, Spark, Flink và Storm.

4.1.2.1. Single node computing

• Một nút duy nhất (thường là nhiều lõi)

• Được gắn vào kho dữ liệu (Đĩa, SSD,…)

• Một quy trình với nhiều luồng tiềm năng 4.1.2.1. Parallel computing

• Kho dữ liệu chung

• Nhiều bộ xử lý

• Thực hiện song song các nhiệm vụ

• Giao tiếp bộ xử lý

Hình 4. 6: Tính toán song song

Tính toán song song đề cập đến quá trình chia nhỏ các vấn đề lớn hơn thành các phần nhỏ hơn, độc lập, thường là tương tự nhau có thể được thực hiện đồng thời bởi nhiều bộ xử lý giao tiếp thông qua bộ nhớ dùng chung, kết quả của chúng được kết hợp khi hoàn thành như một phần của thuật toán tổng thể. Mục tiêu chính của tính toán song

song là tăng khả năng tính toán sẵn có để xử lý ứng dụng và giải quyết vấn đề nhanh hơn.

Cơ sở hạ tầng tính toán song song thường được đặt trong một trung tâm dữ liệu duy nhất, nơi một số bộ xử lý được cài đặt trong một giá đỡ máy chủ; các yêu cầu tính toán được máy chủ ứng dụng phân phối thành từng phần nhỏ, sau đó được thực thi đồng thời trên mỗi máy chủ.

Có 4 loại kiểu tính toán song song:

• Song song mức bit: tăng kích thước từ của bộ xử lý, làm giảm số lượng lệnh mà bộ xử lý phải thực hiện để thực hiện một thao tác trên các biến lớn hơn độ dài của từ.

• Song song mức lệnh: cách tiếp cận phần cứng hoạt động dựa trên song song động, trong đó bộ xử lý quyết định tại thời điểm chạy lệnh nào sẽ thực thi song song;

phương pháp tiếp cận phần mềm hoạt động dựa trên song song tĩnh, trong đó trình biên dịch quyết định hướng dẫn nào sẽ thực thi song song.

• Song song tác vụ: một dạng song song mã máy tính trên nhiều bộ xử lý chạy nhiều tác vụ khác nhau cùng lúc trên cùng một dữ liệu

• Song song cấp siêu từ: một kỹ thuật vector hóa có thể khai thác tính song song của mã nội tuyến

Sự phổ biến và phát triển của điện toán song song trong thế kỷ 21 là để đáp ứng với việc mở rộng tần số bộ xử lý chạm vào bức tường nguồn. Việc tăng tần số làm tăng lượng điện năng được sử dụng trong bộ xử lý và việc mở rộng tần số bộ xử lý không còn khả thi sau một thời điểm nhất định; do đó, các nhà lập trình và nhà sản xuất đã bắt đầu thiết kế phần mềm hệ thống song song và sản xuất các bộ xử lý tiết kiệm điện với nhiều lõi để giải quyết vấn đề tiêu thụ điện năng và các bộ xử lý trung tâm quá nóng.

Tầm quan trọng của tính toán song song tiếp tục phát triển với việc sử dụng ngày càng nhiều bộ xử lý đa lõi và GPU. GPU hoạt động cùng với CPU để tăng lưu lượng dữ liệu và số lượng các phép tính đồng thời trong một ứng dụng. Sử dụng sức mạnh của tính song song, GPU có thể hoàn thành nhiều công việc hơn CPU trong một khoảng thời gian nhất định.

4.1.2.3. Kỹ thuật điện toán phân tán

Trong thời đại Internet cung cấp các dịch vụ từ ngân hàng đến chăm sóc sức khỏe, nó đã tạo ra nhu cầu về quản lý dữ liệu thế hệ mới và được coi là nền tảng cho mọi thứ.

Sự phát triển của công nghệ trong thập kỷ trước như ảo hóa và các máy tính tiêu chuẩn có thể được gom lại trong một giá đỡ (rack) và được nối mạng thay thế cho các siêu máy tính cao cấp. Kinh tế hóa cho việc tính toán đã thay đổi đáng kể với việc giảm chi phí mua tài nguyên lưu trữ và tính toán. Điện toán phân tán có đóng góp lớn và đóng một vai trò quan trọng cho sự thay đổi này. Các khái niệm về điện toán có thể mở rộng và giá cả phải chăng của điện toán phân tán được dữ liệu lớn áp dụng. Cụm máy tính tiêu

chuẩn có công suất thấp và chi phí thấp được sử dụng để xử lý dữ liệu lớn và các cụm đang làm việc trên khái niệm mở rộng quy mô theo yêu cầu xử lý, dữ liệu được sao chép trên các nút khác nhau để có độ tin cậy cao và khả năng chịu lỗi. Tuy nhiên, không phải tất cả các vấn đề đều cần đến điện toán phân tán; trong một số thực thể điện toán riêng lẻ chỉ đơn giản là chuyển các thông điệp cho nhau. Trong các tình huống khác, khái niệm đa luồng và đa xử lý của điện toán phân tán được áp dụng để tăng cường tính song song của quá trình xử lý. Trong phân tích thời gian thực như đặc điểm vận tốc của Dữ liệu lớn, Spark đang sử dụng khái niệm đa luồng để giải quyết vấn đề này.

Dữ liệu lớn kế thừa những ưu điểm của cả điện toán phân tán và điện toán song song. Trong điện toán phân tán, các tài nguyên được kết nối bởi một mạng truyền thông nhanh và các tác vụ tính toán được phân phối trên các tài nguyên này. Phương pháp này làm tăng tốc độ và hiệu quả của hệ thống. Điện toán phân tán là công nghệ có tuổi đời khoảng 50 năm, được sử dụng với các khái niệm lập trình mới trong dữ liệu lớn, nhanh hơn và hiệu quả hơn nhiều so với các phương pháp tính toán truyền thống và cũng thích hợp cho dữ liệu lớn để xử lý một lượng lớn dữ liệu trong thời gian giới hạn. Ngày nay có nhiều kỹ thuật điện toán phân tán đang hoạt động, trong đó các kỹ thuật điện toán quan trọng sau đây:

• Điện toán lưới (Grid Computing)

• Điện toán tiện ích (Utility Computing)

• Điện toán cụm (Cluster Computing)

• Điện toán đám mây (Cloud Computing) a. Điện toán lưới

Điện toán lưới là sự kết hợp của các tài nguyên máy tính không đồng nhất với các miền kiểm soát quản trị khác nhau cho một nhiệm vụ chung và tài nguyên có thể được phân phối trên một số địa điểm và được kết nối với nhau bằng cách sử dụng mạng truyền thông có độ trễ cao và băng thông thấp, chủ yếu bằng Internet. Trong môi trường lưới, các công việc lớn được chia thành các công việc nhỏ hơn và chạy song song trên nhiều nút. Lưới có thể thuộc sở hữu của nhiều công ty hoặc tư nhân. Các nút lưới là độc lập và liên kết lỏng lẻo; các tài nguyên trong lưới được phân bố trên các vị trí thực tế khác nhau và được vận hành độc lập.

Hình 4. 7: Điện toán lưới Một mạng lưới tính toán điển hình bao gồm ba loại máy:

• Nút điều khiển/máy chủ: Nút điều khiển là một máy chủ hoặc một nhóm máy chủ quản lý toàn bộ mạng và duy trì bản ghi cho các tài nguyên trong một nhóm mạng.

• Nhà cung cấp/nút lưới: Nhà cung cấp hoặc nút lưới là một máy tính đóng góp tài nguyên của nó vào nhóm tài nguyên mạng.

• Người dùng: Người dùng đề cập đến máy tính sử dụng tài nguyên trên mạng để hoàn thành tác vụ.

Hình 4. 8: Mạng lưới điện toán lưới

Điện toán lưới hoạt động bằng cách chạy phần mềm chuyên dụng trên mọi máy tính tham gia vào mạng lưới. Phần mềm điều phối và quản lý tất cả các nhiệm vụ của lưới điện. Về cơ bản, phần mềm tách nhiệm vụ chính thành các nhiệm vụ phụ và giao nhiệm vụ phụ cho từng máy tính. Điều này cho phép tất cả các máy tính hoạt động đồng thời trên các nhiệm vụ phụ tương ứng của chúng. Sau khi hoàn thành nhiệm vụ phụ, kết quả đầu ra của tất cả các máy tính được tổng hợp lại để hoàn thành nhiệm vụ chính lớn hơn.

Phần mềm cho phép máy tính giao tiếp và chia sẻ thông tin về phần nhiệm vụ con đang được thực hiện. Do đó, các máy tính có thể hợp nhất và cung cấp kết quả tổng hợp cho nhiệm vụ chính được giao.

Điện toán lưới có thể được xem như một tập con của điện toán phân tán, trong đó một siêu máy tính ảo tích hợp các tài nguyên của một số máy tính độc lập được phân phối trên các khu vực cục bộ. Máy tính tham gia vào lưới đóng góp các nguồn lực như công suất xử lý, băng thông mạng và dung lượng lưu trữ để thực hiện các hoạt động đòi hỏi sức mạnh tính toán cao. Kiến trúc lưới tổng thể trông giống như một thực thể máy tính duy nhất. Trong điện toán lưới, mỗi tác vụ tính toán được chia thành các đoạn nhỏ và được phân phối trên các nút máy tính để thực thi hiệu quả. Mỗi phân đoạn được xử lý song song và kết quả là một tác vụ phức tạp được hoàn thành trong thời gian ngắn hơn.

Các thành phần chính của điện toán lưới

Môi trường điện toán lưới bao gồm một tập hợp các thành phần lưới chính. Khi các thiết kế lưới và cách sử dụng dự kiến của chúng khác nhau, các thành phần cụ thể có thể có hoặc không phải lúc nào cũng là một phần của mạng lưới. Các thành phần này có thể được kết hợp để tạo thành một thành phần hỗn hợp trong các tình huống cụ thể.

Mặc dù sự kết hợp của các phần tử có thể khác nhau tùy thuộc vào các trường hợp sử dụng, việc hiểu vai trò của chúng có thể giúp bạn trong khi phát triển các ứng dụng hỗ trợ lưới.

Hình 4. 9: Các thành phần chính của điện toán lưới 1. Giao diện người dùng

Ngày nay, người dùng đã thông thạo các cổng thông tin web. Chúng cung cấp một giao diện duy nhất cho phép người dùng xem nhiều loại thông tin. Tương tự, một cổng lưới cung cấp một giao diện cho phép người dùng khởi chạy các ứng dụng với các tài nguyên do lưới cung cấp. Giao diện mang phong cách cổng thông tin giúp người dùng truy vấn và thực thi các chức năng khác nhau trên lưới một cách hiệu quả. Người dùng lưới xem một máy tính ảo lớn duy nhất cung cấp tài nguyên máy tính, tương tự như người dùng internet xem một phiên bản thống nhất của nội dung trên web.

2. Bảo mật

Bảo mật là một trong những mối quan tâm lớn đối với môi trường điện toán lưới.

Các cơ chế bảo mật có thể bao gồm xác thực, ủy quyền, mã hóa dữ liệu và các cơ chế khác. Cơ sở hạ tầng bảo mật lưới (GSI) là một thành phần quan trọng ở đây. Nó phác thảo các thông số kỹ thuật thiết lập giao tiếp bí mật và chống giả mạo giữa các thực thể phần mềm hoạt động trong mạng lưới. Nó bao gồm triển khai OpenSSL và cung cấp cơ chế đăng nhập một lần để người dùng thực hiện các hành động trong lưới. Nó cung cấp bảo mật mạnh mẽ bằng cách cung cấp cơ chế xác thực và ủy quyền để bảo vệ hệ thống.

3. Lập lịch

Khi xác định các tài nguyên, bước tiếp theo là lập lịch cho các tác vụ chạy trên chúng.

Có thể không cần một bộ lập lịch nếu các tác vụ độc lập được thực thi không thể hiện

sự phụ thuộc lẫn nhau. Tuy nhiên, nếu bạn muốn chạy đồng thời các nhiệm vụ cụ thể yêu cầu giao tiếp giữa các quá trình, thì bộ lập lịch công việc sẽ đủ để điều phối việc thực hiện các nhiệm vụ con khác nhau. Hơn nữa, các bộ lập lịch ở các cấp khác nhau hoạt động trong môi trường lưới. Ví dụ, một cụm có thể đại diện cho một tài nguyên độc lập với bộ lập lịch của riêng nó để quản lý các nút mà nó chứa. Do đó, đôi khi có thể cần một bộ lập lịch cấp cao để hoàn thành nhiệm vụ được thực hiện trên cụm, trong khi cụm sử dụng bộ lập lịch riêng để xử lý công việc trên các nút riêng lẻ của nó.

4. Quản lý dữ liệu

Quản lý dữ liệu là rất quan trọng đối với môi trường lưới. Một cơ chế an toàn và đáng tin cậy để di chuyển hoặc làm cho bất kỳ dữ liệu hoặc mô-đun ứng dụng nào có thể truy cập được tới các nút khác nhau trong lưới là cần thiết. Hãy xem xét bộ công cụ Globus - một bộ công cụ mã nguồn mở cho tính toán lưới. Nó cung cấp một thành phần quản lý dữ liệu được gọi là quyền truy cập lưới vào bộ nhớ thứ cấp. Nó bao gồm GridFTP được xây dựng trên giao thức FTP tiêu chuẩn và sử dụng GSI để xác thực và ủy quyền người dùng. Sau khi xác thực, người dùng có thể di chuyển tệp bằng cơ sở GridFTP mà không cần trải qua quá trình đăng nhập tại mọi nút.

5. Khối lượng công việc & quản lý tài nguyên

Thành phần khối lượng công việc & tài nguyên cho phép khởi chạy thực tế một công việc trên một tài nguyên cụ thể, kiểm tra trạng thái của nó và truy xuất kết quả khi công việc hoàn thành. Giả sử một người dùng muốn thực thi một ứng dụng trên lưới. Trong trường hợp đó, ứng dụng nên biết về các tài nguyên có sẵn trên lưới để đảm nhận khối lượng công việc. Vì vậy, nó tương tác với trình quản lý khối lượng công việc để xác định tính khả dụng của tài nguyên và cập nhật trạng thái cho phù hợp. Điều này giúp quản lý khối lượng công việc và tài nguyên hiệu quả cho các nút khác nhau trên lưới.

b. Điện toán tiện ích

Công nghệ Điện toán tiện ích cung cấp các dịch vụ như lưu trữ, ứng dụng, sức mạnh tính toán và tài nguyên máy tính với chi phí rất thấp cho khách hàng. Mô hình Điện toán tiện ích là tính toán theo yêu cầu như phần mềm như một dịch vụ, ứng dụng,…

Điện toán tiện ích cung cấp nhiều khả năng tính toán và không gian lưu trữ hơn so với một máy tính chia sẻ thời gian duy nhất. Điện toán tiện ích yêu cầu một cơ sở hạ tầng như đám mây để cung cấp các dịch vụ khác nhau. Nhiều máy chủ nâng cao khác nhau được sử dụng ở hỗ trợ back-end.

Một phần của tài liệu Bài Giảng Lưu Trữ Và Phân Tích Dữ Liệu (Trang 77 - 89)

Tải bản đầy đủ (PDF)

(199 trang)