Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Giới thiệu về HDFS | HDFS là gì và nó hoạt động như thế nào?

Kỹ thuật cốt lõi của việc lưu trữ tệp trong lưu trữ nằm trong hệ thống tệp mà môi trường điều hành sử dụng. Không giống như các hệ thống tệp thông thường, Hadoop sử dụng một hệ thống tệp khác xử lý các bộ dữ liệu lớn trên một mạng phân tán. Nó được gọi là Hệ thống tệp phân tán Hadoop (HDFS) . Bài viết này giới thiệu ý tưởng, với thông tin cơ bản liên quan để bắt đầu.

Hệ thống tệp là gì?

A hệ thống tệp thường là một phương pháp và cấu trúc dữ liệu mà hệ điều hành sử dụng để quản lý các tệp trên đĩa hoặc phân vùng. Từ quan điểm của một đĩa từ, mọi dữ liệu là một điện tích được lưu trữ trong các cung trên các đường dẫn. Hãy coi các đường ray là các hàng và cung xoắn ốc như các ô nhỏ trên các đường xoắn ốc. Bây giờ, nếu chúng ta yêu cầu đĩa định vị một số dữ liệu, thì tốt nhất, nó có thể chuyển hướng đầu của nó đến một số cung trong chuỗi xoắn ốc. Dữ liệu thô này không có ý nghĩa trừ khi hệ điều hành xuất hiện; nó chịu trách nhiệm phân định thông tin từ một tập hợp các lĩnh vực để được công nhận là một tệp. Hệ điều hành tổ chức thông tin thành một cấu trúc dữ liệu sổ sách kế toán được gọi là hệ thống tệp. Cấu trúc này xác định mẫu ghi sổ kế toán. Tuy nhiên, có một số khác biệt kỹ thuật về cách hệ điều hành quản lý cấu trúc này. Ví dụ:Windows sử dụng mô hình FAT32, NTFS, Linux sử dụng EXT2, EXT3, v.v. Tuy nhiên, ý tưởng cơ bản là tất cả chúng đều tổ chức dữ liệu theo một số cấu trúc xác định.

Tổ chức hệ thống tệp chịu trách nhiệm chính trong việc quản lý việc tạo, sửa đổi và xóa tệp (thư mục cũng là tệp), phân vùng đĩa, kích thước tệp, v.v. và chúng hoạt động trực tiếp trên các thành phần thô của đĩa hoặc phân vùng.

Tệp trong hệ thống phân tán

Các đặc điểm của hệ thống phân tán khác nhau ở chỗ dung lượng lưu trữ được rải trên nhiều máy trong một mạng. Một kho lưu trữ duy nhất không thể chứa một lượng lớn dữ liệu như vậy. Nếu một máy duy nhất có khả năng lưu trữ và công suất xử lý hạn chế, nhưng khi công việc xử lý và lưu trữ được phân phối giữa các máy trên toàn mạng, thì công suất và hiệu quả trở nên đa dạng. Điều này không chỉ mở ra khả năng về sức mạnh xử lý rộng rãi mà còn thúc đẩy việc sử dụng cơ sở hạ tầng hiện có. Kết quả này là chi phí được giảm thiểu nhưng hiệu quả vẫn tăng lên. Mỗi máy trong mạng đều trở thành một workhorse tiềm năng chứa dữ liệu hạn chế trong khi nhìn chung là một phần của kho lưu trữ không giới hạn và sức mạnh xử lý mở rộng. Sự đánh đổi là sự phức tạp. Nếu điều đó có thể được khai thác bằng các kỹ thuật sáng tạo, thì một hệ thống phân tán là một hệ thống tuyệt vời để giải quyết các vấn đề của dữ liệu lớn. Hệ thống tệp HDFS nhằm đạt được điều đó. Nếu thực tế, ngoài HDFS, còn có nhiều hệ thống tệp phân tán tương tự khác, chẳng hạn như IBM’s GPFS (Hệ thống tệp song song chung), Ceph, (liên kết Wikipedia:danh sách các hệ thống tệp phân tán), và những thứ tương tự. Tất cả đều cố gắng giải quyết vấn đề này từ nhiều hướng khác nhau với tỷ lệ thành công khác nhau.

Tổng quan về HDFS

Hệ thống tệp thông thường được thiết kế để hoạt động trên một máy hoặc môi trường hoạt động đơn lẻ. Bộ dữ liệu trong Hadoop yêu cầu dung lượng lưu trữ vượt quá khả năng mà một máy vật lý duy nhất có thể cung cấp. Do đó, bắt buộc phải phân vùng dữ liệu trên một số máy. Điều này yêu cầu một quy trình đặc biệt để quản lý các tệp trên mạng phân tán. HDFS là hệ thống tệp giải quyết vấn đề này một cách cụ thể. Hệ thống tệp này phức tạp hơn hệ thống tệp thông thường vì nó phải đối phó với lập trình mạng, phân mảnh, khả năng chịu lỗi, khả năng tương thích với hệ thống tệp cục bộ, v.v. Nó cho phép Hadoop chạy các ứng dụng Dữ liệu lớn trên nhiều máy chủ. Nó được đặc trưng bởi khả năng chịu lỗi cao với thông lượng dữ liệu cao trên phần cứng giá rẻ. Mục tiêu của hệ thống tệp HDFS như sau:

  • Để xử lý các tệp rất lớn
  • Quyền truy cập dữ liệu trực tuyến vào hệ thống tệp phải tận dụng mẫu ghi một lần và đọc nhiều lần.
  • Chạy trên phần cứng hàng hóa rẻ tiền
  • Nó phải tận dụng quyền truy cập dữ liệu có độ trễ thấp.
  • Hỗ trợ một số lượng lớn các tệp
  • Hỗ trợ nhiều trình ghi tệp với việc sửa đổi tệp tùy ý

Kiến thức cơ bản về HDFS

Lượng dữ liệu nhỏ nhất được đọc và ghi vào đĩa có tên là kích thước khối . Thông thường, kích thước của khối này là 512 byte và khối hệ thống tệp là vài kilobyte. HDFS hoạt động trên nguyên tắc tương tự, nhưng kích thước của khối lớn hơn nhiều. Kích thước khối lớn hơn thúc đẩy tìm kiếm bằng cách giảm thiểu lượt tìm kiếm và do đó chi phí. Các khối này được phân phối trong một cái gì đó được gọi là cụm , không là gì ngoài các khối và bản sao của các khối trên các máy chủ khác nhau trong mạng. Các tệp riêng lẻ được sao chép trên các máy chủ trong cụm.

Có hai loại nút hoạt động trong cụm theo mô hình chủ-tớ. Nút chính được gọi là nút tên và nút worker được gọi là datanodes . Thông qua các nút này, HDFS duy trì cây hệ thống tệp (và thư mục) và siêu dữ liệu. Trên thực tế, một tệp được chia thành các khối và được lưu trữ trong một tập hợp con gồm các nút dữ liệu để trải rộng trên cụm. Datanode chịu trách nhiệm đọc, ghi, tạo khối, xóa và sao chép các yêu cầu trong hệ thống tệp.

Các nút tên Mặt khác, là các máy chủ giám sát quyền truy cập vào hệ thống tệp và duy trì các tệp dữ liệu trong HDFS. Chúng ánh xạ các khối tới datanode và xử lý các yêu cầu mở, đóng và đổi tên tệp / thư mục.

Các nút dữ liệu là phần cốt lõi của hệ thống tệp và thực hiện công việc lưu trữ và truy xuất các yêu cầu khối từ máy khách. Nút định danh là người bảo trì mà datanodes báo cáo. Điều này có nghĩa là nếu các nút tên bị xóa, thông tin về các tệp sẽ bị mất. Do đó, Hadoop đảm bảo rằng nút tên đủ đàn hồi để chịu được bất kỳ loại lỗi nào. Một kỹ thuật để đảm bảo điều đó là sao lưu nó trong nút tên phụ bằng cách hợp nhất định kỳ hình ảnh không gian tên với nhật ký chỉnh sửa. Nút tên phụ thường nằm trên một máy riêng biệt để đảm nhiệm vai trò nút tên chính trong trường hợp hỏng hóc lớn.

Có nhiều cách để tương tác với hệ thống tệp HDFS, nhưng giao diện dòng lệnh có lẽ là cách đơn giản và phổ biến nhất. Hadoop có thể được cài đặt trên một máy và chạy để tận mắt chứng kiến ​​nó. chúng tôi sẽ đề cập đến vấn đề đó trong các bài viết tiếp theo, vì vậy hãy chú ý theo dõi.

Hoạt động của hệ thống tập tin

Các hoạt động của hệ thống tệp HDFS khá giống với các hoạt động của hệ thống tệp thông thường. Đây là một số danh sách chỉ để đưa ra ý tưởng.

Sao chép tệp từ hệ thống tệp cục bộ sang HDFS:

% hadoop fs -copyFromLocal docs/sales.txt hdfs://localhost/
   user/mano/sales.txt

Tạo một thư mục trong HDFS:

% hadoop fs -mkdir students

Liệt kê các tệp và thư mục trong thư mục làm việc hiện tại trong HDFS:

% hadoop fs -ls .

Kết luận

HDFS là sự triển khai của hệ thống tệp được đại diện bởi tính trừu tượng của Hadoop. Hadoop được viết bằng Java; do đó, tất cả các tương tác của hệ thống tệp đều được can thiệp thông qua API Java. Giao diện dòng lệnh là một trình bao được cung cấp cho các tương tác thông thường. Nghiên cứu về HDFS mở ra một chân trời khác cho lĩnh vực kiến ​​trúc phân tán và các quy trình làm việc phức tạp của nó. Rất nhiều công việc đang diễn ra để hoàn thiện mô hình máy tính này, trong đó động lực chắc chắn là Dữ liệu lớn trong những năm gần đây.

Tham khảo

Tài liệu Kiến trúc HDFS


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ZDLRA - RECID cao không hợp lệ RMAN-20035

  2. Ưu điểm của Cơ sở dữ liệu NoSQL - Mọi thứ bạn cần biết

  3. 5 mẹo không phiền phức để sử dụng câu lệnh SQL UPDATE với JOIN

  4. Cải thiện hỗ trợ cho việc xây dựng lại số liệu thống kê song song

  5. Kết nối SAS JMP với Salesforce.com