主要观察 startMetaStore(cli.port, ShimLoader.getHadoopThriftAuthBridge(), conf);
进入此函数来debug
TServerTransport serverTransport = tcpKeepAlive ? new TServerSocketKeepAlive(port)
: new TServerSocket(port);---新产生一个ServerSocket.
HMSHandler handler = new HMSHandler("new db based metaserver", conf);
transFactory = new TTransportFactory();
processor = new TSetIpAddressProcessor<HMSHandler>(handler); --- 处理器
---然后准备创建服务器
TThreadPoolServer.Args args = new TThreadPoolServer.Args(serverTransport).processor(processor)
.transportFactory(transFactory).protocolFactory(new TBinaryProtocol.Factory())
.minWorkerThreads(minWorkerThreads).maxWorkerThreads(maxWorkerThreads);
TServer tServer = new TThreadPoolServer(args);
HMSHandler.LOG.info("Started the new metaserver on port [" + port + "]...");
HMSHandler.LOG.info("Options.minWorkerThreads = " + minWorkerThreads);
HMSHandler.LOG.info("Options.maxWorkerThreads = " + maxWorkerThreads);
HMSHandler.LOG.info("TCP keepalive = " + tcpKeepAlive);
tServer.serve();
那么到这里,一个完整的thrift服务器就启动好了!
=============================================================================