https://www.processon.com/view/link/63579c3c1efad425cd51bed6
密码:2xqZ
CLIService
CLIService主要封装了处理命令的逻辑,一条命令发到HiveServer2后,ThriftCLIService会委托给CLIService来处理。不同的命令会调用不同的CLIService方法。比如执行Sql就是调用CliService#executeStatementAsync()方法。
ThriftCLIService
一个Server的服务组件,它会监听指定的端口来对外提供服务,主要基于Thrift实现的rpc服务。HiveServer2在启动ThriftCLIService时,会将CLIService的实例也传给它。这样,ThriftCLIService收到请求后,就可以委托给CLIService处理了。
另外,ThriftCLIService启动时,根据hive.server2.transport.mode参数的值来决定是启动ThriftHttpCLIService还是ThriftBinaryCLIService。默认是ThriftBinaryCLIService<