2012-07-13 88 views
0

系统管理员可以将某些属性定义为final,以便客户端守护程序不会覆盖它们。使用System.setProperty覆盖Hadoop最终属性()

但是使用System.setProperty()方法设置的属性优先于那些使用Hadoop配置API设置的属性,在这种情况下,客户端守护程序通过调用System.setProperty()来设置最终属性是不可能的?

谢谢。

回答

2

请注意,虽然配置属性可以在系统属性来定义, 除非系统属性是使用配置属性重新定义,也无法通过配置API访问

内部,Hadoop的系统将访问配置属性只能通过配置界面。如果用户无法通过配置界面修改配置属性(并且如果该属性被管理员定义为最终属性,他将无法使用),系统将不会看到用户在系统属性中所做的修改

+0

谢谢为答案。这是否意味着在使用配置API将系统属性作为Hadoop属性进行合并时,它会检测到由客户端守护程序和闪存错误重新设置的最终属性? – abhinavkulkarni 2012-07-13 21:09:35

+1

我认为它会忽略系统的属性。只有在conf对象中重新定义的系统属性才会对系统可见。如果在conf对象中设置的配置属性重新设置现有系统属性,那么它将是可见的,否则它不会。用户可以使用System.setProperty()修改任意数量的属性,它们只会在hadoop框架中不可见,因为它们不是通过conf obj设置的。 – Razvan 2012-07-13 21:13:28