HBase
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> HBase

Giới thiệu về Bộ đệm phân tán trong Hadoop

Trong hướng dẫn này, chúng tôi sẽ cung cấp cho bạn mô tả chi tiết về Bộ đệm phân tán trong Hadoop . Trước hết, chúng ta sẽ hiểu sơ qua về Hadoop là gì, sau đó chúng ta sẽ xem phân tán Cache trong Hadoop là gì.

Chúng tôi cũng sẽ đề cập đến cách làm việc và triển khai Bộ đệm ẩn phân tán Hadoop. Cuối cùng trong blog này, chúng ta cũng sẽ thấy những ưu điểm và nhược điểm của bộ nhớ đệm phân tán trong Hadoop.

Giới thiệu về Hadoop

Đây là một cơ chế mà khung công tác MapReduce cung cấp cho các tệp bộ đệm ẩn mà ứng dụng cần. Nó có thể lưu vào bộ đệm các tệp như tệp văn bản / dữ liệu chỉ đọc và các loại phức tạp hơn như tệp lưu trữ, tệp jar, v.v.

Trước khi bắt đầu với Bộ đệm phân tán, trước tiên chúng ta hãy thảo luận về Hadoop là gì?

Hadoop là khung lập trình mã nguồn mở, dựa trên Java. Nó hỗ trợ xử lý và lưu trữ các bộ dữ liệu cực lớn trong môi trường phân tán. Hadoop tuân theo cấu trúc liên kết Master-Slave.

Master là NameNode và Slave là DataNode. Datanode lưu trữ dữ liệu thực tế trong HDFS . Và nó thực hiện thao tác đọc và ghi theo yêu cầu của khách hàng. Namenode lưu trữ siêu dữ liệu.

Trong Apache Hadoop, các khối dữ liệu, xử lý song song giữa các Datanode, sử dụng một chương trình do người dùng viết. Nếu chúng tôi muốn truy cập một số tệp từ tất cả các Datanode, thì chúng tôi sẽ đặt tệp đó vào bộ đệm phân tán.

Bộ nhớ đệm phân tán trong Hadoop là gì?

Bộ nhớ đệm được phân phối trong Hadoop là một cơ sở được cung cấp bởi khung MapReduce. Bộ đệm phân tán có thể lưu vào bộ đệm các tệp khi ứng dụng cần. Nó có thể cache chỉ đọc các tệp văn bản, tệp lưu trữ, tệp jar, v.v.

Khi chúng tôi đã lưu vào bộ nhớ cache một tệp cho công việc của mình, Apache Hadoop sẽ cung cấp tệp đó trên mỗi nút dữ liệu nơi các tác vụ bản đồ / thu nhỏ đang chạy. Do đó, chúng tôi có thể truy cập tệp từ tất cả các nút dữ liệu trong công việc MapReduce của chúng tôi.

Kích thước của bộ nhớ đệm phân tán

Theo mặc định, kích thước bộ nhớ cache được phân phối là 10 GB. Nếu chúng tôi muốn điều chỉnh kích thước của bộ đệm ẩn phân tán, chúng tôi có thể điều chỉnh bằng cách sử dụng cục bộ . bộ nhớ đệm . kích thước.

Thực hiện

Ứng dụng sẽ sử dụng bộ đệm phân tán để phân phối tệp:

  • Trước tiên phải đảm bảo rằng tệp có sẵn.
  • Sau đó, hãy đảm bảo rằng tệp có thể được truy cập thông qua các URL. URL có thể là hdfs:// hoặc https://.

Sau khi xác thực ở trên, nếu tệp có mặt trên các url được đề cập. Người dùng Hadoop đề cập nó là một tệp bộ đệm ẩn vào bộ đệm ẩn phân tán. Công việc Hadoop MapReduce sẽ sao chép tệp bộ đệm ẩn trên tất cả các nút trước khi bắt đầu các tác vụ trên các nút đó.

Thực hiện theo quy trình dưới đây:

a) Sao chép tệp cần thiết vào HDFS:

$ hdfs dfs-put / user / dataflair / lib / jar_file.jar

b) Thiết lập JobConf của ứng dụng:

DistributedCache.addFileToClasspath (Đường dẫn mới (“/user/dataflair/lib/jar-file.jar”), conf).

c) Thêm nó vào lớp Trình điều khiển.

Ưu điểm của Bộ đệm phân tán

  • Điểm lỗi duy nhất- Khi bộ nhớ cache phân tán chạy trên nhiều nút. Do đó, sự cố của một nút không dẫn đến sự cố hoàn toàn của bộ nhớ cache.
  • Tính nhất quán của dữ liệu- Nó theo dõi dấu thời gian sửa đổi của các tệp bộ nhớ cache. Sau đó, nó thông báo rằng các tệp không được thay đổi cho đến khi một công việc đang thực thi. Sử dụng thuật toán băm, công cụ bộ nhớ cache luôn có thể xác định nút nào có một khóa-giá trị cụ thể. Như chúng ta đã biết, luôn có một trạng thái duy nhất của cụm bộ nhớ cache, do đó, nó không bao giờ không nhất quán.
  • Lưu trữ dữ liệu phức tạp - Nó phân phối tệp văn bản chỉ đọc, đơn giản. Nó cũng lưu trữ các loại phức tạp như lọ, tài liệu lưu trữ. Sau đó, những thành tích này sẽ không được lưu trữ tại nút phụ.

Nhược điểm của Bộ đệm phân tán

Bộ nhớ đệm phân tán trong Hadoop có chi phí sẽ làm cho nó chậm hơn bộ nhớ đệm trong quá trình:

a) Tuần tự hóa đối tượng - Nó phải tuần tự hóa các đối tượng. Nhưng cơ chế tuần tự hóa có hai vấn đề chính:

  • Rất cồng kềnh - Serialization lưu trữ tên lớp, cụm và chi tiết lắp ráp hoàn chỉnh. Nó cũng lưu trữ các tham chiếu đến các thể hiện khác trong các biến thành viên. Tất cả những điều này làm cho quá trình tuần tự hóa trở nên rất cồng kềnh.
  • Rất chậm - Serialization sử dụng phản xạ để kiểm tra loại thông tin trong thời gian chạy. Phản ánh là một quá trình rất chậm so với mã được biên dịch trước.

Kết luận

Kết luận về bộ đệm phân tán, chúng ta có thể nói rằng, nó là một cơ sở được cung cấp bởi MapReduce. Nó lưu trữ các tệp khi ứng dụng cần. Nó có thể cache chỉ đọc các tệp văn bản, tệp lưu trữ, tệp jar, v.v.

Theo mặc định, kích thước bộ nhớ cache được phân phối là 10 GB. Nếu bạn tìm thấy blog này hoặc bạn có bất kỳ truy vấn nào liên quan đến Bộ nhớ đệm phân tán trong Hadoop, vì vậy hãy chia sẻ với chúng tôi.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tính sẵn sàng cao (Đa AZ) cho Cơ sở dữ liệu hoạt động của CDP

  2. Cách triển khai mô hình ML vào sản xuất

  3. 6 xuất sắc nhất MapReduce nghề Kỹ thuật Tối ưu hóa

  4. Hadoop OutputFormat trong MapReduce là gì?

  5. Đường dẫn ghi Apache HBase