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

Mã tên HDFS Tính khả dụng cao trong Hadoop

Trong blog trước của chúng tôi, chúng tôi đã nghiên cứu Giới thiệu Hadoop Tính năng của Hadoop Bây giờ, trong blog này, chúng tôi sẽ trình bày chi tiết về tính năng Khả dụng Cao Mã số tên HDFS.

Trước hết, chúng ta sẽ thảo luận về Kiến trúc tính khả dụng cao của HDFS NemNode, tiếp theo là việc triển khai Kiến trúc tính khả dụng cao của Hadoop bằng cách sử dụng Mã số tạp chí và Bộ nhớ dùng chung.

Mã tên HDFS Tính khả dụng cao

Trong HDFS , dữ liệu rất sẵn có và có thể truy cập được mặc dù bị lỗi phần cứng. HDFS là hệ thống lưu trữ đáng tin cậy nhất được thiết kế để lưu trữ các tệp rất lớn.

HDFS tuân theo cấu trúc liên kết chủ / tớ. Trong đó cái chính là NameNode và nô lệ là DataNode . NameNode lưu trữ siêu dữ liệu. Siêu dữ liệu bao gồm số lượng khối, vị trí của chúng, bản sao và các chi tiết khác. Để truy xuất dữ liệu nhanh hơn, siêu dữ liệu có sẵn trong bản chính. NameNode duy trì và giao nhiệm vụ cho nút phụ.

NameNode là Điểm lỗi duy nhất (SPOF) trước Hadoop 2.0. Cụm HDFS có một Mã tên duy nhất. Nếu NameNode không thành công, toàn bộ cụm sẽ bị hỏng.

Điểm lỗi duy nhất hạn chế tính khả dụng cao theo những cách sau:

  • Nếu bất kỳ sự kiện không có kế hoạch nào kích hoạt, chẳng hạn như sự cố nút, thì cụm sẽ không khả dụng trừ khi một nhà điều hành khởi động lại nút tên mới.
  • Các hoạt động bảo trì theo kế hoạch cũng như nâng cấp phần cứng trên NameNode sẽ dẫn đến thời gian ngừng hoạt động của cụm Hadoop.

Kiến trúc tính khả dụng cao của mã tên HDFS

Giới thiệu Hadoop 2.0 khắc phục được SPOF này bằng cách cung cấp hỗ trợ cho nhiều NameNode. Kiến trúc NameNode cao HDFS cung cấp tùy chọn chạy hai NameNode dự phòng trong cùng một cụm trong cấu hình hoạt động / thụ động với chế độ chờ nóng.

  • Mã Tên Hoạt động - Nó xử lý tất cả các hoạt động của máy khách HDFS trong cụm HDFS.
  • Mã Tên Bị động - Nó là một nút tên ở chế độ chờ. Nó có dữ liệu tương tự như NameNode đang hoạt động.

Vì vậy, bất cứ khi nào Active NameNode không thành công, NameNode thụ động sẽ chịu mọi trách nhiệm của active node. Do đó, cụm HDFS tiếp tục hoạt động.

Các vấn đề trong việc duy trì tính nhất quán trong nhóm Tính khả dụng cao HDFS như sau:

  • Mã Tên Hoạt động và Chế độ Dự phòng phải luôn đồng bộ với nhau, tức là chúng phải có cùng một siêu dữ liệu. Điều này cho phép khôi phục cụm Hadoop về cùng trạng thái không gian tên nơi nó gặp sự cố. Và điều này sẽ cung cấp cho chúng tôi khả năng chuyển đổi dự phòng nhanh chóng.
  • Mỗi lần chỉ nên có một Mã tên hoạt động. Nếu không, hai NameNode sẽ dẫn đến hỏng dữ liệu. Chúng tôi gọi tình huống này là “ Kịch bản phân chia não bộ ”, Trong đó một cụm được chia thành cụm nhỏ hơn. Mỗi người tin rằng nó là cụm hoạt động duy nhất. "Đấu kiếm" tránh những thứ như vậy Đấu kiếm là một quá trình đảm bảo rằng chỉ một Mã tên vẫn hoạt động tại một thời điểm cụ thể.

Triển khai kiến ​​trúc tính khả dụng cao của Hadoop

Hai NameNode chạy cùng một lúc trong Kiến trúc sẵn có cao HDFS NameNode. Ứng dụng khách HDFS có thể triển khai cấu hình NameNode Hoạt động và Dự phòng theo hai cách sau:

  • Sử dụng các nút số tạp chí
  • Sử dụng Bộ nhớ dùng chung

1. Sử dụng các nút số tạp chí

Số báo danh trên tạp chí là một triển khai HDFS. QJN cung cấp nhật ký chỉnh sửa. Nó cho phép chia sẻ các nhật ký chỉnh sửa này giữa NameNode đang hoạt động và ở chế độ chờ.

Namenode dự phòng giao tiếp và đồng bộ hóa với NameNode đang hoạt động để có tính khả dụng cao. Nó sẽ xảy ra bởi một nhóm daemon được gọi là “Các nút tạp chí”. Các nút số tạp chí chạy như một nhóm các nút tạp chí. Cần có ít nhất ba nút tạp chí.

Đối với N nút tạp chí, hệ thống có thể chịu được tối đa (N-1) / 2 lỗi. Do đó, hệ thống tiếp tục hoạt động. Vì vậy, đối với ba nút tạp chí, hệ thống có thể chịu được lỗi của một {(3-1) / 2} trong số chúng.

Bất cứ khi nào một nút đang hoạt động thực hiện bất kỳ sửa đổi nào, nó sẽ ghi nhật ký sửa đổi vào tất cả các nút tạp chí.

Nút chờ đọc các chỉnh sửa từ các nút tạp chí và áp dụng cho Không gian tên riêng của nó một cách không đổi. Trong trường hợp chuyển đổi dự phòng, chế độ chờ sẽ đảm bảo rằng nó đã đọc tất cả các chỉnh sửa từ các nút tạp chí trước khi tự chuyển sang trạng thái Hoạt động. Điều này đảm bảo rằng trạng thái không gian tên được đồng bộ hóa hoàn toàn trước khi xảy ra lỗi.

Để cung cấp khả năng chuyển đổi dự phòng nhanh chóng, nút dự phòng phải có thông tin cập nhật về vị trí của các khối dữ liệu trong cụm. Để điều này xảy ra, địa chỉ IP của cả NameNode đều có sẵn cho tất cả các nút dữ liệu và chúng gửi thông tin vị trí khối và nhịp tim cho cả NameNode.

Hàng rào của NameNode

Để hoạt động chính xác của một cụm HA, chỉ một trong các Mã Tên sẽ hoạt động tại một thời điểm. Nếu không, trạng thái không gian tên sẽ lệch giữa hai Mã tên. Vì vậy, hàng rào là một quá trình để đảm bảo thuộc tính này trong một cụm.

  • Các nút tạp chí thực hiện hàng rào này bằng cách chỉ cho phép một Mã Tên là người viết tại một thời điểm.
  • NameNode ở chế độ chờ có trách nhiệm ghi vào các nút tạp chí và cấm mọi NameNode khác vẫn hoạt động.
  • Cuối cùng, NameNode đang hoạt động mới có thể thực hiện các hoạt động của nó.

2. Sử dụng bộ nhớ dùng chung

NameNode ở chế độ chờ và hoạt động đồng bộ hóa với nhau bằng cách sử dụng “thiết bị lưu trữ dùng chung”. Để triển khai này, cả NameNode hoạt động và Namenode dự phòng phải có quyền truy cập vào thư mục cụ thể trên thiết bị lưu trữ dùng chung (.i.e. Hệ thống tệp mạng).

Khi NameNode đang hoạt động thực hiện bất kỳ sửa đổi không gian tên nào, nó sẽ ghi lại một bản ghi về sửa đổi vào một tệp nhật ký chỉnh sửa được lưu trữ trong thư mục chia sẻ. NameNode dự phòng theo dõi thư mục này để biết các chỉnh sửa và khi các chỉnh sửa xảy ra, NameNode dự phòng sẽ áp dụng chúng vào không gian tên của chính nó. Trong trường hợp không thành công, NameNode dự phòng sẽ đảm bảo rằng nó đã đọc tất cả các chỉnh sửa từ bộ nhớ dùng chung trước khi tự chuyển sang trạng thái Hoạt động. Điều này đảm bảo rằng trạng thái không gian tên được đồng bộ hóa hoàn toàn trước khi xảy ra chuyển đổi dự phòng.

Để ngăn chặn "kịch bản phân chia" trong đó trạng thái không gian tên lệch giữa hai NameNode, quản trị viên phải định cấu hình ít nhất một phương pháp rào cho bộ nhớ dùng chung.

Kết luận

Do đó, Hadoop 2.0 HDFS HA ​​cung cấp cho NameNode hoạt động duy nhất và NameNode dự phòng duy nhất. Nhưng một số triển khai cần khả năng chịu lỗi ở mức độ cao . Hadoop phiên bản mới 3.0, cho phép người dùng chạy nhiều NameNodes ở chế độ chờ.

Ví dụ, cấu hình năm tạp chí và ba Mã tên. Kết quả là cụm hadoop có thể chịu được lỗi của hai nút thay vì một.

Vui lòng chia sẻ kinh nghiệm và đề xuất của bạn liên quan đến Tính khả dụng cao của mã định danh HDFS trong phần bình luận bên dưới.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hướng dẫn HDFS - Giới thiệu đầy đủ về HDFS cho người mới bắt đầu

  2. Chuyển đổi kỹ thuật số là một hành trình dữ liệu từ Edge đến Insight

  3. Lớp giảm tốc Hadoop trong MapReduce là gì?

  4. Hadoop Mapper Class trong MapReduce là gì?

  5. Khối dữ liệu HDFS - Tìm hiểu nội dung bên trong của Big Data Hadoop