[ https://issues.apache.org/jira/browse/HIVE-26012?focusedWorklogId=795971&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-795971 ]
ASF GitHub Bot logged work on HIVE-26012: ----------------------------------------- Author: ASF GitHub Bot Created on: 28/Jul/22 07:48 Start Date: 28/Jul/22 07:48 Worklog Time Spent: 10m Work Description: saihemanth-cloudera commented on code in PR #3477: URL: https://github.com/apache/hive/pull/3477#discussion_r931890038 ########## standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java: ########## @@ -2361,32 +2402,36 @@ private void create_table_core(final RawStore ms, final CreateTableRequest req) firePreEvent(new PreCreateTableEvent(tbl, db, this)); - if (!TableType.VIRTUAL_VIEW.toString().equals(tbl.getTableType())) { - if (tbl.getSd().getLocation() == null - || tbl.getSd().getLocation().isEmpty()) { - tblPath = wh.getDefaultTablePath(db, tbl.getTableName() + getTableSuffix(tbl), isExternal(tbl)); - } else { - if (!isExternal(tbl) && !MetaStoreUtils.isNonNativeTable(tbl)) { - LOG.warn("Location: " + tbl.getSd().getLocation() - + " specified for non-external table:" + tbl.getTableName()); - } - tblPath = wh.getDnsPath(new Path(tbl.getSd().getLocation())); - // ignore suffix if it's already there (direct-write CTAS) - if (!tblPath.getName().matches("(.*)" + SOFT_DELETE_TABLE_PATTERN)) { - tblPath = new Path(tblPath + getTableSuffix(tbl)); + if (!skipFSWrites) { + if (!TableType.VIRTUAL_VIEW.toString().equals(tbl.getTableType())) { + if (tbl.getSd().getLocation() == null + || tbl.getSd().getLocation().isEmpty()) { + tblPath = wh.getDefaultTablePath(db, tbl.getTableName() + getTableSuffix(tbl), isExternal(tbl)); + } else { + if (!isExternal(tbl) && !MetaStoreUtils.isNonNativeTable(tbl)) { + LOG.warn("Location: " + tbl.getSd().getLocation() + + " specified for non-external table:" + tbl.getTableName()); + } + tblPath = wh.getDnsPath(new Path(tbl.getSd().getLocation())); + // ignore suffix if it's already there (direct-write CTAS) + if (!tblPath.getName().matches("(.*)" + SOFT_DELETE_TABLE_PATTERN)) { + tblPath = new Path(tblPath + getTableSuffix(tbl)); + } } + tbl.getSd().setLocation(tblPath.toString()); } - tbl.getSd().setLocation(tblPath.toString()); - } - if (tblPath != null) { - if (!wh.isDir(tblPath)) { - if (!wh.mkdirs(tblPath)) { - throw new MetaException(tblPath - + " is not a directory or unable to create one"); + if (tblPath != null) { + if (!wh.isDir(tblPath)) { + if (!wh.mkdirs(tblPath)) { + throw new MetaException(tblPath + + " is not a directory or unable to create one"); + } + madeDir = true; } - madeDir = true; } + } else { + LOG.warn("Because skipFSWrites is true, skip the creation of directories for tables."); Review Comment: Why do you want to set this log to warn? Can we leave this as Log.info? Issue Time Tracking ------------------- Worklog Id: (was: 795971) Time Spent: 0.5h (was: 20m) > HMS APIs to be enhanced for metadata replication > ------------------------------------------------ > > Key: HIVE-26012 > URL: https://issues.apache.org/jira/browse/HIVE-26012 > Project: Hive > Issue Type: Improvement > Components: Metastore > Affects Versions: 3.1.0 > Reporter: Naveen Gangam > Assignee: Hongdan Zhu > Priority: Major > Labels: pull-request-available > Attachments: HMS APIs to be enhanced for metadata replication.docx > > Time Spent: 0.5h > Remaining Estimate: 0h > > HMS currently has APIs like these that automatically create/delete the > directories on the associated DFS. > [create/drop]_database > [create/drop]_table* > [add/append/drop]_partition* > This is expected and should be this way when query processors use this APIs. > However, when tools that replicate hive metadata use this APIs on the target > cluster, creating these dirs on target side which cause the replication of > DFS-snapshots to fail. > So we if provide an option to bypass this creation of dirs, dfs replications > will be smoother. In the future we will need to restrict users that can use > these APIs. So we will have some sort of an authorization policy. -- This message was sent by Atlassian Jira (v8.20.10#820010)