Hadoop - Giới thiệu

Hadoop là một khung mã nguồn mở Apache được viết bằng java cho phép xử lý phân tán các tập dữ liệu lớn trên các cụm máy tính bằng cách sử dụng các mô hình lập trình đơn giản. Ứng dụng khung Hadoop hoạt động trong một môi trường cung cấp khả năng lưu trữtính toán phân tán trên các cụm máy tính. Hadoop được thiết kế để mở rộng quy mô từ máy chủ đơn lẻ lên hàng nghìn máy, mỗi máy đều cung cấp khả năng tính toán và lưu trữ cục bộ.

Kiến trúc Hadoop

Về cốt lõi, Hadoop có hai lớp chính:

  • Lớp Xử lý / Tính toán (MapReduce) và
  • Lớp lưu trữ (Hệ thống tệp phân tán Hadoop).

MapReduce

MapReduce là một mô hình lập trình song song để viết các ứng dụng phân tán được tạo ra tại Google nhằm xử lý hiệu quả lượng lớn dữ liệu (tập dữ liệu nhiều terabyte), trên các cụm lớn (hàng nghìn nút) của phần cứng hàng hóa theo cách thức đáng tin cậy, chịu được lỗi. Chương trình MapReduce chạy trên Hadoop, một khung mã nguồn mở Apache.

Hệ thống tệp phân tán Hadoop

Hệ thống tệp phân tán Hadoop (HDFS) dựa trên Hệ thống tệp của Google (GFS) và cung cấp hệ thống tệp phân tán được thiết kế để chạy trên phần cứng hàng hóa. Nó có nhiều điểm tương đồng với các hệ thống tệp phân tán hiện có. Tuy nhiên, sự khác biệt so với các hệ thống tệp phân tán khác là đáng kể. Nó có khả năng chịu lỗi cao và được thiết kế để triển khai trên phần cứng giá rẻ. Nó cung cấp khả năng truy cập thông lượng cao vào dữ liệu ứng dụng và phù hợp với các ứng dụng có bộ dữ liệu lớn.

Ngoài hai thành phần cốt lõi được đề cập ở trên, khuôn khổ Hadoop cũng bao gồm hai mô-đun sau:

  • Hadoop Common - Đây là các thư viện Java và các tiện ích được yêu cầu bởi các mô-đun Hadoop khác.

  • Hadoop YARN - Đây là một khuôn khổ để lập lịch công việc và quản lý tài nguyên cụm.

Hadoop hoạt động như thế nào?

Khá tốn kém để xây dựng các máy chủ lớn hơn với cấu hình nặng xử lý quy mô lớn, nhưng để thay thế, bạn có thể kết hợp nhiều máy tính hàng hóa với một CPU, như một hệ thống phân tán chức năng duy nhất và trên thực tế, các máy được phân nhóm có thể đọc tập dữ liệu song song và cung cấp thông lượng cao hơn nhiều. Hơn nữa, nó rẻ hơn một máy chủ cao cấp. Vì vậy, đây là yếu tố thúc đẩy đầu tiên đằng sau việc sử dụng Hadoop mà nó chạy trên các máy chi phí thấp và phân cụm.

Hadoop chạy mã trên một nhóm máy tính. Quá trình này bao gồm các tác vụ cốt lõi sau mà Hadoop thực hiện:

  • Dữ liệu ban đầu được chia thành các thư mục và tệp. Các tệp được chia thành các khối có kích thước thống nhất 128M và 64M (tốt nhất là 128M).

  • Các tệp này sau đó được phân phối trên các nút cụm khác nhau để xử lý thêm.

  • HDFS, nằm trên hệ thống tệp cục bộ, giám sát quá trình xử lý.

  • Các khối được sao chép để xử lý lỗi phần cứng.

  • Kiểm tra xem mã đã được thực thi thành công chưa.

  • Thực hiện sắp xếp diễn ra giữa các giai đoạn bản đồ và giảm bớt.

  • Gửi dữ liệu đã sắp xếp đến một máy tính nhất định.

  • Viết nhật ký gỡ lỗi cho từng công việc.

Ưu điểm của Hadoop

  • Khung công tác Hadoop cho phép người dùng nhanh chóng viết và kiểm tra các hệ thống phân tán. Nó hiệu quả và nó tự động phân phối dữ liệu và hoạt động trên các máy và đến lượt nó, sử dụng tính song song cơ bản của các lõi CPU.

  • Hadoop không dựa vào phần cứng để cung cấp khả năng chịu lỗi và tính sẵn sàng cao (FTHA), mà chính thư viện Hadoop đã được thiết kế để phát hiện và xử lý các lỗi ở lớp ứng dụng.

  • Máy chủ có thể được thêm vào hoặc xóa khỏi cụm một cách động và Hadoop tiếp tục hoạt động mà không bị gián đoạn.

  • Một ưu điểm lớn khác của Hadoop là ngoài mã nguồn mở, nó tương thích trên tất cả các nền tảng vì nó dựa trên Java.