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

Naganarasimha G R commented on YARN-7757:
-----------------------------------------

{quote}bq. Does this need to be run under some privileged mode or something 
similar ? As per current impl, this script will be run as NodeManager user.
{quote}
IMO i think issues might come when system level information needs to be 
collected. So presume it might require to run as user. This we need to discuss 
more. Hope to track this discussion in another jira
{quote}bq. multi scripts for different types of attributes
{quote}
Needs more thought. As its single Admin doing this, he can ensure all the 
scripts are clubbed together. And also passing of options would be complicated 
anyway can be discussed in detail in another jira as mentioned by Weiwei.

Comments on other classes.

NodeManager:
 * ln no 171: It looks like it can create only one of the provider, either for 
labels or for attributes. I think we need to explicitly support for both.

NodeStatusUpdate:
 * Similar to above we might need to support both the labels and attributes to 
be fetched in a distributed way

AbstractNodeDescriptorsProvider
 
 * ln no 149 : verifyConfiguredScript seems to be out of place. We need to 
either move it to a util class or make it as static method and used across 
other class
 * ln no 85 serviceStart needs to capture that taskInterval needs to be set 
before the service is started to ensure that the execcutor service properly 
initialised
 * ln no 87 Lets use scheduledexecutorservice instead of timer task as its not 
consistent in changes to system clock. Also it takes care internally that if 
earlier task is already running it avoids to spawn new one


ScriptBasedNodeAttributesProvider.java
 * ln no 102 : // NODE_ATTRIBUTE:ATTRIBUTE_NAME,ATTRIBUTE_TYPE,ATTRIBUTE_VALUE. 
I think we need to follow the same pattern as [prefix/]key[:type][=value] as 
mentioned in the doc so that its in sync with the parsing of cli. And at the 
same time helps to specify the type and prefix. But given that we were deciding 
to put the prefix automatically for the distirubted labels then syntax can be 
updated and captured well in the document. May be we can take this in another 
jira as focus here is more towards refactoring


I observed on intresting thing here we are using Set<NodeAttribute> but i think 
I have not handled equals and hash properly. IMO prefix, name type should 
determine the uniqueness and value should not be included. I think i will raise 
one more jira to handle this so that 7840 is not blocked

> Refactor NodeLabelsProvider to be more generic and reusable for node 
> attributes providers
> -----------------------------------------------------------------------------------------
>
>                 Key: YARN-7757
>                 URL: https://issues.apache.org/jira/browse/YARN-7757
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: nodemanager
>            Reporter: Weiwei Yang
>            Assignee: Weiwei Yang
>            Priority: Blocker
>         Attachments: YARN-7757-YARN-3409.001.patch, 
> YARN-7757-YARN-3409.002.patch, YARN-7757-YARN-3409.003.patch, 
> YARN-7757-YARN-3409.004.patch, YARN-7757-YARN-3409.005.patch, 
> nodeLabelsProvider_refactor_class_hierarchy.pdf
>
>
> Propose to do refactor on {{NodeLabelsProvider}}, 
> {{AbstractNodeLabelsProvider}} to be more generic, so node attributes 
> providers can reuse these interface/abstract classes.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to