Đối phó với hàng tấn dữ liệu đòi hỏi một số sắp xếp đặc biệt. Các kỹ thuật tính toán thông thường không đủ để xử lý một lượng lớn dữ liệu; hơn thế nữa, khi chúng đến từ nhiều nguồn. Trong Dữ liệu lớn, độ lớn mà chúng ta đang nói đến là rất lớn — được đo bằng zettabyte, exabyte hoặc hàng triệu petabyte hoặc hàng tỷ terabyte. Khung có tên Hadoop được sử dụng phổ biến để xử lý một số vấn đề với quản lý Dữ liệu lớn. Bài viết này cố gắng đưa ra ý tưởng giới thiệu về Hadoop dưới góc độ của Dữ liệu lớn.
Sự phát triển
Không có gì xảy ra với một vụ nổ lớn. Nguồn gốc và sự phát triển của Hadoop là dần dần và theo nhu cầu hàng giờ trong việc xử lý Dữ liệu lớn. Nói một cách ngắn gọn, nó có nguồn gốc từ dự án Apache Nutch của Doug Cắt vào năm 2003, đặc biệt là ở phần đầu mã của nó. Nguồn gốc được phát triển từ Hệ thống tệp của Google (GFS), một bài báo được xuất bản vào tháng 10 năm 2003, ảnh hưởng đến một bài báo khác có tên là MapReduce:Xử lý dữ liệu đơn giản trên các cụm lớn. Mã cho HDFS trong Hadoop được lấy ra từ dự án Apache Nutch vào năm 2006 và bị ảnh hưởng rất nhiều bởi các thuật toán GFS và MapReduce. Và thực tế là cái tên “Hadoop” xuất phát từ đồ chơi voi nhồi bông của Cut’s son rõ ràng đã cộng hưởng với ý tưởng rằng có một con voi trong phòng mà Hadoop rõ ràng muốn đề cập hoặc giải quyết.
Tóm lại
Ngày nay, Hadoop đã phát triển từ ban đầu nguyên khối để trở thành một thư viện phần mềm, một khuôn khổ để phát triển các ứng dụng yêu cầu xử lý phân tán một lượng lớn dữ liệu nằm trên các cụm máy tính sử dụng các mô hình lập trình đơn giản. Nó có thể mở rộng quy mô từ một máy chủ lên hàng nghìn máy. Ý tưởng là phân phối tính toán và lưu trữ trên nhiều máy tính để tận dụng việc xử lý các tập hợp dữ liệu lớn. Thư viện có khả năng phát hiện lỗi ở cấp độ của lớp ứng dụng để lập trình viên có thể xử lý chúng và cung cấp dịch vụ trên đầu một cụm máy tính thay vì đưa lỗi xuống một hoặc nhiều cấp thấp hơn mà việc đó trở nên khó khăn hơn. quản lý hoặc vượt qua.
Do đó, Hadoop là sự kết hợp của các công cụ và thư viện nguồn mở được Apache hỗ trợ để tạo các ứng dụng cho máy tính phân tán có độ tin cậy cao và có thể mở rộng.
Cách thức hoạt động
Có ba cách Hadoop về cơ bản xử lý Big Data:
- Vấn đề đầu tiên là bộ nhớ. Dữ liệu được lưu trữ trong nhiều máy tính trong một môi trường phân tán, nơi chúng có thể được xử lý song song để giảm thời gian và tài nguyên. Dữ liệu được lưu giữ trong môi trường có tên là Hệ thống tệp phân tán Hadoop (HDFS) , được sử dụng để lưu trữ dữ liệu ở nhiều định dạng trên các cụm máy. Với mục đích này, nó chia dữ liệu thành các khối và lưu trữ trên các nút dữ liệu khác nhau. Nó sử dụng một kỹ thuật được gọi là chia tỷ lệ ngang để thêm các nút dữ liệu bổ sung vào các cụm HDFS hiện có theo yêu cầu. Điều này giúp tối đa hóa việc sử dụng tài nguyên hiện có thay vì thêm tài nguyên bất cứ khi nào có nhu cầu mở rộng quy mô.
- Vấn đề thứ hai là đáp ứng nhiều loại dữ liệu. HDFS được trang bị để lưu trữ tất cả các loại dữ liệu, có thể là dữ liệu có cấu trúc, bán cấu trúc hoặc phi cấu trúc. Không có xác thực giản đồ trước khi kết xuất. Dữ liệu sau khi được ghi, có thể được đọc nhiều lần mà không gặp bất kỳ vấn đề gì.
- Vấn đề thứ ba là xử lý và cách truy cập dữ liệu được lưu trữ. Về vấn đề này, thuật toán MapReduce ra đời, nơi quá trình xử lý được phân phối giữa các nút phụ để hoạt động song song và kết quả được gửi trở lại nút chính. Nút chính hợp nhất các kết quả trước khi cung cấp kết quả cuối cùng. Phần này do YARN xử lý, được thiết kế để xử lý song song dữ liệu được lưu trữ trong HDFS.
Có nhiều phần phức tạp trong đó, nhưng tóm lại đây là những gì Hadoop làm. Ý tưởng về các mô-đun sẽ cung cấp thêm thông tin chi tiết.
Mô-đun
Dự án Apache Hadoop bao gồm sáu mô-đun. Bốn điều đầu tiên như sau:
- Hadoop Common :Điều này bao gồm các tiện ích thường được Hadoop sử dụng và hỗ trợ các mô-đun Hadoop khác. Nó còn được gọi là Hadoop Core và là một phần thiết yếu của hệ sinh thái, cùng với HDFS, YARN và MapReduce. Ở phần này, Hadoop cho rằng phần cứng dễ bị lỗi và lập trình viên cung cấp bất kỳ phương tiện cần thiết nào để tự động xử lý lỗi trong phần mềm.
- Hệ thống tệp phân tán Hadoop (HDFS) :Hệ thống tệp phân tán có thể chứa nhiều tệp khác nhau trên môi trường phân tán. Nó chia các tệp thành các khối và lưu trữ chúng trên các nút trong một kiến trúc phân tán. Nó cung cấp tính năng mở rộng quy mô theo chiều ngang thay vì mở rộng theo chiều dọc, để tăng cường phân nhóm bổ sung. Nó có khả năng chịu lỗi cao và chi phí thấp về khả năng triển khai phần cứng.
- Hadoop YARN :Đây là CPU của khung công tác Hadoop. Với hai thành phần chính, được gọi là NodeManager và ResourceManager , YARN thực hiện tất cả các hoạt động xử lý như phân bổ tài nguyên, lập lịch tác vụ và quản lý cụm.
- Hadoop MapReduce :Đây là một khuôn khổ để thực hiện tất cả các tính toán song song. MapReduce là một mô hình lập trình song song để xử lý dữ liệu trong môi trường phân tán. Nó được sử dụng lý tưởng để viết các ứng dụng phân tán có thể xử lý một cách hiệu quả lượng lớn dữ liệu trên các cụm phần cứng hàng hóa. Nó phân đoạn quá trình thành hai giai đoạn, được gọi là Bản đồ và Giảm , nơi nhiệm vụ của Người lập bản đồ lớp là lấy đầu vào, mã hóa, ánh xạ và sắp xếp nó. Sau đó, đầu ra trở thành đầu vào cho Bộ giảm tốc lớp, tìm kiếm các cặp phù hợp và giảm bớt chúng. Có các cặp khóa-giá trị cho đầu vào và đầu ra trong mỗi giai đoạn và loại của cặp này do người lập trình xác định.
Hai tiểu dự án mới được thêm vào gần đây:
- Hadoop Ozone :Nó là một kho lưu trữ đối tượng có thể mở rộng, dự phòng và phân tán cho Hadoop. Ngoài khả năng mở rộng đến hàng tỷ đối tượng với các kích thước khác nhau, Ozone có thể hoạt động hiệu quả trong các môi trường chứa đựng như Kubernetes và YARN. Nó được xây dựng trên một lớp lưu trữ khối có tính khả dụng cao, được nhân rộng có tên là Cửa hàng dữ liệu phân tán Hadoop (HDDS) . [Một đoạn trích. Nhấp để tìm thêm.]
- Tàu ngầm Hadoop :Một công cụ học máy cho Hadoop. Đây là một dự án cho phép một kỹ sư cơ sở hạ tầng / nhà khoa học dữ liệu chạy các ứng dụng học sâu (Tensorflow, Pytorch, v.v.) trên nền tảng quản lý tài nguyên (như YARN). [Một đoạn trích. Nhấp để tìm thêm.]
Kết luận
Hadoop đã có tác động đáng kể đến các tìm kiếm, trong quá trình ghi nhật ký, trong kho dữ liệu và phân tích Dữ liệu lớn của nhiều tổ chức lớn, chẳng hạn như Amazon, Facebook, Yahoo, v.v. Đây là một giải pháp một cửa để lưu trữ một lượng lớn dữ liệu thuộc bất kỳ loại nào, đi kèm với khả năng xử lý có thể mở rộng để khai thác các công việc đồng thời hầu như vô hạn. Nói một cách dễ hiểu, sự phổ biến của Hadoop phần lớn nhờ vào khả năng chịu lỗi, có thể mở rộng, tiết kiệm chi phí và nhanh chóng.