Làm rõ Hadoop là gì và các vấn đề xoay quanh Hadoop

Icon Author Băng Tâm

Ngày đăng: 2021-03-12 08:42:58

  Big Data đang là một trong những vấn đề nổi cộm được quan tâm rất nhiều trong thế giới công nghệ. Những khối lượng dữ liệu lớn tạo nên Big Data được lưu trữ lại để phục vụ cho mọi nhu cầu tìm kiếm, sử dụng ở bất kể thời điểm nào thay vì giấy, mực, sự phá hủy hết sức tự nhiên lên chúng. Tuy nhiên khi lưu trữ Big Data, luôn có những rắc rối lớn và nguy cơ về dữ liệu xảy ra. Điều này được quan tâm đặc biệt tại bất cứ công ty công nghệ nào. Hadoop chính là công nghệ cốt lõi tham gia vào việc xử lý bài toán liên quan tới Big data. Vậy hadoop là gì?

Để hiểu về hadoop và mọi thông tin liên quan thì bạn hãy đọc bài viết dưới đây.

1. Hadoop là gì?

Hadoop chính là Apache Framework, một mã nguồn mở cho phép xây dựng cũng như phát triển được các ứng dụng phân tán nhằm quản lý, lưu trữ tập dữ liệu lớn. Hadoop phụ trách thực hiện mô hình chia nhỏ ứng dụng ra làm nhiều phân đoạn, chạy song song tại nhiều node, gọi là Distributed processing. Các nhà phát triển công nghệ sẽ viết Hadoop thông qua ngôn ngữ Java, dưới sự hỗ trợ của ngôn ngữ C++, Perl, Python qua cơ chế Streaming.

Hadoop là gì?
Hadoop là gì?

Xem thêm: Typescript là gì

2. Tìm hiểu chức năng chính của Hadoop

Hadoop đóng vai trò quan trọng trong việc giúp xử lý các bài toán lưu trữ dữ liệu của công nghệ Big Data. Theo đó, Hadoop sẽ thực hiện các chức năng sau:

- Xử lý khối dữ liệu lớn (khổng lồ), đơn vị tính dữ liệu mà Hadoop xử lý được tính bằng Petabyte.

Tìm hiểu chức năng chính của Hadoop
Tìm hiểu chức năng chính của Hadoop

- Xử lý những lỗi thường xuyên xuất hiện.

- Xử lý vấn đề trong các môi trường có sự phân tán, nguồn dữ liệu được lưu trữ ở các phần cứng khác nhau và đòi hỏi có sự xử lý đồng bộ.

- Xây dựng băng thông giữa những phần cứng mang nguồn data bị phân tán giới hạn.

Xem thêm: Trang vàng doanh nghiệp

3. Kiến trúc cơ bản của Hadoop

Trong mỗi cụm nhỏ Hadoop sẽ gồm có những những thành phần sau:

- 1 master node

- Nhiều slave node/ worker node.

Kiến trúc cơ bản của Hadoop
Kiến trúc cơ bản của Hadoop

Trong một cụm, Hadoop gồm có 2 lớp là HDFS Layer và MapReduce. Trong từng lớp sẽ có những thành phần liên quan riêng. Cụ thể trong Master node sẽ có TaskTracker, JobTracker và Name Node, Data Node. Slave/Worker node sẽ gồm Task Tracker, Data Node hoặc phần này chỉ đơn giản là các dữ liệu hoặc chỉ là node phục vụ nhiệm vụ tính toán.

Trong một Hadoop sẽ có 4 module. Nội dung chi tiết từng module như sau:

3.1. Hadoop Distributed file System

HDFS chính là hệ thống của các file phân tán, có tác dụng truy cập vào các thông lượng cao, từ đó giúp cho ứng dụng có thể khai thác dữ liệu một cách hiệu quả. Bản chất là một hệ thống chứa những tập tin ảo.

Trong trường hợp chuyển đi tập tin nào đó ở trên HDFS thì nó sẽ tự động phân chia ra nhiều mảnh nhỏ hơn. Khi đó, các mảnh nhỏ được nhân ra và lưu tại nhiều máy chủ để tăng tính sẵn sàng và khả năng chịu lỗi.

Module này dùng kiến trúc Slave/master với master gồm có Name Node nhằm quản lý hệ thống trong meta data, cùng một hoặc nhiều Salve Data Nodes phục vụ cho việc lưu trữ dữ liệu ở thực tại.

3.2. Hadoop MapReduce

Xây dựng dựa trên YARN, hệ thống này được sử dụng dễ phục vụ việc xử lý đồng thời những tập dữ liệu lớn.  Với Hadoop Map Reduce, một vấn đề lớn sẽ được chia làm những đoạn nội dung thông tin nhỏ, phân tán hơn trên nhiều  máy chủ.  Trong đó, mỗi một máy chủ sẽ bao gồm 1 tập tài nguyên riêng biệt và xử lý cụ bộ nguồn dữ liệu.

Hadoop MapReduce
Hadoop MapReduce

Cấu trúc cơ bản của mỗi một MapReduce bao gồm 1 máy chủ (Single master) JobTracker cùng với những máy trạm (Slave) TaskTracker (oet mỗi một Cluster – node. Nhiệm vụ chủ chốt của Master đó là quản lý nguồn tài nguyên, theo dõi quá trình tiêu thụ và thực hiện những tác vụ lỗi. Còn các slave TaskTracker thì hoạt động theo sự chỉ định của Master, đồng thời cung cấp các trạng thái Task – status cho các master theo dõi.

Điểm yếu của Hadoop Mapreduce đó chính là các JobTracker. Do đó, nếu yếu tố này bị lỗi thì toàn bộ các công việc có liên quan tới nó đều bị ngưng trệ, ngắt quãng.

3.3. Hadoop Common

Hadoop Common chính là những thư viện, tiện ích trong Java phục vụ cho những Module khác. Chức năng của chúng là cung cấp một hệ thống các file cũng như lớp Ó trừu tượng, chứa cả những mã lệnh Java để phục vụ cho công tác làm Hadoop khởi động.

3.4. Hadoop YARN

Hai nhiệm vụ chính của Module này đó chính là

+ Quản lý nguồn tài nguyên ở bên trọng những hệ thống lưu trữ dữ liệu

- Chạy phân tích.

Trong hệ thống Hadoop, YARN chính là framework, chức năng hỗ trợ đối với những ứng dụng dạng phân tán, cung cấp APIs cần thiết và Daemon để phát triển các ứng dụng phân tán này, xử lý CPU hoặc memory, lập lịch sử dụng cho chúng, đồng thời giám sát các quá trình ứng dụng được tiến hành.

Trong YARN gồm 2 trình quản lý, đó là ResourceManager, NodeManager. Mỗi trình này sẽ có nhiệm vụ quản lý khác nhau. Trong đó, ResourceManager sẽ đảm đương quản lý tất cả nguồn tài nguyên của Cluster, còn NodeManager thực hiện nhiệm vụ giám sát thực trạng sử dụng các tài nguyên của container sau đó báo cáo lại cho ResourceManager. Các tài nguyên ở đây là CPU, memory, disk, network,...

4. Sự hoạt động của Hadoop

Sự hoạt động của Hadoop trải qua ba giai đoạn như sau:

Sự hoạt động của Hadoop
Sự hoạt động của Hadoop

Giai đoạn thứ nhất

Một ứng dụng/user có thể submit một job kèm theo yêu cầu về việc xử lý thông tin một cách cơ bản nhất:

- Địa chỉ Location lưu nguồn dữ liệu input – output ở trong một hệ thống phân tán dữ liệu.

- Java Class tồn tại dạng Jar, có chứa dòng lệnh thực thi hàm map, reduce.

- Thiết lập các vấn đề liên quan tới Job qua những thông số truyền vào.

Giai đoạn thứ hai trong sự hoạt động của Hadoop:

Các file thực thi, file jar cùng những thiết lập đối với JobTracker. Tiếp đến, master tiến hành phân phối các tác vụ tới những Slave nhằm theo dõi, quản lý sự hoạt động của chúng, đưa thông tin tình trạng của job – client và chẩn đoán các vấn đề có liên quan.

Giai đoạn hoạt động thứ ba

Ở giai đoạn ba, những TaskTrackers thuộc vào những node khác nhau sẽ làm các tác vụ MapReduce, đồng thời trả kết quả Output.

Khi tiến hành chạy Hadoop cũng tức là khởi chạy daemon hoặc chương trình thường trú tại những máy chủ. Những Daemon gồm có: Name – note, Data – note, JobTracker, Secondary Name Node, TaskTracker.

Xem thêm: Golang là gì

5. Những ưu điểm khi sử dụng Hadoop

Những ưu điểm khi sử dụng Hadoop
Những ưu điểm khi sử dụng Hadoop

Một số điểm lợi thế sau mà Hadoop mang cung cấp sẽ là lý do để chúng ta lựa chọn sử dụng nó:

- Có khả năng tạo thêm các node mới và khi cần thiết thì tạo ra sự thay đổi các node đó vẫn được.

- Không phải sử dụng phần cứng để chạy.

- Dễ dàng xây dựng, có thể áp dụng cả những tiêu chí xử lý dữ liệu mang cấu trúc hoặc không.

- Nếu xảy ra lỗi trên một node thì Hadoop cho phép chuyển sang những node khác một cách hoàn toàn tự động.

Với những thông tin trên, chúng tôi đã giới thiệu đến bạn nội dung để hiểu Hadoop là gì và các vấn đề liên quan. Nhiệm vụ của các lập trình viên, các chuyên gia công nghệ phải biết cách tận dụng triệt để nguồn tài nguyên này để phục vụ tốt cho quá trình xây dựng Big Data.

Tham gia bình luận ngay!

captcha
Chưa có bình luận nào

Thông Báo

Thoát

Bạn có tin nhắn mới từ Đỗ Xuân Mạnh: