Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import static org.apache.hadoop.hbase.regionserver.HStoreFile.MAJOR_COMPACTION_KEY;

import java.io.IOException;
import java.io.UncheckedIOException;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
import java.net.URLDecoder;
Expand Down Expand Up @@ -590,7 +591,7 @@ private static void writePartitions(Configuration conf, Path partitionsPath,
public static void configureIncrementalLoad(Job job, Table table, RegionLocator regionLocator)
throws IOException {
configureIncrementalLoad(job, table.getDescriptor(), regionLocator);
configureRemoteCluster(job, table.getConfiguration());
configureForRemoteCluster(job, table.getConfiguration());
}

/**
Expand Down Expand Up @@ -776,8 +777,34 @@ public static void configureIncrementalLoadMap(Job job, TableDescriptor tableDes
* @see #REMOTE_CLUSTER_ZOOKEEPER_QUORUM_CONF_KEY
* @see #REMOTE_CLUSTER_ZOOKEEPER_CLIENT_PORT_CONF_KEY
* @see #REMOTE_CLUSTER_ZOOKEEPER_ZNODE_PARENT_CONF_KEY
* @deprecated As of release 2.6.4, this will be removed in HBase 4.0.0 Use
* {@link #configureForRemoteCluster(Job, Configuration)} instead.
*/
public static void configureRemoteCluster(Job job, Configuration clusterConf) throws IOException {
@Deprecated
public static void configureRemoteCluster(Job job, Configuration clusterConf) {
try {
configureForRemoteCluster(job, clusterConf);
} catch (IOException e) {
LOG.error("Configure remote cluster error.", e);
throw new UncheckedIOException("Configure remote cluster error.", e);
}
}

/**
* Configure HBase cluster key for remote cluster to load region location for locality-sensitive
* if it's enabled. It's not necessary to call this method explicitly when the cluster key for
* HBase cluster to be used to load region location is configured in the job configuration. Call
* this method when another HBase cluster key is configured in the job configuration. For example,
* you should call when you load data from HBase cluster A using {@link TableInputFormat} and
* generate hfiles for HBase cluster B. Otherwise, HFileOutputFormat2 fetch location from cluster
* A and locality-sensitive won't working correctly. If authentication is enabled, it obtains the
* token for the specific cluster.
* @param job which has configuration to be updated
* @param clusterConf which contains cluster key of the HBase cluster to be locality-sensitive
* @throws IOException Exception while initializing cluster credentials
*/
public static void configureForRemoteCluster(Job job, Configuration clusterConf)
throws IOException {
Configuration conf = job.getConfiguration();

if (!conf.getBoolean(LOCALITY_SENSITIVE_CONF_KEY, DEFAULT_LOCALITY_SENSITIVE)) {
Expand Down