2012-07-13 73 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