2015-05-27 74 views
12

我無法在Scala中調用println調用錯誤日誌或消息,同時在Spark上運行作業EMRSpark在EMR上登錄?

我在哪裏可以訪問這些?

我使用script-runner.jar與參數--deploy-mode設置爲cluster--master設置爲yarn提交Spark job,寫在ScalaEMR。它運行良好。

但是我沒有看到我的println語句在Amazon EMR UI,它裏面列出「標準錯誤,標準輸出etc. Furthermore if my job errors I don't see why it had an error. All I see is this in the stderr`:

15/05/27 20:24:44 INFO yarn.Client: Application report from ResourceManager: 
application identifier: application_1432754139536_0002 
appId: 2 
clientToAMToken: null 
appDiagnostics: 
appMasterHost: ip-10-185-87-217.ec2.internal 
appQueue: default 
appMasterRpcPort: 0 
appStartTime: 1432758272973 
yarnAppState: FINISHED 
distributedFinalState: FAILED 
appTrackingUrl: http://10.150.67.62:9046/proxy/application_1432754139536_0002/A 
appUser: hadoop 

`

回答

11

使用Spark上的集羣部署模式,Spark驅動程序以及因此執行的用戶代碼將位於Application Master容器內。這聽起來像你在集羣上啓用了EMR調試,因此日誌也應該推送到S3。在S3的位置看看task-attempts/<applicationid>/<firstcontainer>/*

+0

是的,這是正確的。謝謝。對於其他用戶的知識,您可以在Amazon EMR Web UI中看到此「Log URI」,以獲取羣集信息/詳細信息。 –

0

如果用emr-bootstrap提交你的工作,你可以指定日誌目錄作爲s3存儲桶與--log-uri

+0

謝謝 - 我認爲這可能會在創建羣集時(不是在提交作業時)設置?我會在下次創建羣集時嘗試 –

6

如果SSH進入羣集的主節點,那麼你應該能夠找到stdout,stderr,syslog和d控制器日誌如下:

/mnt/var/log/hadoop/steps/<stepname>