本文整理了Java中org.apache.lens.server.api.query.QueryContext.getDriverStatus
方法的一些代码示例,展示了QueryContext.getDriverStatus
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryContext.getDriverStatus
方法的具体详情如下:
包路径:org.apache.lens.server.api.query.QueryContext
类名称:QueryContext
方法名:getDriverStatus
暂无
代码示例来源:origin: org.apache.lens/lens-server-api
public void extractFailedAttempt(LensDriver selectedDriver) {
failedAttempts.add(new FailedAttempt(selectedDriver.getFullyQualifiedName(), getDriverStatus().getProgress(),
getDriverStatus().getProgressMessage(), getDriverStatus().getErrorMessage(),
getDriverStatus().getDriverStartTime(), getDriverStatus().getDriverFinishTime()));
getDriverStatus().clear();
}
代码示例来源:origin: apache/lens
public void extractFailedAttempt(LensDriver selectedDriver) {
failedAttempts.add(new FailedAttempt(selectedDriver.getFullyQualifiedName(), getDriverStatus().getProgress(),
getDriverStatus().getProgressMessage(), getDriverStatus().getErrorMessage(),
getDriverStatus().getDriverStartTime(), getDriverStatus().getDriverFinishTime()));
getDriverStatus().clear();
}
代码示例来源:origin: org.apache.lens/lens-driver-es
@Override
public void updateStatus(QueryContext context) {
final QueryHandle queryHandle = context.getQueryHandle();
final Future<LensResultSet> lensResultSetFuture = resultSetMap.get(queryHandle);
if (lensResultSetFuture == null) {
context.getDriverStatus().setState(DriverQueryStatus.DriverQueryState.CLOSED);
context.getDriverStatus().setStatusMessage(queryHandle + " closed");
context.getDriverStatus().setResultSetAvailable(false);
} else if (lensResultSetFuture.isDone()) {
context.getDriverStatus().setState(DriverQueryStatus.DriverQueryState.SUCCESSFUL);
context.getDriverStatus().setStatusMessage(queryHandle + " successful");
context.getDriverStatus().setResultSetAvailable(true);
} else if (lensResultSetFuture.isCancelled()) {
context.getDriverStatus().setState(DriverQueryStatus.DriverQueryState.CANCELED);
context.getDriverStatus().setStatusMessage(queryHandle + " cancelled");
context.getDriverStatus().setResultSetAvailable(false);
}
}
代码示例来源:origin: apache/lens
@Override
public void updateStatus(QueryContext context) {
final QueryHandle queryHandle = context.getQueryHandle();
final Future<LensResultSet> lensResultSetFuture = resultSetMap.get(queryHandle);
if (lensResultSetFuture == null) {
context.getDriverStatus().setState(DriverQueryStatus.DriverQueryState.CLOSED);
context.getDriverStatus().setStatusMessage(queryHandle + " closed");
context.getDriverStatus().setResultSetAvailable(false);
} else if (lensResultSetFuture.isDone()) {
context.getDriverStatus().setState(DriverQueryStatus.DriverQueryState.SUCCESSFUL);
context.getDriverStatus().setStatusMessage(queryHandle + " successful");
context.getDriverStatus().setResultSetAvailable(true);
} else if (lensResultSetFuture.isCancelled()) {
context.getDriverStatus().setState(DriverQueryStatus.DriverQueryState.CANCELED);
context.getDriverStatus().setStatusMessage(queryHandle + " cancelled");
context.getDriverStatus().setResultSetAvailable(false);
}
}
代码示例来源:origin: org.apache.lens/lens-driver-hive
@Override
public void updateStatus(QueryContext context) throws LensException {
log.debug("GetStatus: {}", context.getQueryHandle());
if (context.getDriverStatus().isFinished()) {
return;
}
OperationHandle hiveHandle = getHiveHandle(context.getQueryHandle());
try {
// Get operation status from hive server
log.debug("GetStatus hiveHandle: {}", hiveHandle);
fetchLogs(hiveHandle);
updateDriverStateFromOperationStatus(hiveHandle, context.getDriverStatus());
} catch (Exception e) {
log.error("Error getting query status", e);
handleHiveServerError(context, e);
throw new LensException("Error getting query status", e);
}
}
代码示例来源:origin: apache/lens
@Override
public void updateStatus(QueryContext context) throws LensException {
log.debug("GetStatus: {}", context.getQueryHandle());
if (context.getDriverStatus().isFinished()) {
return;
}
OperationHandle hiveHandle = getHiveHandle(context.getQueryHandle());
try {
// Get operation status from hive server
log.debug("GetStatus hiveHandle: {}", hiveHandle);
fetchLogs(hiveHandle);
updateDriverStateFromOperationStatus(hiveHandle, context.getDriverStatus());
} catch (Exception e) {
log.error("Error getting query status", e);
handleHiveServerError(context, e);
throw new LensException("Error getting query status", e);
}
}
代码示例来源:origin: apache/lens
@Override
public void updateStatus(QueryContext context) throws LensException {
if (context.getFailedAttempts().size() < numRetries) {
String errorMessage = getDriverProperty(context, "error.message");
if (errorMessage == null) {
errorMessage = "Simulated Failure";
}
context.getDriverStatus().setState(DriverQueryStatus.DriverQueryState.FAILED);
context.getDriverStatus().setErrorMessage(errorMessage);
} else {
context.getDriverStatus().setState(DriverQueryStatus.DriverQueryState.SUCCESSFUL);
}
context.getDriverStatus().setDriverFinishTime(System.currentTimeMillis());
}
代码示例来源:origin: apache/lens
@Override
public void executeAsync(QueryContext context) throws LensException {
super.executeAsync(context);
context.getDriverStatus().setDriverStartTime(System.currentTimeMillis());
}
代码示例来源:origin: apache/lens
/**
* Wait for async query.
*
* @param ctx the ctx
* @param driver the driver
* @throws Exception the exception
*/
private void waitForAsyncQuery(QueryContext ctx, HiveDriver driver) throws Exception {
while (true) {
driver.updateStatus(ctx);
System.out.println("#W Waiting for query " + ctx.getQueryHandle() + " status: "
+ ctx.getDriverStatus().getState());
assertNotNull(ctx.getDriverStatus());
if (ctx.getDriverStatus().isFinished()) {
assertTrue(ctx.getDriverStatus().getDriverFinishTime() > 0);
break;
}
System.out.println("Progress:" + ctx.getDriverStatus().getProgressMessage());
Thread.sleep(1000);
assertTrue(ctx.getDriverStatus().getDriverStartTime() > 0);
}
}
代码示例来源:origin: apache/lens
private BackOffRetryHandler<QueryContext> getDriverRetryPolicy(QueryContext ctx) {
if (ctx.getDriverRetryPolicy() == null) {
String errorMessage = ctx.getDriverStatus().getErrorMessage() != null ? ctx.getDriverStatus().getErrorMessage()
: ctx.getStatus().getErrorMessage();
ctx.setDriverRetryPolicy(ctx.getSelectedDriver().getRetryPolicyDecider()
.decidePolicy(errorMessage));
}
return ctx.getDriverRetryPolicy();
}
代码示例来源:origin: org.apache.lens/lens-server-api
/**
* Default implementation for fetchResultSet for all drivers. Should hold good in most cases.
* Note : If a driver is sticking to this default implementation, it should
* override {@link #createResultSet(QueryContext)}
*/
@Override
public LensResultSet fetchResultSet(QueryContext ctx) throws LensException {
log.info("FetchResultSet: {}", ctx.getQueryHandle());
if (!ctx.getDriverStatus().isSuccessful()) {
throw new LensException("Can't fetch results for a " + ctx.getQueryHandleString() + " because it's status is "
+ ctx.getStatus());
}
ctx.registerDriverResult(createResultSet(ctx)); // registerDriverResult makes sure registration happens ony once
return ctx.getDriverResult();
}
代码示例来源:origin: apache/lens
/**
* Default implementation for fetchResultSet for all drivers. Should hold good in most cases.
* Note : If a driver is sticking to this default implementation, it should
* override {@link #createResultSet(QueryContext)}
*/
@Override
public LensResultSet fetchResultSet(QueryContext ctx) throws LensException {
log.info("FetchResultSet: {}", ctx.getQueryHandle());
if (!ctx.getDriverStatus().isSuccessful()) {
throw new LensException("Can't fetch results for a " + ctx.getQueryHandleString() + " because it's status is "
+ ctx.getStatus());
}
ctx.registerDriverResult(createResultSet(ctx)); // registerDriverResult makes sure registration happens ony once
return ctx.getDriverResult();
}
代码示例来源:origin: apache/lens
@Override
public void run() {
SessionState.setCurrentSessionState(state);
for (int i = 0; i < 1000; i++) {
try {
thrDriver.updateStatus(qctx);
if (qctx.getDriverStatus().isFinished()) {
log.info("@@ " + handle.getHandleId() + " >> " + qctx.getDriverStatus().getState());
break;
}
Thread.sleep(POLL_DELAY);
} catch (LensException e) {
log.error("Got Exception " + e.getCause(), e);
errCount.incrementAndGet();
break;
} catch (InterruptedException e) {
log.error("Encountred Interrupted exception", e);
break;
}
}
}
});
代码示例来源:origin: apache/lens
/**
* Test cancel query.
*
* @throws Exception the exception
*/
@Test(dataProvider = "waitBeforeCancel")
public void testCancelQuery(boolean waitBeforeCancel) throws Exception {
setupCancelQuery();
// picked function as positive with udf mapping to sleep - sothat the signature of both are same.
// Here we need a UDF mapping because the function sleep is not available in Hive functions and semantic analysis
// would fail otherwise.
final String query = "SELECT positive(5) FROM cancel_query_test";
QueryContext context = createQueryContext(query);
System.out.println("@@@ test_cancel:" + context.getQueryHandle());
executeAsync(context);
QueryHandle handle = context.getQueryHandle();
// without wait query may not be launched.
if (waitBeforeCancel) {
Thread.sleep(1000);
}
boolean isCancelled = driver.cancelQuery(handle);
driver.updateStatus(context);
assertTrue(isCancelled);
assertEquals(context.getDriverStatus().getState(), DriverQueryState.CANCELED);
assertTrue(context.getDriverStatus().getDriverStartTime() > 0);
assertTrue(context.getDriverStatus().getDriverFinishTime() > 0);
driver.closeQuery(handle);
}
代码示例来源:origin: apache/lens
@Test
public void testSingleRetrySameDriver() throws LensException, InterruptedException {
QueryHandle handle = getQueryService().executeAsync(session, "select 1",
getLensConf("driver.retry/single_failure.cost", "1", "driver.retry/double_failure.cost", "2"),
"random query");
QueryContext ctx = getQueryService().getQueryContext(handle);
while (!ctx.getStatus().finished()) {
ctx = getQueryService().getQueryContext(handle);
Thread.sleep(1000);
}
assertEquals(ctx.getFailedAttempts().size(), 1);
FailedAttempt failedAttempt = ctx.getFailedAttempts().get(0);
assertEquals(failedAttempt.getDriverName(), "retry/single_failure");
assertEquals(ctx.getSelectedDriver().getFullyQualifiedName(), "retry/single_failure");
assertTrue(failedAttempt.getDriverFinishTime() > failedAttempt.getDriverStartTime());
assertTrue(ctx.getDriverStatus().getDriverStartTime() > failedAttempt.getDriverFinishTime());
}
代码示例来源:origin: apache/lens
@Test
public void testDelayedLaunch() throws LensException, InterruptedException {
QueryHandle handle = getQueryService().executeAsync(session, "select 1",
getLensConf("driver.retry/double_failure.cost", "1",
"driver.retry/double_failure.error.message", "fibonacci.500"),
"random query");
QueryContext ctx = getQueryService().getQueryContext(handle);
while (!ctx.getStatus().finished()) {
ctx = getQueryService().getQueryContext(handle);
Thread.sleep(1000);
}
assertTrue(ctx.getStatus().successful());
assertEquals(ctx.getFailedAttempts().size(), 2);
FailedAttempt attempt1 = ctx.getFailedAttempts().get(0);
FailedAttempt attempt2 = ctx.getFailedAttempts().get(1);
assertTrue(attempt2.getDriverStartTime() - attempt1.getDriverFinishTime() >= 500);
assertTrue(ctx.getDriverStatus().getDriverStartTime() - attempt2.getDriverFinishTime() >= 1000);
}
代码示例来源:origin: apache/lens
/**
* Test cancel async query.
*
* @throws Exception the exception
*/
@Test
public void testCancelAsyncQuery() throws Exception {
int handleSize = getHandleSize();
createTestTable("test_cancel_async");
queryConf.setBoolean(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, false);
QueryContext context = createContext("select a.id aid, b.id bid from "
+ "((SELECT ID FROM test_cancel_async) a full outer join (select id from test_cancel_async) b)",
queryConf);
driver.executeAsync(context);
driver.cancelQuery(context.getQueryHandle());
driver.updateStatus(context);
assertEquals(context.getDriverStatus().getState(), DriverQueryState.CANCELED, "Expecting query to be cancelled");
driver.closeQuery(context.getQueryHandle());
assertHandleSize(handleSize);
try {
driver.cancelQuery(context.getQueryHandle());
fail("Cancel on closed query should throw error");
} catch (LensException exc) {
assertTrue(exc.getMessage().startsWith("Query not found"));
}
}
代码示例来源:origin: apache/lens
@Test
public void testRestartWhileRetry() throws LensException, InterruptedException {
QueryHandle handle = getQueryService().executeAsync(session, "select 1",
getLensConf("driver.retry/double_failure.cost", "1",
"driver.retry/double_failure.error.message", "fibonacci.5000"),
"random query");
QueryContext ctx = getQueryService().getQueryContext(handle);
while (ctx.getFailedAttempts().size() == 0) {
ctx = getQueryService().getQueryContext(handle);
Thread.sleep(1000);
}
restartLensServer(getServerConf(), false);
ctx = getQueryService().getQueryContext(handle);
while (!ctx.getStatus().finished()) {
ctx = getQueryService().getQueryContext(handle);
Thread.sleep(1000);
}
assertTrue(ctx.getStatus().successful());
assertEquals(ctx.getFailedAttempts().size(), 2);
FailedAttempt attempt1 = ctx.getFailedAttempts().get(0);
FailedAttempt attempt2 = ctx.getFailedAttempts().get(1);
assertTrue(attempt2.getDriverStartTime() - attempt1.getDriverFinishTime() >= 5000);
assertTrue(ctx.getDriverStatus().getDriverStartTime() - attempt2.getDriverFinishTime() >= 10000);
}
}
代码示例来源:origin: org.apache.lens/lens-server-api
public QueryContext toQueryContext(Configuration conf, Collection<LensDriver> drivers) {
if (null == selectedDriver && null != driverName) {
selectedDriver = getDriverFromName(drivers);
}
QueryContext qctx =
new QueryContext(userQuery, submitter, this.conf, conf, drivers, selectedDriver, submissionTime,
false);
qctx.setQueryHandle(QueryHandle.fromString(handle));
qctx.setLaunchTime(this.startTime);
qctx.setEndTime(getEndTime());
qctx.setStatusSkippingTransitionTest(new QueryStatus(0.0, null, QueryStatus.Status.valueOf(getStatus()),
null, getResult() != null, null, getErrorMessage() == null ? "" : getErrorMessage(), null));
qctx.getDriverStatus().setDriverStartTime(getDriverStartTime());
qctx.getDriverStatus().setDriverFinishTime(getDriverEndTime());
qctx.setResultSetPath(getResult());
qctx.setQueryName(getQueryName());
if (null != driverQuery){
qctx.setSelectedDriverQuery(driverQuery);
}
if (getPriority() != null) {
qctx.setPriority(Priority.valueOf(getPriority()));
}
qctx.setFailedAttempts(getFailedAttempts());
return qctx;
}
代码示例来源:origin: apache/lens
public QueryContext toQueryContext(Configuration conf, Collection<LensDriver> drivers) {
if (null == selectedDriver && null != driverName) {
selectedDriver = getDriverFromName(drivers);
}
QueryContext qctx =
new QueryContext(userQuery, submitter, this.conf, conf, drivers, selectedDriver, submissionTime,
false);
qctx.setQueryHandle(QueryHandle.fromString(handle));
qctx.setLaunchTime(this.startTime);
qctx.setEndTime(getEndTime());
qctx.setStatusSkippingTransitionTest(new QueryStatus(0.0, null, QueryStatus.Status.valueOf(getStatus()),
null, getResult() != null, null, getErrorMessage() == null ? "" : getErrorMessage(), null));
qctx.getDriverStatus().setDriverStartTime(getDriverStartTime());
qctx.getDriverStatus().setDriverFinishTime(getDriverEndTime());
qctx.setResultSetPath(getResult());
qctx.setQueryName(getQueryName());
if (null != driverQuery){
qctx.setSelectedDriverQuery(driverQuery);
}
if (getPriority() != null) {
qctx.setPriority(Priority.valueOf(getPriority()));
}
qctx.setFailedAttempts(getFailedAttempts());
return qctx;
}
内容来源于网络,如有侵权,请联系作者删除!