|  | 
| 31 | 31 | import java.util.Arrays; | 
| 32 | 32 | import java.util.List; | 
| 33 | 33 | import java.util.Map; | 
|  | 34 | +import java.util.Map.Entry; | 
| 34 | 35 | import java.util.Set; | 
| 35 | 36 | import java.util.TreeMap; | 
| 36 | 37 | import java.util.TreeSet; | 
| @@ -176,12 +177,14 @@ protected static byte[] combineTableNameSuffix(byte[] tableName, byte[] suffix) | 
| 176 | 177 |   static final String MULTI_TABLE_HFILEOUTPUTFORMAT_CONF_KEY = | 
| 177 | 178 |           "hbase.mapreduce.use.multi.table.hfileoutputformat"; | 
| 178 | 179 | 
 | 
|  | 180 | +  public static final String REMOTE_CLUSTER_CONF_PREFIX = | 
|  | 181 | +    "hbase.hfileoutputformat.remote.cluster."; | 
| 179 | 182 |   public static final String REMOTE_CLUSTER_ZOOKEEPER_QUORUM_CONF_KEY = | 
| 180 |  | -    "hbase.hfileoutputformat.remote.cluster.zookeeper.quorum"; | 
|  | 183 | +    REMOTE_CLUSTER_CONF_PREFIX + "zookeeper.quorum"; | 
| 181 | 184 |   public static final String REMOTE_CLUSTER_ZOOKEEPER_CLIENT_PORT_CONF_KEY = | 
| 182 |  | -    "hbase.hfileoutputformat.remote.cluster.zookeeper." + HConstants.CLIENT_PORT_STR; | 
|  | 185 | +    REMOTE_CLUSTER_CONF_PREFIX + "zookeeper." + HConstants.CLIENT_PORT_STR; | 
| 183 | 186 |   public static final String REMOTE_CLUSTER_ZOOKEEPER_ZNODE_PARENT_CONF_KEY = | 
| 184 |  | -    "hbase.hfileoutputformat.remote.cluster." + HConstants.ZOOKEEPER_ZNODE_PARENT; | 
|  | 187 | +    REMOTE_CLUSTER_CONF_PREFIX + HConstants.ZOOKEEPER_ZNODE_PARENT; | 
| 185 | 188 | 
 | 
| 186 | 189 |   public static final String STORAGE_POLICY_PROPERTY = HStore.BLOCK_STORAGE_POLICY_KEY; | 
| 187 | 190 |   public static final String STORAGE_POLICY_PROPERTY_CF_PREFIX = STORAGE_POLICY_PROPERTY + "."; | 
| @@ -379,6 +382,23 @@ private Configuration createRemoteClusterConf(Configuration conf) { | 
| 379 | 382 |           newConf.set(HConstants.ZOOKEEPER_ZNODE_PARENT, parent); | 
| 380 | 383 |         } | 
| 381 | 384 | 
 | 
|  | 385 | +        for (Entry<String, String> entry : conf) { | 
|  | 386 | +          String key = entry.getKey(); | 
|  | 387 | +          if (REMOTE_CLUSTER_ZOOKEEPER_QUORUM_CONF_KEY.equals(key) || | 
|  | 388 | +              REMOTE_CLUSTER_ZOOKEEPER_CLIENT_PORT_CONF_KEY.equals(key) || | 
|  | 389 | +              REMOTE_CLUSTER_ZOOKEEPER_ZNODE_PARENT_CONF_KEY.equals(key)) { | 
|  | 390 | +            // Handled them above | 
|  | 391 | +            continue; | 
|  | 392 | +          } | 
|  | 393 | + | 
|  | 394 | +          if (entry.getKey().startsWith(REMOTE_CLUSTER_CONF_PREFIX)) { | 
|  | 395 | +            String originalKey = entry.getKey().substring(REMOTE_CLUSTER_CONF_PREFIX.length()); | 
|  | 396 | +            if (!originalKey.isEmpty()) { | 
|  | 397 | +              newConf.set(originalKey, entry.getValue()); | 
|  | 398 | +            } | 
|  | 399 | +          } | 
|  | 400 | +        } | 
|  | 401 | + | 
| 382 | 402 |         return newConf; | 
| 383 | 403 |       } | 
| 384 | 404 | 
 | 
|  | 
0 commit comments