From 7a887800afae855d5f533cba3963c622c5f83d8f Mon Sep 17 00:00:00 2001 From: "Y. SREENIVASULU REDDY" Date: Sun, 1 Mar 2026 14:21:41 +0530 Subject: [PATCH 1/3] HBASE-29947 Improve CopyTable command usage to execute in secure clusters --- .../hadoop/hbase/mapreduce/CopyTable.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java index 8a26972c4810..50a3ce8bd957 100644 --- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java +++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java @@ -251,6 +251,35 @@ private static void printUsage(final String errorMsg) { System.err.println(" To copy data from 'sourceTableSnapshot' and bulk load to 'destTable': "); System.err.println(" $ hbase org.apache.hadoop.hbase.mapreduce.CopyTable " + "--new.name=destTable --snapshot --bulkload sourceTableSnapshot"); + System.err.println(); + System.err.println( + " To copy the data of 'TestTable' between the secured cluster and insecure cluster-b"); + System.err.println(" $ hbase org.apache.hadoop.hbase.mapreduce.CopyTable " + + "-Dhbase.mapred.output.hbase.security.authentication=simple " + + "--peer.adr=cluster-b-1.example.com,cluster-b-2.example.com,cluster-b-3.example.com:" + + "2181:/cluster-b" + " TestTable"); + System.err.println(); + System.err.println(" To copy the data of 'TestTable' between different realm secured cluster."); + System.err.println(" Assume cluster-b uses different kerberos principal, " + + "cluster-b/_HOST@EXAMPLE.COM, for master and regionserver kerberos principal from another " + + "cluster"); + System.err.println(" $ hbase org.apache.hadoop.hbase.mapreduce.CopyTable " + + "-Dhbase.mapred.output.hbase.regionserver.kerberos.principal=" + + "cluster-b/_HOST@EXAMPLE.COM " + + "-Dhbase.mapred.output.hbase.master.kerberos.principal=cluster-b/_HOST@EXAMPLE.COM " + + "--peer.adr=cluster-b-1.example.com,cluster-b-2.example.com,cluster-b-3.example.com:" + + "2181:/cluster-b" + " TestTable"); + System.err.println(); + System.err.println( + " To copy the data of 'TestTable' between the insecure cluster and secured cluster-b"); + System.err.println(" $ hbase org.apache.hadoop.hbase.mapreduce.CopyTable " + + "-Dhbase.mapred.output.hbase.security.authentication=kerberos " + + "-Dhbase.mapred.output.hbase.regionserver.kerberos.principal=" + + "cluster-b/_HOST@EXAMPLE.COM " + + "-Dhbase.mapred.output.hbase.master.kerberos.principal=cluster-b/_HOST@EXAMPLE.COM " + + "--peer.adr=cluster-b-1.example.com,cluster-b-2.example.com,cluster-b-3.example.com:" + + "2181:/cluster-b" + " TestTable"); + System.err.println(); System.err.println("For performance consider the following general option:\n" + " It is recommended that you set the following to >=100. A higher value uses more memory but\n" + " decreases the round trip time to the server and may increase performance.\n" From 34750117621eb455a8d7d993f5fc96ee4a421344 Mon Sep 17 00:00:00 2001 From: "Y. SREENIVASULU REDDY" Date: Mon, 23 Mar 2026 22:45:14 +0530 Subject: [PATCH 2/3] HBASE-29947 Improve CopyTable command usage to execute in secure clusters --- .../apache/hadoop/hbase/mapreduce/CopyTable.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java index 50a3ce8bd957..28929976b797 100644 --- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java +++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java @@ -253,16 +253,18 @@ private static void printUsage(final String errorMsg) { + "--new.name=destTable --snapshot --bulkload sourceTableSnapshot"); System.err.println(); System.err.println( - " To copy the data of 'TestTable' between the secured cluster and insecure cluster-b"); + " To copy the data of 'TestTable' from the secured local cluster to an insecure peer cluster" + + " (cluster-b)"); System.err.println(" $ hbase org.apache.hadoop.hbase.mapreduce.CopyTable " + "-Dhbase.mapred.output.hbase.security.authentication=simple " + "--peer.adr=cluster-b-1.example.com,cluster-b-2.example.com,cluster-b-3.example.com:" + "2181:/cluster-b" + " TestTable"); System.err.println(); - System.err.println(" To copy the data of 'TestTable' between different realm secured cluster."); - System.err.println(" Assume cluster-b uses different kerberos principal, " - + "cluster-b/_HOST@EXAMPLE.COM, for master and regionserver kerberos principal from another " - + "cluster"); + System.err.println( + " To copy the data of 'TestTable' from the local secured cluster to a peer secured cluster " + + "in a different Kerberos realm."); + System.err.println(" Assume cluster-b uses a different Kerberos principal " + + "(cluster-b/_HOST@EXAMPLE.COM) for its master and regionserver."); System.err.println(" $ hbase org.apache.hadoop.hbase.mapreduce.CopyTable " + "-Dhbase.mapred.output.hbase.regionserver.kerberos.principal=" + "cluster-b/_HOST@EXAMPLE.COM " @@ -271,7 +273,8 @@ private static void printUsage(final String errorMsg) { + "2181:/cluster-b" + " TestTable"); System.err.println(); System.err.println( - " To copy the data of 'TestTable' between the insecure cluster and secured cluster-b"); + " To copy the data of 'TestTable' from the insecure local cluster to a secured peer cluster" + + " (cluster-b)"); System.err.println(" $ hbase org.apache.hadoop.hbase.mapreduce.CopyTable " + "-Dhbase.mapred.output.hbase.security.authentication=kerberos " + "-Dhbase.mapred.output.hbase.regionserver.kerberos.principal=" From 2313b0a77eeae64817d019f0d3bba845cf784696 Mon Sep 17 00:00:00 2001 From: "Y. SREENIVASULU REDDY" Date: Wed, 25 Mar 2026 21:46:54 +0530 Subject: [PATCH 3/3] HBASE-29947 Improve CopyTable command usage to execute in secure clusters --- .../java/org/apache/hadoop/hbase/mapreduce/CopyTable.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java index 28929976b797..a4a8b9a56bbd 100644 --- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java +++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java @@ -253,8 +253,8 @@ private static void printUsage(final String errorMsg) { + "--new.name=destTable --snapshot --bulkload sourceTableSnapshot"); System.err.println(); System.err.println( - " To copy the data of 'TestTable' from the secured local cluster to an insecure peer cluster" - + " (cluster-b)"); + " To copy the data of 'TestTable' from the secured local cluster to a non-secured peer" + + " cluster (cluster-b)"); System.err.println(" $ hbase org.apache.hadoop.hbase.mapreduce.CopyTable " + "-Dhbase.mapred.output.hbase.security.authentication=simple " + "--peer.adr=cluster-b-1.example.com,cluster-b-2.example.com,cluster-b-3.example.com:" @@ -273,7 +273,7 @@ private static void printUsage(final String errorMsg) { + "2181:/cluster-b" + " TestTable"); System.err.println(); System.err.println( - " To copy the data of 'TestTable' from the insecure local cluster to a secured peer cluster" + " To copy the data of 'TestTable' from a non-secured local cluster to a secured peer cluster" + " (cluster-b)"); System.err.println(" $ hbase org.apache.hadoop.hbase.mapreduce.CopyTable " + "-Dhbase.mapred.output.hbase.security.authentication=kerberos "