2014-02-25 27 views
1

我需要將-Djava.awt.headless=true添加到所有Hadoop的Java進程。否則,該進程因嘗試訪問窗口服務器而中止。Hadoop - 在哪裏放置全局Java標誌

我試過無處不在並且找不到應該應用這些標誌的位置。我已經設法讓它在大多數基礎過程中運行,但有一個過程正在逃避我。該過程是MRAppMaster

無論我做什麼,MRAppMaster運行沒有無頭的標誌。據我所知,這些文件儘管可怕,但對此無話可說。

如果有一個位置可以應用此標誌,我將不勝感激。我在Mac OS 10.9上運行Hadoop 2.2.0。

+0

您的意思是在MR作業的mapper或reducer進程之間共享一些標誌嗎? –

+0

@AnkurShanbhag我的意思是確保標誌設置在他們需要的地方。對於調試過程中的下一個_step_,我需要爲MRAppMaster設置標誌。但是如果我能設置全局標誌,它將確保我不必擔心錯過一個進程。如果我這樣做,Java窗口服務器錯誤會導致它在任何時候嘗試啓動沒有該標誌的任何內容時失敗。 –

+0

咦? Hadoop和Swing/AWT? – Chiron

回答

2

MRAppMaster是針對YARN的。無論如何,您可以通過名爲yarn.app.mapreduce.am.command-opts的屬性將java opts傳遞給應用程序主控。您可以在映射縮減配置文件mapred-site.xml(和而不是yarn-site.xml,可以猜測)中設置它。

here

yarn.app.mapreduce.am.command-OPTS

Java的選擇採用的MR應用程序主進程。

+0

謝謝!如果只有一些體面的文件...... :( –