hi all,
I’ve a request for adding some action when thrift to hiveserver2 and before
call ExcuteStatement, for example, execute some other hql before hqls from
python thrift client executed. My solution is modifying the
ThriftCLIService.java,
public TExecuteStatementResp ExecuteStatement(TExecuteStatementReq req) throws
TException{}
However, when I modified this function and build the code, nothing happened!
shortly, I add two log records for test, as code below.
public TExecuteStatementResp ExecuteStatement(TExecuteStatementReq req)
throws TException {
LOG.warn("WARN #################");
LOG.info(“INFO #################");
TExecuteStatementResp resp = new TExecuteStatementResp();
try {
SessionHandle sessionHandle = new SessionHandle(req.getSessionHandle());
String statement = req.getStatement();
Map<String, String> confOverlay = req.getConfOverlay();
Boolean runAsync = req.isRunAsync();
OperationHandle operationHandle = runAsync ?
cliService.executeStatementAsync(sessionHandle, statement,
confOverlay)
: cliService.executeStatement(sessionHandle, statement, confOverlay);
resp.setOperationHandle(operationHandle.toTOperationHandle());
resp.setStatus(OK_STATUS);
} catch (Exception e) {
LOG.warn("Error executing statement: ", e);
resp.setStatus(HiveSQLException.toTStatus(e));
}
return resp;
}
After that, I build the package, then start the server as “ bin/hive —service
hiveserver2 —hiveconf hive.root.logger=INFO,console”. As far here, everything
is ok.
Then I call python client send sql to execute, I get the result correctly, but
never the log record print!
I want to know why?
Somebody give me out? Thanks a lot
祝好!
- 刘宗全
[email protected]