org.apache.lens.server.api.query.QueryContext.getDriverStatus()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(15.1k)|赞(0)|评价(0)|浏览(110)

本文整理了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

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;
}

相关文章

微信公众号

最新文章

更多