Java 类org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler 实例源码

项目:RStore    文件:HRegionServer.java   
/**
 * Starts a HRegionServer at the default location
 *
 * @param conf
 * @throws IOException
 * @throws InterruptedException
 */
public HRegionServer(Configuration conf)
throws IOException, InterruptedException {
  this.fsOk = true;
  this.conf = conf;
  // Set how many times to retry talking to another server over HConnection.
  HConnectionManager.setServerSideHConnectionRetries(this.conf, LOG);
  this.isOnline = false;
  checkCodecs(this.conf);

  // Config'ed params
  this.numRetries = conf.getInt("hbase.client.retries.number", 10);
  this.threadWakeFrequency = conf.getInt(HConstants.THREAD_WAKE_FREQUENCY,
    10 * 1000);
  this.msgInterval = conf.getInt("hbase.regionserver.msginterval", 3 * 1000);

  this.sleeper = new Sleeper(this.msgInterval, this);

  this.maxScannerResultSize = conf.getLong(
    HConstants.HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE_KEY,
    HConstants.DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE);

  this.numRegionsToReport = conf.getInt(
    "hbase.regionserver.numregionstoreport", 10);

  this.rpcTimeout = conf.getInt(
    HConstants.HBASE_RPC_TIMEOUT_KEY,
    HConstants.DEFAULT_HBASE_RPC_TIMEOUT);

  this.abortRequested = false;
  this.stopped = false;

  // Server to handle client requests.
  String hostname = DNS.getDefaultHost(
    conf.get("hbase.regionserver.dns.interface", "default"),
    conf.get("hbase.regionserver.dns.nameserver", "default"));
  int port = conf.getInt(HConstants.REGIONSERVER_PORT,
    HConstants.DEFAULT_REGIONSERVER_PORT);
  // Creation of a HSA will force a resolve.
  InetSocketAddress initialIsa = new InetSocketAddress(hostname, port);
  if (initialIsa.getAddress() == null) {
    throw new IllegalArgumentException("Failed resolve of " + initialIsa);
  }
  this.rpcServer = HBaseRPC.getServer(this,
    new Class<?>[]{HRegionInterface.class, HBaseRPCErrorHandler.class,
      OnlineRegions.class},
      initialIsa.getHostName(), // BindAddress is IP we got for this server.
      initialIsa.getPort(),
      conf.getInt("hbase.regionserver.handler.count", 10),
      conf.getInt("hbase.regionserver.metahandler.count", 10),
      conf.getBoolean("hbase.rpc.verbose", false),
      conf, QOS_THRESHOLD);
  // Set our address.
  this.isa = this.rpcServer.getListenerAddress();

  this.rpcServer.setErrorHandler(this);
  this.rpcServer.setQosFunction(new QosFunction());
  this.startcode = System.currentTimeMillis();

  // login the server principal (if using secure Hadoop)
  User.login(this.conf, "hbase.regionserver.keytab.file",
    "hbase.regionserver.kerberos.principal", this.isa.getHostName());
  regionServerAccounting = new RegionServerAccounting();
  cacheConfig = new CacheConfig(conf);
}