Hadoop la gi
Big Data đang trở thành một quan trọng và là tài sản to lớn của mỗi doanh nghiệp, trong đó Hadoop là công nghệ cốt lõi cho việc lưu trữ và truy cập dữ liệu lớn. Hệ sinh thái Hadoop là gì?Hadoop là một Apache framework mã nguồn mở cho phép phát triển các ứng dụng phân tán (distributed processing) để lưu trữ và quản lý các tập dữ liệu lớn. Ư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 khai thác dữ liệu lớn cho doanh nghiệp. 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. Giải pháp tích hợp giữa Hadoop và MapReduce là sự kết hợp hoàn hảo mang đến tính năng mạnh mẽ cho người dùng. Trong đó mô hình MapReduce là mô hình mà ứng dụng sẽ được chia nhỏ ra thành nhiều phân đoạn khác nhau được chạy song song trên nhiều node khác nhau. Hadoop được viết bằng Java tuy nhiên vẫn hỗ trợ C++, Python, Perl bằng cơ chế streaming. 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 HadoopApache Hadoop có nguồn gốc là để quản lý và truy cập dữ liệu, và chỉ bao gồm 2 thành phần là: Hadoop Distributed File System (HDFS) và MapReduce, một khuôn khổ xử lý cho dữ liệu lưu trữ trong HDFS. Theo thời gian, nền tảng Hadoop mở rộng kết hợp với một loạt các dự án khác để thành một nền tảng hoàn chỉnh. Nền tảng này chia thành 5 loại sau: data access, data management, security, operations và governance. Core HadoopHadoop gồm 4 module:
Hiện nay Hadoop đang ngày càng được mở rộng cũng như được nhiều framework khác hỗ trợ như Hive, Hbase, Pig. Tùy vào mục đích sử dụng mà ta sẽ áp dụng framework phù hợp để nâng cao hiệu quả xử lý dữ liệu của Hadoop. Hadoop Distributed File System (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 đọc 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:
YARNYARN 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). MapReduceGoogle 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. Ta còn có thể gọi phương pháp này là Phân tán dữ liệu vì nó tách hết tập hợp các dữ liệu ban đầu thành các dữ liệu nhỏ và sắp xếp lại chúng để dễ dàng tìm kiếm và truy xuất hơn, đặc biệt là việc truy xuất các dữ liệu tương đồng. 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:
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:
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. Kiến trúc Map Reduce MapReduce bao gồm 02 pha là map và reduce.
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: Thành phần ứng dụng trong YARN
Tham khảohttps://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 |