gpt4 book ai didi

java - 为什么 UserGroupInformation 类的 setConfiguration(Configuration conf) 方法是静态的?

转载 作者:搜寻专家 更新时间:2023-10-30 21:12:18 25 4
gpt4 key购买 nike

为什么要这样设计 UserGroupInformation 类?为什么 setConfiguration(Configuration conf) UserGroupInformation 类的方法是静态的?

我的理解是,这将限制客户端每个 JVM 只能连接到 1 个集群。

我们如何从单个 JVM 同时连接到多个集群?我认为这是目前 Hadoop API 不支持的非常基本的场景。

如有任何帮助,我们将不胜感激。

最佳答案

什么是静态方法?

一般来说,将方法设为静态的主要动机是为了方便。您可以在不创建任何对象的情况下调用静态方法,只需使用它的类名。因此,如果您需要一个要通过类名直接调用的方法,请将该方法设置为静态方法。实用程序类,例如java.lang.MathStringUtils 是很好的类示例,它们使用静态方法。

什么是静态方法?

  1. 静态方法不修改对象的状态。由于对象的状态作为实例变量维护
  2. 静态方法主要对参数进行操作,几乎所有静态方法接受参数,执行一些计算并返回值。

setConfiguration 的作用是什么?

setConfiguration(配置配置) -

为 UGI 设置静态配置。特别是设置安全认证机制和组查询服务。

How can we connect to multiple clusters at the same time from single JVM? I think this is a very basic scenario currently not being supported by Hadoop API.

Ans: Hadoop API 在这里使用类似单例的设计模式。你不能这样做,因为如果你能想象到需要使用对象继承或需要为你的方法使用多态性,你绝对应该跳过静态方法并将其设为实例方法。

这里描述了一个很好的场景:Static methods are a code smell

资源链接:

  1. When to make a method static in Java
  2. Java Singleton Design Pattern Best Practices with Examples

关于java - 为什么 UserGroupInformation 类的 setConfiguration(Configuration conf) 方法是静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36845701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com