[
https://issues.apache.org/jira/browse/HIVE-25195?focusedWorklogId=606425&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-606425
]
ASF GitHub Bot logged work on HIVE-25195:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 04/Jun/21 07:32
Start Date: 04/Jun/21 07:32
Worklog Time Spent: 10m
Work Description: marton-bod commented on a change in pull request #2347:
URL: https://github.com/apache/hive/pull/2347#discussion_r645354564
##########
File path:
iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergMetaHook.java
##########
@@ -459,35 +454,35 @@ public void
rollbackInsertTable(org.apache.hadoop.hive.metastore.api.Table table
throws MetaException {
String tableName = TableIdentifier.of(table.getDbName(),
table.getTableName()).toString();
JobContext jobContext = getJobContextForCommitOrAbort(tableName,
overwrite);
- OutputCommitter committer = new HiveIcebergOutputCommitter();
- try {
- LOG.info("rollbackInsertTable: Aborting job for jobID: {} and table:
{}", jobContext.getJobID(), tableName);
- committer.abortJob(jobContext, JobStatus.State.FAILED);
- } catch (IOException e) {
- LOG.error("Error while trying to abort failed job. There might be
uncleaned data files.", e);
- // no throwing here because the original commitInsertTable exception
should be propagated
- } finally {
- // avoid config pollution with prefixed/suffixed keys
- cleanCommitConfig(tableName);
+ if (jobContext != null) {
+ OutputCommitter committer = new HiveIcebergOutputCommitter();
+ try {
+ LOG.info("rollbackInsertTable: Aborting job for jobID: {} and table:
{}", jobContext.getJobID(), tableName);
+ committer.abortJob(jobContext, JobStatus.State.FAILED);
+ } catch (IOException e) {
+ LOG.error("Error while trying to abort failed job. There might be
uncleaned data files.", e);
+ // no throwing here because the original commitInsertTable exception
should be propagated
+ }
}
}
- private void cleanCommitConfig(String tableName) {
- conf.unset(TezTask.HIVE_TEZ_COMMIT_JOB_ID_PREFIX + tableName);
- conf.unset(TezTask.HIVE_TEZ_COMMIT_TASK_COUNT_PREFIX + tableName);
- conf.unset(InputFormatConfig.SERIALIZED_TABLE_PREFIX + tableName);
- conf.unset(InputFormatConfig.OUTPUT_TABLES);
- }
-
private JobContext getJobContextForCommitOrAbort(String tableName, boolean
overwrite) {
Review comment:
Done
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 606425)
Time Spent: 1h 40m (was: 1.5h)
> Store Iceberg write commit and ctas information in QueryState
> --------------------------------------------------------------
>
> Key: HIVE-25195
> URL: https://issues.apache.org/jira/browse/HIVE-25195
> Project: Hive
> Issue Type: Improvement
> Reporter: Marton Bod
> Assignee: Marton Bod
> Priority: Major
> Labels: pull-request-available
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> We should replace the current method of passing Iceberg write commit-related
> information (jobID, task num) and CTAS info via the session conf using
> prefixed keys. We have a new way of doing that more cleanly, using the
> QueryState object. This should make the code easier to maintain and guard
> against accidental session conf pollution.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)