Tìm hiểu về kiến trúc Hadoop Ecosystem

Ưu điểm của Hadoop ngoài khả năng lưu trữ data và đảm bảo ứng dụng hoạt động 24/7 là khả năng tích hợp với rất nhiều các kiến trúc và công cụ dữ liệu doanh nghiệp. Giải pháp tích hợp giữa Hadoop và MapR là sự kết hợp hoàn hảo mang đến tính năng mạnh mẽ cho người dùng. Bài viết này sẽ mô tả thành phần kiến trúc chính của Hadoop cho phép các bạn hiểu sâu hơn về nền tảng này.

Các thành phần chính của Hadoop

Core Hadoop

Kiến trúc lõi của Hadoop dựa trên 02 thành phần xử lý chính là HDFS và MapReduce. Hai thành phần này có chức năng để lưu trữ và xử lý lượng dữ liệu lớn. Ngay cả khi hai thành phần này có liên quan chặt chẽ với nhau, chúng là các thành phần độc lập và cũng có thể sử dụng một hệ thống file system khác với HDFS cho MapReduce. Trong thực tế, sự kết hợp của hai thành phần này được sử dụng.

Hadoop Distributed File System (HDFS)

Kiến trúc giải pháp HDFS

HDFS là hệ thống quản lý dữ liệu phân tán dựa trên nền tảng Java cung cấp giải pháp lưu trữ tin cậy, ổn định, truy cập nhanh chóng. Với mục đích này thì cách thức “wrice once, read many” được sử dụng, cho phép dữ liệu thường được ghi một lần mỗi HDFS, sau đó sẽ được đoch nhiều lần. Do vậy việc sửa đổi dữ liệu sau khi ghi thường rất hạn chế.

Ngoài ra, để lưu trữ dữ liệu phân tán, dữ liệu sẽ được chia thành các block (64/128 MB) và được phân phối tới các node xử lý. Mỗi block đồn thời sẽ được sao chép đến các server khác trong cụm cluster để đảm bảo tính toàn vẹn của dữ liệu.

Chức năng của các thành phần:

  • Namenode: Là thành phần xử lý trung tâm của master node và quản lý toàn bộ meta data của các data node. Với chức năng như vậy thì Namenode sẽ quản lý vị trí của các block và file như là các journal file để phản hồi request thông tin file bất kỳ thời điểm nào.
  • Data node: là slave node đảm nhậm nhiệm vụ lưu trữ Data.
  • The Secondary Name Node: theo tên gọi là để backup cho Name node nhưng thực tế không phải vậy. Nó chỉ là thành phần trợ giúp tá vụ kết hợp block map và journal log của Name Node.d

Tương quan giữa kiến trúc truyền thống và kiến trúc Hadoop?

Architecture Matters | MapR

YARN vs MapReduce

YARN là viết tắt của cụm từ “Yet-Another-Resource-Negotiator” là một framework hỗ trợ phát triển ứng dụng phân tán. YARN cung cấp daemons và APIs cần thiết cho việc phát triển ứng dụng phân tán, đồng thời xử lý và lập lịch sử dụng tài nguyên tính toán (CPU hay memory) cũng như giám sát quá trình thực thi các ứng dụng đó. YARN tổng quát hơn MapReduce thế hệ đầu tiên (gồm mô hình JobTracker / TaskTracker).

Google là công ty phát minh ra MapReduce nhưng phổ biến framework này đến business và bắt đầu buzzword BigData là hadoop. Do vậy việc hiểu kiến trúc của hadoop và YARN là điều không thể thiếu với những người làm BigData. 

Hiện tại có rất nhiều ứng dụng BigData được port chạy trên YARN, trong đó có một số ứng dụng nổi tiếng như Spark.

Các phiên bản Hadoop và MapReduce

MapReduce 1 (Hadoop đời đầu)

Hadoop đời đầu tiên có thể chia ra làm 2 modules:

  • HDFS
  • JobTracker / TaskTracker

MapReduce2 (NextGen, hay là YARN Yet-Another-Resource-Negotiator)

Kiến trúc mới chia 2 chức năng chính của JobTracker – quản lý tài nguyên và quản lý job thành 2 components riêng biệt:

  • Resource Manager (RM): quản lý toàn bộ tài nguyên tính toán của cluster.
  • Application Master (AM): đơn vị là trên 1 ứng dụng và quản lý vòng đời của Job.

Do vậy đối với YARN, MapReduce sẽ là 1 ứng dụng chạy trên YARN, sử dụng tài nguyên do RM cấp phát. Các node tính toán trong cluster bây giờ sẽ chạy NodeManager quản lý các tiến trình chạy trên máy đó. Resource Manager và Node Manager trở thành xương sống của tính toán phân tán trong YARN. Việc mỗi ứng dụng được tách ra riêng cho phép các process chạy lâu (long running process) cũng có thể được khởi động trên YARN.

ApplicationMaster trên 1 ứng dụng là một thư viện cho phép yêu càu tài nguyên từ Resource Manager và giao tiếp với Node Manager để chạy và thực thi các tasks. Trong YARN, MapReduce2 là thay vì là linh hồn của hadoop như ở hadoop 1 thì chỉ là một ứng dụng. Application Master cho phép xây dựng các ứng dụng khác MR chạy trên YARN.

Hiện tại có rất nhiều ứng dụng BigData được port chạy trên YARN, trong đó có một số ứng dụng nổi tiếng như Spark. Cụ thể bạn có thể tham khảo hình dưới đây:

Kiến trúc Map Reduce

MapReduce bao gồm 02 pha là map và reduce.

  • Hàm map: Các xử lý một cặp (key, value) để sinh ra một cặp (key, value) – key và value trung gian. Dữ liệu này input vào hàm Reduce.
  • Hàm Reduce: Tiếp nhận các (key, value) và trộn các cặp (key, value) trung gian , lấy ra các valueI có cùng key.

Thành phần ứng dụng

  • Zookeeper (vườn thú): là dịch vụ tập trung để duy trì thông tin cấu hình, đặt tên, đồng bộ hóa và phân tán cho các nhóm.
  • Hbase: một CSDL cấu trúc phi quan hệ (NoSQL) dạng cột
  • Hive: Data Warehouse cung cấp khả năng truy vấn dữ liệu lưu trữ bằng Hadoop dạng SQL
  • Pig: Pig là ngôn ngữ kịch bản cấp cao được sử dụng với Apache Hadoop. Pig cho phép các nhà phân tích dữ liệu viết các phép biến đổi dữ liệu phức tạp mà không cần biết Java. 

Tham khảo

https://mapr.com/why-hadoop/why-mapr/architecture-matters/

https://www.supinfo.com/articles/single/5234-introduction-to-hadoop-part-3-of-3

https://kipalog.com/posts/YARN-va-MapReduce2

Leave a Reply

Your email address will not be published. Required fields are marked *