Hadoop là gì?
Apache Hadoop là một khung phần mềm mã nguồn mở được sử dụng để phát triển các ứng dụng xử lý dữ liệu được thực thi trong môi trường máy tính phân tán.
Các ứng dụng được xây dựng bằng HADOOP được chạy trên các tập dữ liệu lớn được phân phối trên các cụm máy tính hàng hóa. Máy tính hàng hóa có giá thành rẻ và phổ biến rộng rãi. Chúng chủ yếu hữu ích để đạt được sức mạnh tính toán lớn hơn với chi phí thấp.
Tương tự như dữ liệu nằm trong hệ thống tệp cục bộ của hệ thống máy tính cá nhân, trong Hadoop, dữ liệu nằm trong hệ thống tệp phân tán được gọi là hệ thống tệp phân tán Hadoop . Mô hình xử lý dựa trên khái niệm 'Vị trí dữ liệu' trong đó logic tính toán được gửi đến các nút cụm (máy chủ) chứa dữ liệu. Logic tính toán này không là gì, mà là một phiên bản đã biên dịch của một chương trình được viết bằng ngôn ngữ cấp cao như Java. Một chương trình như vậy, xử lý dữ liệu được lưu trữ trong Hadoop HDFS.
Bạn có biết? Cụm máy tính bao gồm một tập hợp nhiều đơn vị xử lý (đĩa lưu trữ + bộ xử lý) được kết nối với nhau và hoạt động như một hệ thống duy nhất.
Trong hướng dẫn này, bạn sẽ học,
- Hệ sinh thái và thành phần Hadoop
- Kiến trúc Hadoop
- Đặc điểm của 'Hadoop'
- Cấu trúc liên kết mạng trong Hadoop
Hệ sinh thái và thành phần Hadoop
Sơ đồ dưới đây cho thấy các thành phần khác nhau trong hệ sinh thái Hadoop-
Apache Hadoop bao gồm hai dự án con -
- Hadoop MapReduce: MapReduce là một mô hình tính toán và khung phần mềm để viết các ứng dụng chạy trên Hadoop. Các chương trình MapReduce này có khả năng xử lý song song dữ liệu khổng lồ trên các cụm nút tính toán lớn.
- HDFS ( Hệ thống tệp phân tán Hadoop ): HDFS đảm nhận phần lưu trữ của các ứng dụng Hadoop. Các ứng dụng MapReduce sử dụng dữ liệu từ HDFS. HDFS tạo ra nhiều bản sao của các khối dữ liệu và phân phối chúng trên các nút tính toán trong một cụm. Phân phối này cho phép tính toán đáng tin cậy và cực kỳ nhanh chóng.
Mặc dù Hadoop được biết đến nhiều nhất với MapReduce và hệ thống tệp phân tán của nó - HDFS, thuật ngữ này cũng được sử dụng cho một nhóm các dự án liên quan thuộc phạm vi của máy tính phân tán và xử lý dữ liệu quy mô lớn. Các dự án khác liên quan đến Hadoop tại Apache bao gồm Hive, HBase, Mahout, Sqoop, Flume và ZooKeeper.
Kiến trúc Hadoop
Hadoop có Kiến trúc Master-Slave để lưu trữ dữ liệu và xử lý dữ liệu phân tán bằng phương pháp MapReduce và HDFS.
TênNode:
NameNode đại diện cho mọi tệp và thư mục được sử dụng trong không gian tên
Mã dữ liệu:
DataNode giúp bạn quản lý trạng thái của một nút HDFS và cho phép bạn tương tác với các khối
MasterNode:
Nút chính cho phép bạn xử lý song song dữ liệu bằng Hadoop MapReduce.
Nút nô lệ:
Các nút nô lệ là các máy bổ sung trong cụm Hadoop cho phép bạn lưu trữ dữ liệu để tiến hành các phép tính phức tạp. Hơn nữa, tất cả các nút nô lệ đều đi kèm với Trình theo dõi tác vụ và Mã dữ liệu. Điều này cho phép bạn đồng bộ hóa các quy trình với NameNode và Job Tracker tương ứng.
Trong Hadoop, hệ thống chủ hoặc hệ thống phụ có thể được thiết lập trên đám mây hoặc tại chỗ
Đặc điểm của 'Hadoop'
• Thích hợp cho phân tích dữ liệu lớn
Vì Dữ liệu lớn có xu hướng phân tán và không có cấu trúc về bản chất, các cụm HADOOP phù hợp nhất để phân tích Dữ liệu lớn. Vì nó đang xử lý logic (không phải dữ liệu thực tế) chảy đến các nút máy tính, băng thông mạng được tiêu thụ ít hơn. Khái niệm này được gọi là khái niệm cục bộ dữ liệu giúp tăng hiệu quả của các ứng dụng dựa trên Hadoop.
• Khả năng mở rộng
Các cụm HADOOP có thể dễ dàng được mở rộng ở bất kỳ mức độ nào bằng cách thêm các nút cụm bổ sung và do đó cho phép tăng trưởng Dữ liệu lớn. Ngoài ra, việc mở rộng quy mô không yêu cầu sửa đổi đối với logic ứng dụng.
• Khả năng chịu lỗi
Hệ sinh thái HADOOP có một điều khoản để sao chép dữ liệu đầu vào sang các nút cụm khác. Bằng cách đó, trong trường hợp có sự cố nút cụm, việc xử lý dữ liệu vẫn có thể tiến hành bằng cách sử dụng dữ liệu được lưu trữ trên một nút cụm khác.
Cấu trúc liên kết mạng trong Hadoop
Cấu trúc liên kết (Arrangment) của mạng, ảnh hưởng đến hiệu suất của cụm Hadoop khi kích thước của cụm Hadoop lớn lên. Ngoài hiệu suất, người ta cũng cần quan tâm đến tính khả dụng cao và khả năng xử lý các hỏng hóc. Để đạt được Hadoop này, việc hình thành cụm sử dụng cấu trúc liên kết mạng.
Thông thường, băng thông mạng là một yếu tố quan trọng cần xem xét khi hình thành bất kỳ mạng nào. Tuy nhiên, vì việc đo băng thông có thể khó khăn nên trong Hadoop, một mạng được biểu diễn dưới dạng cây và khoảng cách giữa các nút của cây này (số bước nhảy) được coi là một yếu tố quan trọng trong việc hình thành cụm Hadoop. Ở đây, khoảng cách giữa hai nút bằng tổng khoảng cách của chúng đến tổ tiên chung gần nhất của chúng.
Hadoop cluster bao gồm một trung tâm dữ liệu, giá đỡ và nút thực sự thực thi các công việc. Ở đây, trung tâm dữ liệu bao gồm các giá đỡ và giá đỡ bao gồm các nút. Băng thông mạng có sẵn cho các quy trình khác nhau tùy thuộc vào vị trí của các quy trình. Nghĩa là, băng thông khả dụng trở nên ít hơn khi chúng ta rời xa-
- Xử lý trên cùng một nút
- Các nút khác nhau trên cùng một giá đỡ
- Các nút trên các giá đỡ khác nhau của cùng một trung tâm dữ liệu
- Các nút trong các trung tâm dữ liệu khác nhau