Tác giả: Suthan Phillips, Ramesh Kandasamy, và Mehul Gulati
Ngày phát hành: 29 JAN 2026
Chuyên mục: Advanced (300), Amazon EMR, Technical How-to
Cụm HBase trên Amazon Simple Storage Service (Amazon S3) cần được nâng cấp thường xuyên để có các tính năng mới, bản vá bảo mật và cải thiện hiệu suất. Trong bài viết này, chúng tôi giới thiệu tính năng prewarm bản sao chỉ đọc của EMR trong Amazon EMR và chỉ cho bạn cách sử dụng nó để giảm thiểu thời gian ngừng hoạt động khi nâng cấp HBase từ hàng giờ xuống còn vài phút bằng cách triển khai blue-green. Cách tiếp cận này hoạt động tốt cho các triển khai cụm đơn, nơi việc giảm thiểu gián đoạn dịch vụ trong quá trình thay đổi cơ sở hạ tầng là quan trọng.
Hiểu các thách thức vận hành của HBase
Việc nâng cấp cụm HBase yêu cầu tắt hoàn toàn cụm, dẫn đến thời gian ngừng hoạt động kéo dài trong khi các vùng khởi tạo và RegionServers trực tuyến. Nâng cấp phiên bản yêu cầu chuyển đổi cụm hoàn toàn, với các bước tốn thời gian bao gồm tải và xác minh siêu dữ liệu vùng, thực hiện kiểm tra HFile và xác nhận gán vùng phù hợp trên các RegionServers. Trong giai đoạn quan trọng này—có thể kéo dài hàng giờ tùy thuộc vào kích thước cụm và khối lượng dữ liệu—các ứng dụng của bạn hoàn toàn không khả dụng.
Thách thức không chỉ dừng lại ở việc nâng cấp phiên bản. Bạn phải thường xuyên áp dụng các bản vá bảo mật và cập nhật kernel để duy trì tuân thủ. Đối với các cụm Amazon EMR 7.0 trở lên chạy trên Amazon Linux 2023, các instance không tự động cài đặt các bản cập nhật bảo mật sau khi khởi chạy; chúng vẫn ở mức bản vá từ thời điểm tạo cụm. AWS khuyến nghị định kỳ tạo lại các cụm với các AMI mới hơn, yêu cầu cùng một quá trình chuyển đổi cứng và rủi ro ngừng hoạt động như một bản nâng cấp phiên bản đầy đủ. Tương tự, khi bạn cần sử dụng các loại instance khác nhau, các phương pháp truyền thống có nghĩa là đưa cụm của bạn ngoại tuyến.
Tổng quan giải pháp
Amazon EMR 7.12 giới thiệu tính năng prewarm bản sao chỉ đọc, một tính năng mới giải quyết những thách thức này. Tính năng này cho phép bạn thực hiện các thay đổi cơ sở hạ tầng cho Apache HBase trên Amazon S3 ở quy mô lớn trong khi giảm thiểu rủi ro ngừng hoạt động và duy trì tính nhất quán của dữ liệu.
Với tính năng prewarm bản sao chỉ đọc, bạn có thể chuẩn bị và xác thực các thay đổi của mình trong một cụm bản sao chỉ đọc trước khi nâng cấp nó lên trạng thái hoạt động, giảm thời gian gián đoạn dịch vụ từ hàng giờ xuống còn vài phút. Bạn sẽ học cách chuẩn bị cụm bản sao chỉ đọc của mình với phiên bản mục tiêu, thực hiện các quy trình chuyển đổi để giảm thiểu thời gian ngừng hoạt động và xác minh quá trình di chuyển thành công trước khi hoàn tất việc chuyển đổi.
Kiến trúc prewarm bản sao chỉ đọc
Sơ đồ sau đây cho thấy kiến trúc và quy trình làm việc. Cả cụm chính và cụm bản sao chỉ đọc đều tương tác với cùng một bộ lưu trữ Amazon S3, truy cập cùng một S3 bucket và thư mục gốc.

Khóa phân tán xác nhận chỉ một cụm HBase có thể ghi tại một thời điểm (đối với các cụm phiên bản 7.12.0 trở lên). Cụm bản sao chỉ đọc thực hiện khởi tạo vùng HBase đầy đủ mà không bị áp lực thời gian, và sau khi được nâng cấp, bản sao chỉ đọc trở thành trình ghi hoạt động như được hiển thị trong sơ đồ sau.

Các bước triển khai nâng cấp cụm HBase
Giờ đây bạn đã hiểu cách hoạt động của tính năng prewarm bản sao chỉ đọc và kiến trúc đằng sau nó, hãy cùng áp dụng kiến thức này vào thực tế. Bạn sẽ thực hiện một quy trình gồm ba giai đoạn chính: chuẩn bị, chuyển đổi và xác minh. Mỗi giai đoạn bao gồm các bước cụ thể, được hiển thị trong hình sau, mà bạn sẽ thực hiện theo trình tự để hoàn tất quá trình di chuyển.

Giai đoạn 1: Chuẩn bị
Trước khi bắt đầu di chuyển, hãy chuẩn bị cả cụm chính của bạn và khởi chạy một cụm bản sao chỉ đọc mới. Mỗi bước trong giai đoạn này đều hướng tới việc xác nhận rằng cụm mới của bạn có thể truy cập và phục vụ dữ liệu hiện có của bạn một cách chính xác.
- Chạy các major compaction trên các bảng để xác minh các vùng không ở trạng thái SPLIT
Chạy các major compaction để hợp nhất các tệp dữ liệu và xác minh các vùng không ở trạng thái SPLIT. Các vùng bị chia tách có thể gây ra xung đột gán trong quá trình di chuyển, vì vậy việc giải quyết chúng ngay từ đầu giúp duy trì sự ổn định của cụm trong suốt quá trình chuyển đổi.shell echo “major_compact 'tablename'” | hbase shell - Chạy
catalog_janitorđể dọn dẹp các vùng cũ
Thực thi quy trìnhcatalog_janitor(công cụ bảo trì tích hợp của HBase) để loại bỏ các tham chiếu vùng cũ khỏi siêu dữ liệu. Việc dọn dẹp các tham chiếu này ngăn ngừa sự nhầm lẫn trong quá trình gán vùng trong cụm bản sao chỉ đọc.shell echo “catalogjanitor_run” | hbase shell - Xác nhận không có sự không nhất quán trong cụm HBase chính
Xác minh tính toàn vẹn của cụm trước khi di chuyển:shell sudo -u hbase hbase hbck > hbck_report.txt
Chạy công cụ kiểm tra tính nhất quán của HBase phiên bản 2 (HBCK2) thực hiện quét chẩn đoán để xác định và báo cáo các vấn đề về siêu dữ liệu, vùng và trạng thái bảng, xác nhận cụm của bạn đã sẵn sàng để di chuyển. - Khởi chạy cụm bản sao chỉ đọc HBase với phiên bản mục tiêu kết nối đến cùng thư mục gốc HBase trong Amazon S3 như cụm chính
Khởi chạy một cụm HBase mới với phiên bản mục tiêu và cấu hình nó để kết nối đến cùng thư mục gốc S3 như cụm chính. Xác nhận rằng chế độ chỉ đọc được bật theo mặc định như được hiển thị trong ảnh chụp màn hình sau.
Nếu bạn đang sử dụng AWS Command Line Interface (AWS CLI), bạn có thể bật bản sao chỉ đọc trong khi khởi chạy cụm Amazon EMR HBase trên Amazon S3 bằng cách đặt tham số hbase.emr.readreplica.enabled.v2thànhtruetrong phân loại HBase như được hiển thị trong ví dụ sau:{ "Classification": "hbase", "Properties": { "hbase.emr.readreplica.enabled.v2": "true", "hbase.emr.storageMode": "s3" } } - Chạy meta refresh trong cụm bản sao chỉ đọc HBase này
shell echo "refresh_meta" | hbase shell
Bạn đang tạo một môi trường song song với phiên bản mới có thể truy cập dữ liệu hiện có mà không có rủi ro sửa đổi, cho phép xác thực trước khi cam kết nâng cấp. - Xác thực bản sao chỉ đọc và xác minh rằng các vùng hiển thị trạng thái OPEN và được gán đúng cách:
Thực hiện các thao tác đọc mẫu đối với các bảng chính của bạn để xác nhận bản sao chỉ đọc có thể truy cập dữ liệu của bạn một cách chính xác. Trong giao diện người dùng HBase Master, xác minh rằng các vùng hiển thị trạng tháiOPENvà được gán đúng cách cho RegionServers. Bạn cũng nên xác nhận rằng tổng kích thước dữ liệu khớp với cụm trước đó của bạn để xác minh khả năng hiển thị dữ liệu hoàn chỉnh. - Chuẩn bị cho việc chuyển đổi trên cụm chính
Tắt cân bằng và nén trên cụm chính:echo "balance_switch false" | hbase shell echo "compaction_switch false" | hbase shellNgăn chặn các hoạt động nền thay đổi bố cục dữ liệu hoặc kích hoạt di chuyển vùng giúp duy trì trạng thái nhất quán trong cửa sổ di chuyển. Chụp ảnh nhanh các bảng của bạn để có khả năng khôi phục:# For each table echo "snapshot 'table_name', 'table_name_pre_migration_$(date +%Y%m%d)'" | hbase shell # For system tables echo "snapshot 'hbase:meta', 'meta_pre_migration_$(date +%Y%m%d)'" | hbase shell echo "snapshot 'hbase:namespace', 'namespace_pre_migration_$(date +%Y%m%d)'" | hbase shellCác ảnh chụp nhanh này cho phép khôi phục tại một thời điểm cụ thể nếu bạn phát hiện ra sự cố sau khi di chuyển. - Chạy meta refresh và refresh hfiles trên bản sao chỉ đọc:
shell echo "refresh_meta" | hbase shell hbase org.apache.hadoop.hbase.client.example.RefreshHFilesClient "table_name'"
Làm mới xác nhận bản sao chỉ đọc có các gán vùng, cấu trúc bảng và tham chiếu HFile mới nhất trước khi tiếp quản lưu lượng truy cập sản xuất. - Kiểm tra sự không nhất quán trong cụm bản sao chỉ đọc
Chạy công cụ HBCK2 trên cụm bản sao chỉ đọc để xác định các vấn đề tiềm ẩn:sudo -u hbase hbase hbck > hbck_report.txtKhi một bản sao chỉ đọc được tạo, cả cụm chính và cụm bản sao đều hiển thị sự không nhất quán về siêu dữ liệu tham chiếu đến các thư mục meta của nhau: “There is a hole in the region chain”. Cụm chính phàn nàn về meta_<read-replica-cluster-id>, trong khi bản sao chỉ đọc phàn nàn về thư mục meta của cụm chính. Sự không nhất quán này không ảnh hưởng đến hoạt động của cụm nhưng xuất hiện trong các báo cáo hbck. Để có một báo cáo hbck sạch sau khi chuyển sang bản sao chỉ đọc và chấm dứt cụm chính, hãy xóa thủ công thư mục meta của cụm chính cũ khỏi Amazon S3 sau khi sao lưu nó. Ngoài ra, hãy kiểm tra giao diện người dùng HBase Master để xác nhận trực quan tình trạng cụm. Việc xác minh cụm bản sao chỉ đọc có trạng thái sạch, nhất quán trước khi nâng cấp sẽ ngăn ngừa các vấn đề truy cập dữ liệu tiềm ẩn sau khi chuyển đổi.
Giai đoạn 2: Chuyển đổi
Thực hiện quá trình di chuyển thực tế bằng cách tắt cụm chính và nâng cấp bản sao chỉ đọc. Các bước trong giai đoạn này giảm thiểu thời gian cụm của bạn không khả dụng đối với các ứng dụng.
- Xóa cụm chính khỏi định tuyến DNS
Cập nhật các mục DNS để chuyển hướng lưu lượng truy cập ra khỏi cụm chính, ngăn các yêu cầu mới đến được nó trong quá trình tắt máy. - Flush dữ liệu trong bộ nhớ vào Amazon S3
Flush dữ liệu trong bộ nhớ để xác nhận độ bền trong Amazon S3:shell # Flush application data echo "flush 'usertable'" | hbase shell # Flush system tables echo "flush 'hbase:meta'" | hbase shell echo "flush 'hbase:namespace'" | hbase shell
Việc flush buộc dữ liệu vẫn còn trong bộ nhớ (trong MemStores, bộ đệm ghi của HBase) được ghi vào bộ lưu trữ bền vững (Amazon S3), ngăn ngừa mất dữ liệu trong quá trình chuyển đổi giữa các cụm. - Chấm dứt cụm chính
Chấm dứt cụm chính sau khi xác nhận dữ liệu đã được lưu trữ bền vững vào Amazon S3. Bước này giải phóng tài nguyên và loại bỏ khả năng xảy ra các kịch bản split-brain, nơi cả hai cụm có thể chấp nhận ghi vào cùng một tập dữ liệu. - Nâng cấp bản sao chỉ đọc lên trạng thái hoạt động
Chuyển đổi bản sao chỉ đọc sang chế độ đọc-ghi:echo "readonly_switch false" | hbase shell echo "readonly_state" | hbase shell # Verify the switch was successfulQuá trình nâng cấp tự động làm mới meta và HFiles, ghi lại các thay đổi cuối cùng từ các thao tác flush và xác nhận khả năng hiển thị dữ liệu hoàn chỉnh. Khi bạn nâng cấp cụm, nó chuyển từ chế độ chỉ đọc sang chế độ đọc-ghi, cho phép nó chấp nhận các thao tác ghi của ứng dụng và thay thế hoàn toàn chức năng của cụm cũ. - Cập nhật DNS để trỏ đến cụm hoạt động mới
Cập nhật các mục DNS để chuyển hướng lưu lượng truy cập đến cụm hoạt động mới. Định tuyến lưu lượng truy cập của client đến cụm mới khôi phục tính khả dụng của dịch vụ và hoàn tất quá trình di chuyển từ góc độ ứng dụng.
Giai đoạn 3: Xác thực
Với cụm mới của bạn hiện đang hoạt động, bạn đã sẵn sàng xác minh rằng mọi thứ đang hoạt động chính xác trước khi tuyên bố quá trình di chuyển hoàn tất.
Thực hiện các thao tác ghi thử nghiệm để xác nhận cụm chấp nhận ghi đúng cách. Kiểm tra giao diện người dùng HBase Master để xác minh các vùng đang phục vụ cả yêu cầu đọc và ghi mà không có lỗi. Tại thời điểm này, quá trình di chuyển của bạn sang bản phát hành Amazon EMR mới đã hoàn tất và các ứng dụng của bạn có thể kết nối với cụm mới và tiếp tục các hoạt động đọc-ghi bình thường.
Lợi ích chính
Phương pháp prewarm bản sao chỉ đọc mang lại một số lợi thế quan trọng so với các phương pháp nâng cấp HBase truyền thống. Đáng chú ý nhất, bạn có thể giảm thời gian gián đoạn dịch vụ từ hàng giờ xuống còn vài phút bằng cách chuẩn bị cụm mới của mình song song với môi trường sản xuất đang chạy.
Trước khi cam kết nâng cấp, bạn có thể kiểm tra kỹ lưỡng rằng dữ liệu có thể đọc và truy cập được trong phiên bản mới. Hệ thống tải và gán các vùng trước khi kích hoạt, loại bỏ thời gian khởi động kéo dài mà theo truyền thống gây ra thời gian ngừng hoạt động kéo dài. Quá trình pre-warming này có nghĩa là cụm mới của bạn sẵn sàng phục vụ lưu lượng truy cập ngay lập tức khi được nâng cấp.
Bạn cũng có được khả năng xác thực nhiều khía cạnh của việc triển khai trước khi chuyển đổi, bao gồm tính toàn vẹn của dữ liệu, hiệu suất đọc, sự ổn định của cụm và tính đúng đắn của cấu hình. Việc xác thực này diễn ra trong khi cụm sản xuất của bạn tiếp tục phục vụ lưu lượng truy cập, giảm rủi ro phát hiện các vấn đề trong cửa sổ bảo trì của bạn.
Đối với các quy trình làm việc kiểm tra và xác thực, bạn có thể chạy môi trường kiểm tra song song bằng cách tạo nhiều bản sao chỉ đọc HBase. Tuy nhiên, bạn nên xác minh rằng chỉ có một cụm HBase duy nhất vẫn ở chế độ đọc-ghi đối với kho dữ liệu Amazon S3 để ngăn ngừa hỏng dữ liệu và các vấn đề về tính nhất quán.
Quy trình khôi phục
Luôn kiểm tra kỹ lưỡng các quy trình khôi phục HBase của bạn trước khi triển khai nâng cấp trong môi trường sản xuất.
Khi khôi phục các cụm HBase trong Amazon EMR, bạn có hai tùy chọn chính.
- Tùy chọn 1 liên quan đến việc khởi chạy một cụm mới với phiên bản HBase trước đó trỏ đến cùng vị trí dữ liệu Amazon S3 như cụm đã nâng cấp. Cách tiếp cận này đơn giản để triển khai, bảo toàn dữ liệu được ghi trước và sau khi thử nâng cấp, đồng thời cung cấp khả năng khôi phục nhanh hơn mà không yêu cầu thêm dung lượng lưu trữ. Tuy nhiên, nó có nguy cơ gặp phải các vấn đề tương thích dữ liệu nếu bản nâng cấp đã sửa đổi định dạng dữ liệu hoặc cấu trúc siêu dữ liệu, có khả năng dẫn đến hành vi không mong muốn.
- Tùy chọn 2 áp dụng một cách tiếp cận thận trọng hơn bằng cách khởi chạy một cụm mới với phiên bản HBase trước đó và khôi phục từ các ảnh chụp nhanh được tạo trước khi nâng cấp. Phương pháp này đảm bảo quay trở lại trạng thái đã biết, nhất quán, loại bỏ rủi ro tương thích phiên bản và cung cấp sự cô lập hoàn toàn khỏi lỗi dữ liệu được đưa vào trong quá trình nâng cấp. Đánh đổi là dữ liệu được ghi sau khi ảnh chụp nhanh được tạo sẽ bị mất và quá trình khôi phục yêu cầu nhiều thời gian và lập kế hoạch hơn.
Đối với môi trường sản xuất nơi tính toàn vẹn của dữ liệu là tối quan trọng, phương pháp dựa trên ảnh chụp nhanh (tùy chọn 2) thường được ưu tiên mặc dù có khả năng mất một số dữ liệu.
Các cân nhắc
- Di chuyển theo dõi tệp lưu trữ: Di chuyển từ Amazon EMR 7.3 (hoặc cũ hơn) yêu cầu tắt và xóa bảng
hbase:storefiletrên cụm chính, sau đó flush siêu dữ liệu. Khi khởi chạy cụm bản sao chỉ đọc mới, hãy cấu hình triển khaiDefaultStoreFileTrackerbằng cách sử dụng thuộc tínhhbase.store.file-tracker.impl. Khi hoạt động, hãy chạy các lệnhchange_sftđể chuyển các bảng sang phương pháp theo dõiFILE, cung cấp quyền truy cập tệp dữ liệu liền mạch trong quá trình di chuyển. - Triển khai đa AZ: Cân nhắc độ trễ mạng và các mẫu truy cập Amazon S3 khi triển khai các bản sao chỉ đọc trên các Availability Zone. Việc truyền dữ liệu giữa các AZ có thể ảnh hưởng đến độ trễ đọc cho cụm bản sao chỉ đọc.
- Tác động chi phí: Chạy các cụm song song trong quá trình di chuyển phát sinh thêm chi phí cơ sở hạ tầng cho đến khi cụm chính bị chấm dứt.
- Các bảng bị vô hiệu hóa: Trạng thái bị vô hiệu hóa của các bảng trong cụm chính là một thuộc tính quản trị dành riêng cho cụm không được truyền đến cụm bản sao chỉ đọc. Nếu bạn muốn chúng bị vô hiệu hóa trong bản sao chỉ đọc, bạn phải vô hiệu hóa chúng một cách rõ ràng.
- Nâng cấp cụm Amazon EMR 5.x: Nâng cấp trực tiếp từ Amazon EMR 5.x lên Amazon EMR 7.x bằng tính năng này không được hỗ trợ do thay đổi phiên bản HBase chính từ 1.x sang 2.x. Để nâng cấp từ Amazon EMR 5.x lên Amazon EMR 7.x, hãy làm theo các bước trong các phương pháp hay nhất của chúng tôi: AWS EMR Best Practices – HBase Migration
Kết luận
Trong bài viết này, chúng tôi đã chỉ cho bạn cách tính năng prewarm bản sao chỉ đọc của Amazon EMR 7.12 cải thiện hoạt động của cụm HBase bằng cách giảm thiểu các ràng buộc chuyển đổi cứng khiến việc thay đổi cơ sở hạ tầng trở nên thách thức. Tính năng này cung cấp cho bạn một mẫu triển khai blue-green nhất quán giúp giảm rủi ro và thời gian ngừng hoạt động cho các bản nâng cấp phiên bản và bản vá bảo mật.
Khi bạn có thể xác thực kỹ lưỡng các thay đổi trước khi cam kết với chúng và giảm thời gian gián đoạn dịch vụ từ hàng giờ xuống còn vài phút, bạn có thể duy trì cơ sở hạ tầng HBase một cách tự tin và hiệu quả hơn. Giờ đây, bạn có thể áp dụng cách tiếp cận chủ động hơn để bảo trì cụm, tuân thủ bảo mật và tối ưu hóa hiệu suất với sự tự tin hơn vào các quy trình vận hành của mình.
Để tìm hiểu thêm về Amazon EMR và HBase trên Amazon S3, hãy truy cập tài liệu Amazon EMR. Để bắt đầu với các bản sao chỉ đọc, hãy xem hướng dẫn HBase trên Amazon S3.
Về tác giả

Suthan Phillips
Suthan là Kiến trúc sư Phân tích Cấp cao tại AWS, nơi anh giúp khách hàng thiết kế và tối ưu hóa các giải pháp dữ liệu có khả năng mở rộng, hiệu suất cao nhằm thúc đẩy thông tin chi tiết kinh doanh. Anh kết hợp hướng dẫn kiến trúc về thiết kế hệ thống và khả năng mở rộng với các phương pháp hay nhất để cung cấp triển khai hiệu quả, an toàn trên các lớp xử lý dữ liệu và trải nghiệm. Ngoài công việc, Suthan thích bơi lội, đi bộ đường dài và khám phá vùng Tây Bắc Thái Bình Dương.

Ramesh Kandasamy
Ramesh là Giám đốc Kỹ thuật tại Amazon EMR. Anh là một Amazonian lâu năm tận tâm giải quyết các vấn đề về hệ thống phân tán.

Mehul Gulati
Mehul là Kỹ sư Phát triển Phần mềm cho Amazon EMR tại Amazon Web Services. Chuyên môn của anh bao gồm các hệ thống dữ liệu lớn như HBase, Hive, Tez và các giải pháp lưu trữ phân tán. Sự tận tâm với khách hàng và tập trung vào độ tin cậy của anh giúp Amazon EMR cung cấp khả năng xử lý dữ liệu lớn đáng tin cậy và hiệu quả cho khách hàng.