导入org.apache.hadoop.hive.common.auth.HiveAuthUtils;导入org.apache.hive.service.rpc.thrift.TCLIService;导入org.apache.thrift.protocol.TBinaryProtocol;导入org.apache.thrift.server。TThreadPoolServer;importorg.apache.thrift.transport.*;importjava.util.concurrent.TimeUnit;publicclassMyHiveServer{publicstaticvoidmain(String[]args)throwsException{//PlainSaslHelper.getPlainTransportFactory//TSASlServerTransport.FactorysaslFactory复制代码=newTSAslServerTransport.Factory();////saslFactory.addServerDefinition("PLAIN","CUSTOM",null,newHashMap(),newPlainSaslHelper.PlainServerCallbackHandler("CUSTOM"))//源码HiveAuthFactory第160行try{System.out.println("服务端启动");//transportFactory=newTTransportFactory();TCLIService.Processorprocessor=newTCLIService.Processor<>(newServiceFaceImpl());TServerSocketserverSocket=HiveAuthUtils.getServerSocket("127.0.0.1",10000);TThreadPoolServer.Argssargs=newTThreadPoolServer.Args(serverSocket).processor(processor).transportFactory(newTTransportFactory()).protocolFactory(newTBinaryProtocol.Factory()).inputProtocolFactory(newTBinaryProtocol.Factory(真,真,100*1024)*1024,100*1024*1024)).requestTimeout(100000).requestTimeoutUnit(TimeUnit.SECONDS);TThreadPoolServer服务器=newTThreadPoolServer(sargs);//TCP服务器server.serve();}catch(TTransportExceptione){e.printStackTrace();}System.out.println("服务端已启动:10000");}}publicclassServiceFaceImplimplementsTCLIService.Iface{privatestaticfinalTStatusOK_STATUS=newTStatus(TStatusCode.SUCCESS_STATUS);@OverridepublicTOpenSessionRespOpenSession(TOpenSessionReqreq)抛出TException{TOpenSessionRespresp=newTOpenSessionResp();TSessionHandletSessionHandle=newTSessionHandle(newHandleIdentifier().toTHandleIdentifier());resp.setSessionHandle(tSessionHandle);System.out.println("OpenSession");HashMapconfigurationMap=newHashMap<>();configurationMap.put("","");resp.setConfiguration(configurationMap);//resp.setServerProtocolVersion(TProtocolVersion.HIVE_CLI_SERVICE_PROTOCOL_V9);resp.setStatus(OK_STATUS);返回响应;}@OverridepublicTCloseSessionRespCloseSession(TCloseSessionReqreq)抛出TException{System.out.println("CloseSession");返回空值;}@OverridepublicTGetInfoRespGetInfo(TGetInfoReqreq)throwsTException{System.out.println("GetInfo");返回空值;}@OverridepublicTExecuteStatementRespExecuteStatement(TExecuteStatementReqreq)抛出TException{Stringstatement=req.getStatement();System.out.println(语句);System.out.println("执行语句");返回空值;}@OverridepublicTGetTypeInfoRespGetTypeInfo(TGetTypeInfoReqreq)throwsTException{returnnull;}@OverridepublicTGetCatalogsRespGetCatalogs(TGetCatalogsReqreq)throwsTException{returnnull;}@OverridepublicTGetSchemasRespGetSchemas(TGetSchemasReqreq)throwsTException{returnnull;}@OverridepublicTGetTablesRespGetTables(TGetTablesReqreq)throwsTException{returnnull;}@OverridepublicTGetTableTypesRespGetTableTypes(TGetTableTypesReqreq)throwsTException{returnnull;}@OverridepublicTGetColumnsRespGetColumns(TGetColumnsReqreq)抛出sTException{返回空值;}@OverridepublicTGetFunctionsRespGetFunctions(TGetFunctionsReqreq)throwsTException{returnnull;}@OverridepublicTGetPrimaryKeysRespGetPrimaryKeys(TGetPrimaryKeysReqreq)throwsTException{returnnull;}@OverridepublicTGetCrossReferenceRespGetCrossReference(TGetCrossReferenceReqreq)抛出TException{returnnull;}@OverridepublicTGetOperationStatusRespGetOperationStatus(TGetOperationStatusReqreq)throwsTException{returnnull;}@OverridepublicTCancelOperationRespCancelOperation(TCancelOperationReqreq)throwsTException{returnnull;}@OverridepublicTCloseOperationRespCloseOperation(TCloseOperationReqreq)throwsTException{returnnull;}@OverridepublicTGetResultSetMetadataRespGetResultSetMetadata(TGetResultSetMetadataReqreq)throwsTException{returnnull;}@OverridepublicTFetchResultsRespFetchResults(TFetchResultsReqreq)抛出TException{returnnull;}@OverridepublicTGetDelegationTokenRespGetDelegationToken(TGetDelegationTokenReqreq)抛出TException{returnnull;}@OverridepublicTCancelDelegationTokenRespCancelDelegationToken(TCancelDelegationTokenReqreq)抛出TException{returnnull;}@OverridepublicTRenewDelegationTokenRespRenewDelegationToken(TRenewDelegationTokenReqreq)抛出TException{returnnull;}}