[
https://issues.apache.org/jira/browse/HIVE-26984?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17683340#comment-17683340
]
László Bodor edited comment on HIVE-26984 at 2/2/23 11:00 AM:
--------------------------------------------------------------
hey [~kgyrtkirk], thanks for your input, 2 different aspects here:
1. after thinking about the discussion with [~zabetak] on the PR of HIVE-26984,
I decided to postpone the hiding of constructors to another patch (which should
be -1ed if we have evidence that 3rd parties rely on HiveConf constructors
heavily), so HIVE-26984 will only contain the new *create* methods, this way
I'll still have the chance to finish this one
2. regarding agents (so related to HIVE-26985): okay, I agree that agents are a
good thing (especially if it saves us from reinventing the steel), but let's
please consider the installation burden too: the agent approach already
involves some messing with an agent (custom JVM args), why wouldn't we go for a
simple setting like:
{code}
set hive.conf.property.tracking=true;
{code}
I haven't had to implement huge stuff to achieve this (look at this [single
commit|https://github.com/apache/hive/pull/4002/commits/ade1a24716dd9db03822fa7e630f9dcca33d2adf]),
so going for the agent approach looks simply ineffective: we're doing horrible
things to HiveConf, everywhere (so: locally, on cluster, on dev, on customer
side, etc.), I want to make them discoverable as easy as possible, e.g. a
scenario when tez settings don't make their way to the application master (fun
fact: this is happening nowadays), what do you feel like doing:
1. ask the customer to set the above option and rerun the query
2. introduce this agent stuff to hiveserver2 + tez, restart the world, and then
rerun the query
was (Author: abstractdog):
hey [~kgyrtkirk], thanks for your input, 2 different aspects here:
1. after thinking about the discussion with [~zabetak] on the PR of HIVE-26984,
I decided to postpone the hiding of constructors to another patch (which should
be -1ed if we have evidence that 3rd parties rely on HiveConf constructors
heavily), so HIVE-26984 will only contain the new *create* methods, this way
I'll still have the chance to finish this one
2. regarding agents (so related to HIVE-26985): okay, I agree that agents are a
good thing (especially if it saves us from reinventing the steel), but let's
please consider the installation burden too: the agent approach already
involves some messing with an agent (custom JVM args), why wouldn't we go for a
simple setting like:
{code}
set hive.conf.property.tracking=true;
{code}
I haven't had to implement huge stuff to achieve this (look at this [single
commit|https://github.com/apache/hive/pull/4002/commits/ade1a24716dd9db03822fa7e630f9dcca33d2adf],
so going for the agent approach looks simply ineffective: we're doing horrible
things to HiveConf, everywhere (so: locally, on cluster, on dev, on customer
side, etc.), I want to make them discoverable as easy as possible, e.g. a
scenario when tez settings don't make their way to the application master (fun
fact: this is happening nowadays), what do you feel like doing:
1. ask the customer to set the above option and rerun the query
2. introduce this agent stuff to hiveserver2 + tez, restart the world, and then
rerun the query
> Deprecate public HiveConf constructors
> --------------------------------------
>
> Key: HIVE-26984
> URL: https://issues.apache.org/jira/browse/HIVE-26984
> Project: Hive
> Issue Type: Improvement
> Reporter: László Bodor
> Assignee: László Bodor
> Priority: Major
> Labels: pull-request-available
> Time Spent: 1.5h
> Remaining Estimate: 0h
>
> From time to time we investigate configuration object problems that are hard
> to investigate. We can improve this area, e.g. with HIVE-26985, but first, we
> need to introduce a public static factory method to hook into the creation
> process. I can see this pattern in another projects as well, like:
> HBaseConfiguration.
> Creating custom HiveConf subclasses can be useful because putting optional
> (say: if else branches or whatever) stuff into the original HiveConf object's
> hot codepaths can turn it less performant instantly.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)