[ 
https://issues.apache.org/jira/browse/HIVE-26984?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17683368#comment-17683368
 ] 

László Bodor edited comment on HIVE-26984 at 2/2/23 11:54 AM:
--------------------------------------------------------------

okay, I think I understand your point

regarding the comfort and probability of conf issues (how often would I need 
this): yeah, I'm indeed after comfort: just as we speak I can tell 2 different 
code paths where some hive props behave unexpectedly causing a huge headache 
for me (one is a tez vertex manager setting, another is "tez.queue.name" 
cleared somewhere in the code...okay we already found maybe why the latter was, 
but the story is the same: it caused a headache
I've already faced a similar problem while investigating the absence of hbase 
related properties somewhere in the code, so 3 different issues from the last 
couple of months, instantly

chicken-egg problem: you're right, it's possible theoretically if you change 
the property to *true* on the fly...so worst case, we might end up setting this 
property on cluster level (brute force, involves hiveserver2 restart) it's not 
optimal, I know, let me think about this: what about trying this out on a 
cluster, and putting a temporary log message to the original set HiveConf 
methods: if I can see the usage of original HiveConf  methods after setting 
this prop to *true*, the chicken-egg problem just happened, and I can 
investigate it, is it acceptable in case of this solution?

"when someone just wrote `new HiveConf()`..." <<- that's what @Deprecated is 
for, sometimes it's a common need to hide object creation details

" as about passing&launching the agent: I'm not sure - but maybe the agent can 
be placed inside say hive-exec or something; and then tweak the tez launch 
params (from inside HS2) to add the -agent to the launch cmdline.... ; probably 
similar for the HS2 startup...but that should be done somewhere in the 
scripts..." <<- with all due respect, as far as I understand, here you're still 
trying to convince me this is better than using a single hive setting (again, 
comfort, I'm lazy I know)
so answering the question of whether I explored these paths? not yet, and don't 
want to seem ignorant regarding your idea of the agents, let me think about it 
also



was (Author: abstractdog):
okay, I think I understand your point

regarding the comfort and probability of conf issues (how often would I need 
this): yeah, I'm indeed after comfort: just as we speak I can tell 2 different 
code paths where some hive props behave unexpectedly causing a huge headache 
for me (one is a tez vertex manager setting, another is "tez.queue.name" 
cleared somewhere in the code...okay we already found maybe why the latter was, 
but the story is the same: it caused a headache
I've already faced a similar problem while investigating the absence of hbase 
related properties somewhere in the code, so 3 different issues from the last 
couple of months, instantly

chicken-egg problem: you're right, it's possible theoretically if you change 
the property to *true* on the fly...so worst case, we might end up setting this 
property on cluster level (brute force, involves hiveserver2 restart) it's not 
optimal, I know, let me think about this: what about trying this out on a 
cluster, and putting a temporary log message to the original set HiveConf 
methods: if I can see the usage of original HiveConf  methods after setting 
this prop to *true*, the chicken-egg problem just happened, and I can 
investigate it, is it acceptable in case of this solution?

"when someone just wrote `new HiveConf()`..." <-- that's what @Deprecated is 
for, sometimes it's a common need to hide object creation details

" as about passing&launching the agent: I'm not sure - but maybe the agent can 
be placed inside say hive-exec or something; and then tweak the tez launch 
params (from inside HS2) to add the -agent to the launch cmdline.... ; probably 
similar for the HS2 startup...but that should be done somewhere in the 
scripts..." <-- with all due respect, as far as I understand, here you're still 
trying to convince me this is better than using a single hive setting (again, 
comfort, I'm lazy I know)
so answering the question of whether I explored these paths? not yet, and don't 
want to seem ignorant regarding your idea of the agents, let me think about it 
also


> 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)

Reply via email to