HBASE-10839 NullPointerException in construction of RegionServer in Security Cluster
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1582140 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
25932c793d
commit
a87927acdc
|
@ -97,6 +97,7 @@ import org.apache.hadoop.hbase.regionserver.HRegionServer;
|
||||||
import org.apache.hadoop.hbase.regionserver.RSRpcServices;
|
import org.apache.hadoop.hbase.regionserver.RSRpcServices;
|
||||||
import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;
|
import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;
|
||||||
import org.apache.hadoop.hbase.replication.regionserver.Replication;
|
import org.apache.hadoop.hbase.replication.regionserver.Replication;
|
||||||
|
import org.apache.hadoop.hbase.security.UserProvider;
|
||||||
import org.apache.hadoop.hbase.util.Bytes;
|
import org.apache.hadoop.hbase.util.Bytes;
|
||||||
import org.apache.hadoop.hbase.util.CompressionTest;
|
import org.apache.hadoop.hbase.util.CompressionTest;
|
||||||
import org.apache.hadoop.hbase.util.FSUtils;
|
import org.apache.hadoop.hbase.util.FSUtils;
|
||||||
|
@ -272,6 +273,18 @@ public class HMaster extends HRegionServer implements MasterServices, Server {
|
||||||
startActiveMasterManager();
|
startActiveMasterManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For compatibility, if failed with regionserver credentials, try the master one
|
||||||
|
*/
|
||||||
|
protected void login(UserProvider user, String host) throws IOException {
|
||||||
|
try {
|
||||||
|
super.login(user, host);
|
||||||
|
} catch (IOException ie) {
|
||||||
|
user.login("hbase.master.keytab.file",
|
||||||
|
"hbase.master.kerberos.principal", host);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public MasterRpcServices getMasterRpcServices() {
|
public MasterRpcServices getMasterRpcServices() {
|
||||||
return (MasterRpcServices)rpcServices;
|
return (MasterRpcServices)rpcServices;
|
||||||
|
|
|
@ -437,10 +437,9 @@ public class HRegionServer extends HasThread implements
|
||||||
// login the zookeeper client principal (if using security)
|
// login the zookeeper client principal (if using security)
|
||||||
ZKUtil.loginClient(this.conf, "hbase.zookeeper.client.keytab.file",
|
ZKUtil.loginClient(this.conf, "hbase.zookeeper.client.keytab.file",
|
||||||
"hbase.zookeeper.client.kerberos.principal", hostName);
|
"hbase.zookeeper.client.kerberos.principal", hostName);
|
||||||
|
|
||||||
// login the server principal (if using secure Hadoop)
|
// login the server principal (if using secure Hadoop)
|
||||||
userProvider.login("hbase.regionserver.keytab.file",
|
login(userProvider, hostName);
|
||||||
"hbase.regionserver.kerberos.principal", hostName);
|
|
||||||
regionServerAccounting = new RegionServerAccounting();
|
regionServerAccounting = new RegionServerAccounting();
|
||||||
cacheConfig = new CacheConfig(conf);
|
cacheConfig = new CacheConfig(conf);
|
||||||
uncaughtExceptionHandler = new UncaughtExceptionHandler() {
|
uncaughtExceptionHandler = new UncaughtExceptionHandler() {
|
||||||
|
@ -484,9 +483,15 @@ public class HRegionServer extends HasThread implements
|
||||||
catalogTracker.start();
|
catalogTracker.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rpcServices.start();
|
||||||
putUpWebUI();
|
putUpWebUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void login(UserProvider user, String host) throws IOException {
|
||||||
|
user.login("hbase.regionserver.keytab.file",
|
||||||
|
"hbase.regionserver.kerberos.principal", host);
|
||||||
|
}
|
||||||
|
|
||||||
protected String getProcessName() {
|
protected String getProcessName() {
|
||||||
return REGIONSERVER;
|
return REGIONSERVER;
|
||||||
}
|
}
|
||||||
|
|
|
@ -703,7 +703,6 @@ public class RSRpcServices implements HBaseRPCErrorHandler,
|
||||||
initialIsa, // BindAddress is IP we got for this server.
|
initialIsa, // BindAddress is IP we got for this server.
|
||||||
rs.conf,
|
rs.conf,
|
||||||
rpcSchedulerFactory.create(rs.conf, this));
|
rpcSchedulerFactory.create(rs.conf, this));
|
||||||
rpcServer.start();
|
|
||||||
|
|
||||||
scannerLeaseTimeoutPeriod = rs.conf.getInt(
|
scannerLeaseTimeoutPeriod = rs.conf.getInt(
|
||||||
HConstants.HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD,
|
HConstants.HBASE_CLIENT_SCANNER_TIMEOUT_PERIOD,
|
||||||
|
@ -759,6 +758,10 @@ public class RSRpcServices implements HBaseRPCErrorHandler,
|
||||||
return priority;
|
return priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void start() {
|
||||||
|
rpcServer.start();
|
||||||
|
}
|
||||||
|
|
||||||
void stop() {
|
void stop() {
|
||||||
closeAllScanners();
|
closeAllScanners();
|
||||||
rpcServer.stop();
|
rpcServer.stop();
|
||||||
|
|
Loading…
Reference in New Issue