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

Đồng bộ hóa dữ liệu nhóm HBase với công cụ HashTable / SyncTable

Replication (được đề cập trong bài blog trước này) đã được phát hành một thời gian và là một trong những tính năng được sử dụng nhiều nhất của Apache HBase. Có các cụm sao chép dữ liệu với các đồng nghiệp khác nhau là cách triển khai rất phổ biến, cho dù là chiến lược DR hay đơn giản là một cách sao chép dữ liệu liền mạch giữa các môi trường sản xuất / dàn dựng / phát triển. Mặc dù đó là một cách hiệu quả để giữ cho các cơ sở dữ liệu HBase khác nhau được đồng bộ trong độ trễ dưới giây, việc sao chép chỉ hoạt động trên dữ liệu được nhập sau khi tính năng này đã được kích hoạt. Điều đó có nghĩa là mọi dữ liệu tồn tại từ trước trên tất cả các cụm liên quan đến việc triển khai nhân rộng sẽ vẫn cần được sao chép giữa các đồng nghiệp theo một cách khác. Có khá nhiều công cụ có thể được sử dụng để đồng bộ hóa dữ liệu đã có từ trước trên các cụm ngang hàng khác nhau. Snapshots, BulkLoad, CopyTable là những ví dụ nổi tiếng về các công cụ như vậy được đề cập trong các bài đăng trên blog Cloudera trước đây. Trong bài viết này, chúng tôi sẽ đề cập đến HashTable / SyncTable, nêu chi tiết một số logic triển khai nội bộ của nó, những ưu và nhược điểm của việc sử dụng nó và cách nó so sánh với một số kỹ thuật sao chép dữ liệu khác được đề cập ở trên.

Tóm lại

HashTable / SyncTable

HashTable / SyncTable là một công cụ được thực hiện dưới dạng hai công việc thu nhỏ bản đồ được thực hiện theo từng bước riêng lẻ. Nó trông giống với CopyTable công cụ này có thể thực hiện cả sao chép dữ liệu một phần hoặc toàn bộ bảng. Không giống như CopyTable nó chỉ sao chép dữ liệu phân kỳ giữa các cụm mục tiêu, tiết kiệm cả tài nguyên mạng và máy tính trong quá trình sao chép.

Bước đầu tiên được thực thi trong quá trình này là HashTable bản đồ-giảm công việc. Điều này sẽ được chạy trên cụm có dữ liệu sẽ được sao chép vào máy ngang hàng từ xa, thường là cụm nguồn. Ví dụ nhanh về cách chạy nó được hiển thị bên dưới, giải thích chi tiết về từng tham số bắt buộc được đưa ra sau trong bài viết này:

 hbase org.apache.hadoop.hbase.mapreduce.HashTable --families =cf my-table / hashes / test-tbl… 20/04/28 05:05:48 INFO mapreduce.Job:map 100% giảm 100 % 20/04/28 05:05:49 INFO mapreduce.Job:Job job_1587986840019_0001 đã hoàn thành thành công20 / 04/28 05:05:49 INFO mapreduce.Job:Counters:68… Định dạng đầu vào tệp Bộ đếm byte Read =0 Đã viết =6811788 

Sau khi HashTable Việc thực hiện lệnh trên đã hoàn tất, một số tệp đầu ra đã được tạo trong nguồn hdfs / hashes / my-table thư mục:

 hdfs dfs -ls -R / hashes / test-tbldrwxr-xr-x - root supergroup 0 2020-04-28 05:05 / hashes / test-tbl / hashes-rw-r - r-- 2 root siêu nhóm 0 2020-04-28 05:05 / hashes / test-tbl / hashes / _SUCCESSdrwxr-xr-x - root supergroup 0 2020-04-28 05:05 / hashes / test-tbl / hashes / part-r-00000 -rw-r - r-- 2 siêu nhóm gốc 6790909 2020-04-28 05:05 / hashes / test-tbl / hashes / part-r-00000 / data-rw-r - r-- 2 siêu nhóm gốc 20879 2020-04-28 05:05 / hashes / test-tbl / hashes / part-r-00000 / index-rw-r - r-- 2 siêu nhóm gốc 99 2020-04-28 05:04 / hashes / test- tbl / manifest-rw-r - r-- 2 siêu nhóm gốc 153 2020-04-28 05:04 / băm / test-tbl / phân vùng 

Chúng cần thiết làm đầu vào cho SyncTable chạy. SyncTable phải được khởi chạy tại mục tiêu ngang hàng. Lệnh dưới đây chạy SyncTable cho đầu ra của HashTable từ ví dụ trước. Nó sử dụng dryrun tùy chọn được giải thích sau trong bài viết này:

 hbase org.apache.hadoop.hbase.mapreduce.SyncTable --dryrun --sourcezkcluster =zk1.example.com, zk2.example.com, zk3.example.com:2181:/ hbase hdfs:// source- cluster-active-nn / hashes / test-tbl test-tbl test-tbl… org.apache.hadoop.hbase.mapreduce.SyncTable $ SyncMapper $ CounterBATCHES =97148HASHES_MATCHED =97146HASHES_NOT_MATCHED =2MATCHINGCELLS =2MATCHINGROESCISSOTINGCELLS =17MATCHINGROESMISSSELLSELLSELLSELLSELLINGSARSDIFFSELLSELLSELLSELLINGSARS 1 

Để tham khảo nhanh, bạn có thể chỉ cần thay thế các tham số đã cho trên cả hai ví dụ bằng các giá trị môi trường thực tế của mình. Phần còn lại của bài viết này sẽ trình bày sâu hơn về chi tiết triển khai.

Tại sao lại có hai bước khác nhau?

Mục tiêu chính của công cụ này là xác định và chỉ sao chép dữ liệu bị thiếu giữa hai cụm. HashTable hoạt động như một công việc phân tích / lập chỉ mục, phân tích các lô dữ liệu bảng và tạo chỉ mục băm cho mỗi lô này. Đây là kết quả đầu ra được ghi trong các tệp dưới / hashes / my-table thư mục hdfs được chuyển làm một trong các tham số công việc. Như đã đề cập trước đây, đầu ra này được yêu cầu bởi SyncTable Công việc. SyncTable quét cục bộ bảng mục tiêu theo cùng một kích thước lô như được HashTable, sử dụng và cũng tính toán các giá trị băm cho các lô này bằng cách sử dụng cùng một hàm được sử dụng bởi HashTable. Sau đó, nó so sánh mã băm hàng loạt cục bộ với giá trị từ HashTable đầu ra. Nếu các giá trị băm bằng nhau, điều đó có nghĩa là toàn bộ lô giống hệt nhau trong hai cụm và không cần sao chép gì trên phân đoạn đó. Nếu không, nó sẽ mở một quá trình quét cho lô trong cụm nguồn, kiểm tra xem từng ô đã tồn tại trong cụm mục tiêu hay chưa, chỉ sao chép những ô phân kỳ. Trên các tập dữ liệu thưa thớt, hơi khác nhau, điều này sẽ dẫn đến việc sao chép dữ liệu giữa hai cụm ít hơn nhiều. Nó cũng sẽ chỉ yêu cầu một số lượng nhỏ ô được quét trong nguồn để kiểm tra xem có sự không khớp hay không.

Các thông số bắt buộc

HashTable chỉ yêu cầu hai tham số:tên bảng và đường dẫn đầu ra nơi các hàm băm liên quan và các tệp thông tin meta khác sẽ được ghi. SyncTable sử dụng HashTable đầu ra dir dưới dạng đầu vào, cùng với tên bảng trong nguồn và trong cụm mục tiêu, tương ứng. Vì chúng tôi đang sử dụng HashTable / SyncTable để di chuyển dữ liệu giữa các cụm từ xa, sourcezkcluster tùy chọn phải được xác định cho SyncTable . Đây phải là địa chỉ túc số của người quản lý vườn thú của cụm nguồn. Trong ví dụ bài viết này, chúng tôi cũng đã tham chiếu trực tiếp địa chỉ nút tên hoạt động của cụm nguồn, do đó SyncTable sẽ đọc tệp đầu ra băm trực tiếp từ cụm nguồn. Ngoài ra, HashTable đầu ra có thể được sao chép thủ công từ cụm nguồn sang cụm từ xa (ví dụ:với distcp).

LƯU Ý:Làm việc với các cụm từ xa trong vùng kerberos khác nhau chỉ được hỗ trợ từ CDH 6.2.1 trở đi.

Tùy chọn nâng cao

Cả HashTable SyncTable cung cấp các tùy chọn tùy chọn bổ sung có thể được điều chỉnh để có kết quả tối ưu.

HashTable cho phép lọc dữ liệu theo cả khóa hàng và thời gian sửa đổi, với startrow / starttime, stoprow / stoptime các thuộc tính, tương ứng. Phạm vi tập dữ liệu cũng có thể bị giới hạn bởi phiên bản gia đình tính chất. Kích thước hàng loạt thuộc tính xác định kích thước của từng phần sẽ được băm. Điều này ảnh hưởng trực tiếp đến hiệu suất đồng bộ hóa. Trong trường hợp có rất ít trường hợp không khớp, việc đặt giá trị kích thước lô lớn hơn có thể dẫn đến hiệu suất tốt hơn vì các phần lớn hơn của tập dữ liệu sẽ bị bỏ qua mà không cần quét bởi SyncTable.

SyncTable cung cấp một dryrun tùy chọn cho phép xem trước các thay đổi sẽ được áp dụng trong mục tiêu.

SyncTable hành vi mặc định là phản chiếu dữ liệu nguồn ở phía đích, vì vậy bất kỳ ô bổ sung nào có trong đích nhưng không có trong nguồn sẽ bị xóa ở phía đích. Điều đó có thể không mong muốn khi đồng bộ hóa các cụm trong thiết lập sao chép Chủ động-Hoạt động và đối với những trường hợp như vậy, doDeletes các tùy chọn có thể được chuyển thành false, bỏ qua việc sao chép các xóa trên mục tiêu. Cũng có một doPuts tương tự cờ cho các trường hợp không nên chèn các ô bổ sung vào cụm mục tiêu.

Phân tích kết quả đầu ra

HashTable xuất một vài tệp có thông tin meta cho SyncTable, những thứ đó, tuy nhiên, con người không thể đọc được. Nó không thực hiện bất kỳ thay đổi nào trên dữ liệu hiện có, vì vậy thông tin liên quan ít được quan tâm đối với ngữ cảnh của người dùng.

SyncTable là bước thực sự áp dụng các sửa đổi trên mục tiêu và điều quan trọng là phải xem lại bản tóm tắt của nó trước khi thực sự thay đổi dữ liệu cụm mục tiêu (xem dryrun tùy chọn nêu trên). Nó xuất bản một số quầy có liên quan ở cuối bản đồ làm giảm việc thực thi. Nhìn vào các giá trị từ ví dụ trên, chúng ta có thể thấy có 97148 phân vùng được băm (được báo cáo bởi BATCHES bộ đếm), mà SyncTable chỉ phát hiện thấy sự phân kỳ trong hai trong số chúng (theo HASHES_MATCHED HASHES_NOT_MACTHED quầy). Ngoài ra, trong hai phân vùng có các hàm băm khác nhau, 17 ô trên 2 hàng phù hợp (như được báo cáo bởi MATCHING_CELLS MATCHING_ROWS, tương ứng), nhưng cũng có 2 hàng phân kỳ, trên hai phân vùng này (theo RANGESNOTMATCHED ROWSWITHDIFFS ). Cuối cùng, SOURCEMISSINGCELLS TARGETMISSINGCELLS cho chúng tôi biết chi tiết nếu các ô chỉ hiện diện trên nguồn hoặc cụm đích. Trong ví dụ này, cụm nguồn có một ô không có trên đích, nhưng đích cũng có một ô không có trên nguồn. Kể từ SyncTable đã được chạy mà không chỉ định dryrun tùy chọn và cài đặt doDeletes tùy chọn false , công việc đã xóa ô thừa trong cụm mục tiêu và đã thêm ô bổ sung được tìm thấy trong nguồn vào cụm mục tiêu. Giả sử không ghi xảy ra trên một trong hai cụm, một lần chạy tiếp theo của cùng một SyncTable lệnh trong cụm mục tiêu sẽ không hiển thị sự khác biệt:

 hbase org.apache.hadoop.hbase.mapreduce.SyncTable --sourcezkcluster =zk1.example.com, zk2.example.com, zk3.example.com:2181:/ hbase hdfs:// nn:9000 / hashes / test-tbl test-tbl test-tbl… org.apache.hadoop.hbase.mapreduce.SyncTable $ SyncMapper $ CounterBATCHES =97148HASHES_MATCHED =97148… 

Các tình huống có thể áp dụng

Đồng bộ hóa dữ liệu

Thoạt nhìn, HashTable / SyncTable có vẻ như trùng lặp với CopyTable công cụ, nhưng vẫn có những tình huống cụ thể mà một trong hai công cụ sẽ phù hợp hơn. Như một ví dụ so sánh đầu tiên, sử dụng HashTable / SyncTable để tải ban đầu một bảng chứa 100.004 hàng và tổng kích thước dữ liệu là 5,17GB, chỉ cần vài phút cho SyncTable để hoàn thành:

 ... 20/04/29 03:48:00 INFO mapreduce.Job:Running job:job_1587985272792_001120 / 04/29 03:48:09 INFO mapreduce.Job:Job job_1587985272792_0011 đang chạy ở chế độ uber:false20 / 04 / 29 03:48:09 INFO mapreduce.Job:map 0% giảm 0% 20/04/29 03:54:08 INFO mapreduce.Job:map giảm 100% 0% 20/04/29 03:54:09 INFO mapreduce .Job:Job job_1587985272792_0011 đã hoàn tất thành công… org.apache.hadoop.hbase.mapreduce.SyncTable $ SyncMapper $ CounterBATCHES =97148EMPTY_BATCHES =97148HASHES_NOT_MATCHED =97148RANGESNOTMATCHED =97489TARGETWISSMISSINGCELLS =10000PISSINGCARGARS =10000WISSINGCELLGWSISSMISSINGCROWS =1000000 

Ngay cả trên tập dữ liệu nhỏ như vậy, CopyTable được thực thi nhanh hơn (khoảng 3 phút, trong khi SyncTable mất 6 phút để sao chép toàn bộ tập dữ liệu):

 ... 20/04/29 05:12:07 INFO mapreduce.Job:Running job:job_1587986840019_000520 / 04/29 05:12:24 INFO mapreduce.Job:Job job_1587986840019_0005 đang chạy ở chế độ uber:false20 / 04 / 29 05:12:24 INFO mapreduce.Job:map 0% giảm 0% 20/04/29 05:13:16 INFO mapreduce.Job:map 25% giảm 0% 20/04/29 05:13:49 INFO mapreduce .Job:bản đồ giảm 50% 0% 20/04/29 05:14:37 THÔNG TIN mapreduce.Job:bản đồ giảm 75% 0% 20/04/29 05:15:14 THÔNG TIN mapreduce.Job:bản đồ giảm 100% 0 %20/04/29 05:15:14 INFO mapreduce.Job:Job job_1587986840019_0005 completed successfully…HBase CountersBYTES_IN_REMOTE_RESULTS=2787236791BYTES_IN_RESULTS=5549784428MILLIS_BETWEEN_NEXTS=130808NOT_SERVING_REGION_EXCEPTION=0NUM_SCANNER_RESTARTS=0NUM_SCAN_RESULTS_STALE=0REGIONS_SCANNED=4REMOTE_RPC_CALLS=1334REMOTE_RPC_RETRIES=0ROWS_FILTERED=0ROWS_SCANNED=100004RPC_CALLS=2657RPC_RETRIES=0

Bây giờ, hãy sử dụng lại cả hai công cụ để đối phó với sự khác biệt thưa thớt trong tập dữ liệu. test-tbl bảng được sử dụng trên tất cả các ví dụ này có bốn vùng trong cụm nguồn. Sau khi tất cả tập dữ liệu gốc đã được sao chép vào cụm mục tiêu trong ví dụ trước, chúng tôi đã thêm bốn hàng bổ sung chỉ ở phía nguồn, một hàng cho mỗi vùng hiện có, sau đó chạy HashTable / SyncTable một lần nữa để đồng bộ hóa cả hai cụm:

 20/04/29 05:29:23 INFO mapreduce.Job:Running job:job_1587985272792_001320 / 04/29 05:29:39 INFO mapreduce.Job:Job job_1587985272792_0013 đang chạy ở chế độ uber:false20 / 04/29 05:29:39 THÔNG TIN mapreduce.Job:map 0% giảm 0% 20/04/29 05:29:53 INFO mapreduce.Job:giảm 50% map 0% 20/04/29 05:30:42 INFO mapreduce.Job:map 100% giảm 0% 20/04/29 05:30:42 INFO mapreduce.Job:Job job_1587985272792_0013 đã hoàn thành thành công… org.apache.hadoop.hbase.mapreduce.SyncTable $ SyncMapper $ CounterBATCHES =97148HASHES_MATCHED =97144HASHES_NOT_MATCHINGCEDCHEDCH =4ROOT_MATCHEDCHED =97144HASHES_NOT_MATCHINGC 5RANGESNOTMATCHED =4ROWSWITHDIFFS =4TARGETMISSINGCELLS =4TARGETMISSINGROWS =4 

Chúng ta có thể thấy điều đó chỉ với bốn phân vùng không khớp, SyncTable nhanh hơn đáng kể (khoảng một phút để hoàn thành). Sử dụng CopyTable để thực hiện cùng một đồng bộ hóa này cho thấy các kết quả sau:

 20/04/29 08:32:38 INFO mapreduce.Job:Running job:job_1587986840019_000820 / 04/29 08:32:52 INFO mapreduce.Job:Job job_1587986840019_0008 đang chạy ở chế độ uber:false20 / 04/29 08:32:52 INFO mapreduce.Job:map 0% giảm 0% 20/04/29 08:33:38 INFO mapreduce.Job:map 25% giảm 0% 20/04/29 08:34:15 INFO mapreduce.Job:bản đồ giảm 50% 0% 20/04/29 08:34:48 INFO mapreduce.Job:map 75% giảm 0% 20/04/29 08:35:31 INFO mapreduce.Job:map 100% giảm 0% 20 / 04/29 08:35:32 INFO mapreduce.Job:Job job_1587986840019_0008 completed successfully…HBase CountersBYTES_IN_REMOTE_RESULTS=2762547723BYTES_IN_RESULTS=5549784600MILLIS_BETWEEN_NEXTS=340672NOT_SERVING_REGION_EXCEPTION=0NUM_SCANNER_RESTARTS=0NUM_SCAN_RESULTS_STALE=0REGIONS_SCANNED=4REMOTE_RPC_CALLS=1323REMOTE_RPC_RETRIES=0ROWS_FILTERED=0ROWS_SCANNED=100008RPC_CALLS=2657RPC_RETRIES=0

CopyTable mất cùng một khoảng thời gian để đồng bộ hóa các bảng như khi sao chép toàn bộ tập dữ liệu, mặc dù chỉ có bốn ô cần sao chép. Điều này vẫn ổn đối với tập dữ liệu rất nhỏ này và với một cụm không hoạt động, nhưng trong các trường hợp sử dụng sản xuất với các tập dữ liệu lớn hơn và trong đó cụm mục tiêu cũng có thể được sử dụng bởi nhiều ứng dụng khách viết dữ liệu trên đó, CopyTable giảm hiệu suất so với SyncTable thậm chí sẽ cao hơn.

Điều đáng nói là cũng có các công cụ / tính năng bổ sung có thể được sử dụng kết hợp cho lần tải ban đầu của một cụm mục tiêu (mục tiêu không có dữ liệu nào cả), chẳng hạn như ảnh chụp nhanh xuất, tải hàng loạt hoặc thậm chí là bản sao trực tiếp của bản gốc bảng dirs từ cụm nguồn. Đối với những lần tải ban đầu với lượng lớn dữ liệu cần sao chép, hãy chụp nhanh bảng và sau đó sử dụng ExportSnapshot công cụ sẽ hoạt động tốt hơn các công cụ sao chép trực tuyến như SyncTable hoặc CopyTable.

Kiểm tra tính toàn vẹn của bản sao

Một cách sử dụng phổ biến khác của HashTable / SyncTable là để theo dõi trạng thái sao chép giữa các cụm, khi khắc phục sự cố sao chép có thể xảy ra. Trong trường hợp này, nó hoạt động như một công cụ thay thế cho công cụ VerifyReplication. Thông thường, khi kiểm tra trạng thái giữa hai cụm, không có sự trùng khớp nào cả hoặc một vấn đề tùy chọn tạm thời đã khiến một phần nhỏ của tập dữ liệu lớn hơn không đồng bộ. Trong môi trường thử nghiệm mà chúng tôi đã sử dụng cho ví dụ trước của chúng tôi, sẽ có 100.008 hàng có giá trị phù hợp trên cả hai cụm. Chạy SyncTable trên cụm đích với tùy chọn dryrun sẽ cho phép chúng tôi xác định bất kỳ sự khác biệt nào:

 20/05/04 10:47:25 INFO mapreduce.Job:Running job:job_1588611199158_0004… 20/05/04 10:48:48 INFO mapreduce.Job:map 100% giảm 0% 20/05/04 10 :48:48 INFO mapreduce.Job:Job job_1588611199158_0004 đã hoàn tất thành công… Bộ đếm HBaseBYTES_IN_REMOTE_RESULTS =3753476784BYTES_IN_RESULTS =5549784600ROWS_SCANNED =100008… org.apATache.hadoop.hncCHaES14 $ Sync có thể chạy qua hệ thống này, không giống như 97148EDMASHMASH có thể sử dụng được chúng tôi. công cụ VerifyReplication trên cụm nguồn. Chúng tôi chuyển id ngang hàng làm một trong các tham số của nó để nó có thể tìm thấy cụm từ xa cần quét để so sánh:20/05/04 11:01:58 INFO mapreduce.Job:Running job:job_1588611196128_0001… 20/05/04 11:04:39 INFO mapreduce.Job:map 100% giảm 0% 20/05/04 11:04:39 INFO mapreduce.Job:Job job_1588611196128_0001 đã hoàn thành thành công… Bộ đếm HBaseBYTES_IN_REMOTE_RESULTS =2761955495BYTES_IN_RESULTS =5549784600 …mapred org.apache.mapred org.apache.mapred.org .replication.VerifyReplication $ Verifier $ CountersGOODROWS =100008 ... 

Không có sự khác biệt, SyncTable tìm thấy tất cả các băm khớp giữa phân vùng nguồn và đích và do đó, tránh phải quét lại cụm nguồn từ xa. VerifyReplication thực hiện so sánh từng ô một trong cả hai cụm, điều này có thể đã mang chi phí mạng cao ngay cả khi xử lý các tập dữ liệu nhỏ như vậy.

Thêm một hàng bổ sung trong cụm nguồn và thực hiện kiểm tra lại. Với VerifyReplication:

 20/05/05 11:14:05 INFO mapreduce.Job:Running job:job_1588611196128_0004… 20/05/05 11:16:32 INFO mapreduce.Job:map 100% giảm 0% 20/05/05 11 :16:32 INFO mapreduce.Job:Job job_1588611196128_0004 đã hoàn thành thành công… org.apache.hadoop.hbase.mapreduce.replication.VerifyReplication $ Verifier $ CountersBADROWS =1GOODROWS =100008ONLY_IN_SOURCE_TABLE_ROWS =1… 

Trước khi có thể sử dụng SyncTable, chúng tôi phải tạo lại các hàm băm trên nguồn bằng HashTable, vì hiện tại có một ô mới:

 20/05/04 11:31:48 INFO mapreduce.Job:Running job:job_1588611196128_0003… 20/05/04 11:33:15 INFO mapreduce.Job:Job job_1588611196128_0003 đã hoàn thành thành công ... 

Now SyncTable:

 20/05/07 05:47:51 INFO mapreduce.Job:Running job:job_1588611199158_0014… 20/05/07 05:49:20 INFO mapreduce.Job:Job job_1588611199158_0014 đã hoàn thành thành công  org.apache.hadoop.hbase.mapreduce.SyncTable $ SyncMapper $ CounterBATCHES =97148HASHES_NOT_MATCHED =97148MATCHINGCELLS =749593MATCHINGROWS =100008RANGESMATCHED =97147RANGESNOTMATCHARITHG =1ROMINGSINGSELLSELLTELLTEDTARITHGETS =1ROMINGSROWDIFF 1ROTROWITH> 1ROWS 1 

Chúng tôi có thể thấy sự gia tăng thời gian thực hiện do quét bổ sung và so sánh ô giữa hai cụm từ xa. Trong khi đó, thời gian thực thi VerifyReplication ít có sự thay đổi.

Kết luận

HashTable / SyncTable là một công cụ có giá trị để di chuyển dữ liệu xung quanh, khi xử lý sự không khớp thưa thớt giữa hai tập dữ liệu cụm. Nó làm cho việc sử dụng phân vùng và băm dữ liệu để phát hiện hiệu quả sự khác biệt trên các phạm vi từ hai tập dữ liệu, giảm số lượng ô được quét trong khi so sánh dữ liệu từ hai cụm, trong khi cũng tránh đặt các giá trị đã tồn tại không cần thiết vào cụm mục tiêu. Tuy nhiên, nó không phải là một viên đạn màu bạc, như được minh họa trong một số ví dụ ở trên, trong khi nó có vẻ trùng lặp về chức năng với CopyTable , công cụ thứ hai có thể mang lại hiệu suất tốt hơn khi xử lý phạm vi lớn hơn, liên tiếp của các ô không khớp. Theo nghĩa đó, HashTable / SyncTable sẽ được áp dụng nhiều nhất trong trường hợp cả hai cụm đều đã có một số dữ liệu đang cư trú hoặc trong trường hợp thiết lập sao chép hiện có bị gián đoạn do tạm thời không có sẵn một trong các ứng dụng ngang hàng.

Các bài viết liên quan:

https://blog.cloudera.com/apache-hbase-replication-overview/

https://blog.cloudera.com/approaches-to-backup-and-disaster-recovery-in-hbase/

https://blog.cloudera.com/online-apache-hbase-backups-with-copytable/

https://blog.cloudera.com/introduction-to-apache-hbase-snapshots/


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hadoop Mapper Class trong MapReduce là gì?

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

  3. Giao dịch HBase là gì?

  4. Hướng dẫn HDFS - Giới thiệu đầy đủ về HDFS cho người mới bắt đầu

  5. Giới thiệu về Kiến trúc &Liên đoàn HDFS