Thomas Poepping created HIVE-22928:
--------------------------------------
Summary: Allow hive.exec.stagingdir to be a fully qualified
directory name
Key: HIVE-22928
URL: https://issues.apache.org/jira/browse/HIVE-22928
Project: Hive
Issue Type: Improvement
Components: Configuration, Hive
Affects Versions: 3.1.2
Reporter: Thomas Poepping
Assignee: Thomas Poepping
Currently, {{hive.exec.stagingdir}} can only be set as a relative directory
name that, for operations like {{insert}} or {{insert overwrite}}, will be
placed either under the table directory or the partition directory.
For cases where an HDFS cluster is small but the data being inserted is very
large (greater than the capacity of the HDFS cluster, as mentioned in a comment
by [~ashutoshc] on [HIVE-14270]), the client may want to set their staging
directory to be an explicit blobstore path (or any filesystem path), rather
than relying on Hive to intelligently build the blobstore path based on an
interpretation of the job. We may lose locality guarantees, but because renames
are just as expensive on blobstores no matter what the prefix is, this isn't
considered a terribly large loss (assuming only blobstore customers use this
functionality).
Note that {{hive.blobstore.use.blobstore.as.scratchdir}} doesn't actually
suffice in this case, as the stagingdir is not the same.
This commit enables Hive customers to set an absolute location for all staging
directories. For instances where the configured stagingdir scheme is not the
same as the scheme for the table location, the default stagingdir configuration
is used. This avoids a cross-filesystem rename, which is impossible anyway.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)