Big Data đang là một trong những lĩnh vực màu mỡ nhất của ngành công nghệ. Khối lượng dữ liệu khổng lồ mà Big Data mang đến đóng vai trò vô cùng to lớn. Big Data có thể giúp dự đoán thị trường, phân tích nhu cầu, xu hướng, dự đoán dịch bệnh hay thậm chí là xác định điều kiện giao thông tức thời. Vì mang trong mình số lượng thông tin lớn nên Big Data không thể được xử lý bằng những công cụ truyền thống không. Ngành công nghệ sẽ sử dụng các công cụ phân tích Big Data chuyên dụng để xử lý lĩnh vực khó nhằn này. Một trong số đó là Hadoop. Vậy bạn đã biết Hadoop là gì hay chưa? Theo dõi ngay bài viết sau.
Tìm hiểu Apache Hadoop là gì?
Hadoop là một dạng framework, cụ thể là Apache. Apache Hadoop là một mã nguồn mở cho phép sử dụng các distributed processing (ứng dụng phân tán) để quản lý và lưu trữ những tệp dữ liệu lớn. Hadoop áp dụng mô hình MapReduce trong hoạt động xử lý Big Data.
Vậy MapReduce là gì? MapReduce vốn là một nền tảng được Google tạo ra để quản lý dữ liệu của họ. Nhiệm vụ của MapReduce là tiếp nhận một khối lượng dữ liệu lớn. Sau đó sẽ tiến hành tách các dữ liệu này ra thành những phần nhỏ theo một tiêu chuẩn nào đó. Từ đó sẽ sắp xếp, trích xuất các tệp dữ liệu con mới phù hợp với yêu cầu của người dùng. Đây cũng là cách mà thanh tìm kiếm của Google hoạt động trong khi chúng ta sử dụng hằng ngày.
Còn bản thân Hadoop cũng là một dạng công cụ mẫu giúp phân tán dữ liệu theo mô hình như vậy. Cho nên MapReduce được sử dụng như một nền tảng lý tưởng của Hadoop. Về cơ bản, Hadoop sẽ giúp người dùng tổng hợp và xử lý một lượng thông tin lớn trong thời gian ngắn bằng MapReduce.
Còn với chức năng lưu trữ, Hadoop sẽ dùng HDFS. HDFS là gì? Nó được biết đến như một kho thông tin có độ truy cập nhạy và chi phí thấp.
Hadoop được phát triển nên từ ngôn ngữ Java. Tuy nhiên nó vẫn hỗ trợ một số ngôn ngữ lập trình khác như C++, Python hay Pearl nhờ cơ chế streaming.
Kiến trúc của Hadoop là gì?
Vì sử dụng cùng lúc MapReduce và HDFS nên Hadoop sẽ có cấu trúc của cả 2 loại này. Hadoop kế thừa cấu trúc node từ HDFS. Cụ thể, một cụm Hadoop sẽ bao gồm 1 master node (node chủ) và rất nhiều worker/slave node (node nhân viên). Một cụm cũng bao gồm 2 phần là MapReduce layer và HDFS layer. Master node bao gồm JobTracker, TaskTracker, NameNode, và DataNode. Còn Worker/Slave node bao gồm DataNode và TaskTracker. Trong một số trường hợp, Worker/Slave node được dùng để làm dữ liệu hoặc tính toán.
Hadoop Apache bao gồm 4 module khác nhau. Sau đây sẽ là giới thiệu chi tiết về từng loại.
Hadoop Common
Hadoop Common được dùng như một thư viện lưu trữ các tiện ích của Java. Tại đây có những tính năng cần thiết để các modules khác sử dụng. Những thư viện này mang đến hệ thống file và lớp OS trừu tượng. Song song với đó, nó cũng lưu trữ các mã lệnh của Java để thực hiện quá trình khởi động Hadoop.
Hadoop YARN – Hadoop là gì?
Phần này được dùng như một framework. Nó hỗ trợ hoạt động quản lý thư viện tài nguyên của các cluster và thực hiện chạy phân tích tiến trình.
Hiểu rõ cách hoạt động của các modules sẽ giúp bạn nắm rõ khái niệm Hadoop là gì.
Hadoop Distributed File System (HDFS)
Một trong những vấn đề lớn nhất của các hệ thống phân tích Big Data là quá tải. Không phải hệ thống nào cũng đủ khỏe để có thể tiếp nhận một lượng thông tin khổng lồ như vậy. Chính vì thế, nhiệm vụ của Hadoop Distributed File System là phân tán cung cấp truy cập thông lượng cao giúp cho ứng dụng chủ. Cụ thể, khi HDFS nhận được một tệp tin, nó sẽ tự động chia file đó ra thành nhiều phần nhỏ. Các mảnh nhỏ này được nhân lên nhiều lần và chia ra lưu trữ tại các máy chủ khác nhau để phân tán sức nặng mà dữ liệu tạo nên.
Như đã nói ở trên, HDFS sử dụng cấu trúc master node và worker/slave node. Trong khi master node quản lý các file metadata thì worker/slave node chịu trách nhiệm lưu trữ dữ liệu. Chính vì thế nên worker/slave node cũng được gọi là data node. Một Data node sẽ chứa nhiều khối được phân nhỏ của tệp tin lớn ban đầu. Dựa theo chỉ thị từ Master node, các Data node này sẽ trực tiếp điều hành hoạt động thêm, bớt những khối nhỏ của tệp tin.
Hadoop MapReduce
Module này hoạt động dựa trên YARN trong việc xử lý các tệp dữ liệu lớn. Hadoop MapReduce cho phép phân tán dữ liệu từ một máy chủ sang nhiều máy con. Mỗi máy con này sẽ nhận một phần dữ liệu khác nhau và tiến hành xử lý cùng lúc. Sau đó chúng sẽ báo lại kết quả lên máy chủ. Máy chủ tổng hợp thông tin lại rồi trích xuất theo như yêu cầu của người dùng.
Cách thực thi theo mô hình như vậy giúp tiết kiệm nhiều thời gian xử lý và cũng giảm gánh nặng lên hệ thống. Chức năng của máy chủ là quản lý tài nguyên, đưa ra thông báo, lịch trình hoạt động cho các máy trạm. Các máy trạm sẽ thực thi theo kế hoạch được định sẵn và gửi báo cáo dữ liệu lại cho máy chủ. Tuy nhiên đây cũng là điểm yếu của hệ thống này. Nếu máy chủ bị lỗi thì toàn bộ quá trình sẽ bị ngừng lại hoàn toàn.
Cách hoạt động của Hadoop là gì?
Giai đoạn 1
Người dùng hoặc ứng dụng sẽ gửi một job lên Hadoop để yêu cầu xử lý và thao tác. Job này sẽ đi kèm các thông tin cơ bản như: nơi lưu trữ dữ liệu input và output, các java class chứa các dòng lệnh thực thi, các thông số thiết lập cụ thể.
Giai đoạn 2
Sau khi nhận được các thông tin cần thiết, máy chủ sẽ chia khối lượng công việc đến cho các máy trạm. Máy chủ sẽ tiến hành theo dõi quá trình hoạt động của các máy trạm và đưa ra các lệnh cần thiết khi có lỗi xảy ra.
Giai đoạn 3
Các nodes khác nhau sẽ tiến hành chạy tác vụ MapReduce. Nó chia nhỏ các khối và thay phiên nhau xử lý dữ liệu. Khi Hadoop hoạt động, nó sử dụng một tệp tin nền làm địa chỉ thường trú. Tệp tin này có thể tồn tại trên 1 hoặc nhiều máy chủ khác nhau.
Ưu điểm của Hadoop là gì?
Hadoop cho phép người dùng nhanh chóng kiểm tra được tiến trình hoạt động của các phân tán. Nhờ vào cơ chế xử lý cùng lúc của các lõi CPU, một lượng lớn dữ liệu được phân phối xuyên suốt liên tục và không bị gián đoạn do quá tải.
Hadoop không bị ảnh hưởng bởi cơ chế chịu lỗi của fault-tolerance and high availability (FTHA). Nó có khả năng xử lý lỗi riêng nhờ các thư viện được thiết kế để phát hiện lỗi ở các lớp ứng dụng. Chính vì thế, khi không may có lỗi xảy ra, Hadoop sẽ nhanh chóng xử lý nó trong thời gian ngắn nhất nhờ cơ chế chủ động của mình.
Một ưu điểm nữa của Hadoop là khả năng triển khai rất nhiều master-slave song song để xử lý các phần khác nhau. Vì có nhiều server master nên công việc sẽ công bị trì hoãn dù không may có một master bị lỗi.
Và cuối cùng, do Hadoop được xây dựng từ ngôn ngữ Java nên nó có khả năng tương thích với rất nhiều nền tảng và hệ điều hành khác nhau, từ Window, Linux đến MacOs…
Mời bạn đọc tham khảo thêm: Gitignore File là gì?
Kết luận
Vừa rồi Teky đã mang đến nhiều thông tin hữu ích xoay quanh chủ đề Hadoop là gì. Với những liệt kê đầy đủ từ định nghĩa, đặc điểm cho đến cách thức hoạt động, mong rằng bạn đã có thể nắm chắc trong tay các kiến thức về công cụ xử lý Big Data hữu hiệu này. Chúc bạn có thể nhanh chóng học hỏi được và áp dụng Hadoop nhuần nhuyễn vào trong công việc của ban thân nhé!
The post Hadoop là gì? Giới thiệu về công cụ phân tích Big Data hiệu quả nhất appeared first on TEKY - Học viện sáng tạo công nghệ.
source https://teky.edu.vn/blog/hadoop-la-gi/
Không có nhận xét nào:
Đăng nhận xét