private TServer thriftServer() throws IOException,
TTransportException,
MetaException,
InvocationTargetException,
NoSuchMethodException,
IllegalAccessException,
NoSuchFieldException {
final TServerSocketKeepAlive socket = new TServerSocketKeepAlive(new TServerSocket(0));
this.hiveConf = hiveConf(new Configuration(), socket.getServerSocket().getLocalPort());
HiveMetaStore.HMSHandler baseHandler = new HiveMetaStore.HMSHandler("new db based metaserver", hiveConf);
IHMSHandler handler = RetryingHMSHandler.getProxy(hiveConf, baseHandler, true);
final TTransportFactory transportFactory = new TTransportFactory();
final TSetIpAddressProcessor<IHMSHandler> processor = new TSetIpAddressProcessor<>(handler);
TThreadPoolServer.Args args = new TThreadPoolServer.Args(socket)
.processor(processor)
.transportFactory(transportFactory)
.protocolFactory(new TBinaryProtocol.Factory())
.minWorkerThreads(3)
.maxWorkerThreads(5);
return new TThreadPoolServer(args);
}