2016-02-25 47 views
5

,我無法拿起外部jars。我在EMR中運行sparkEMR火花外殼不撿我使用<code>spark-shell</code>罐子

我運行下面的命令:

spark-shell --jars s3://play/emr/release/1.0/code.jar 

我得到以下錯誤:

OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0 Warning: Skip remote jar s3://play/emr/release/1.0/code.jar

在此先感謝。

回答

3

這是Apache的火花本身的限制,對EMR沒有特別的火花。當運行在客戶端部署模式火花(所有交互shell像spark-shellpyspark,或​​沒有--deploy-mode cluster--master yarn-cluster),只有本地的jar路徑是允許的。

這樣做的原因是,爲了使星火下載這個遠程罐子,它必須已經在運行的Java代碼,此時爲時已晚的jar添加到自己的類路徑。

解決方法是將本地下載JAR(使用AWS S3 CLI),然後運行火花外殼時指定的本地路徑或火花提交。

2

您可以在EMR盒本身火花shell命令行做到這一點:

spark-submit --verbose --deploy-mode cluster --class com.your.package.and.Class s3://bucket/path/to/thejar.jar 10

您也可以撥打使用AWS的Java EMR客戶端庫或AWS CLI命令。關鍵是要使用:「--deploy模式集羣」

+0

由於某種原因,這不適合我。我在EMR-5.6.0/Spark-2.1.1上。在什麼版本的EMR/Spark中爲您工作? –

0

曾有同樣的問題,你可以加上「--master紗--deploy模式集羣」指定參數和它將允許你遠程執行S3罐子

+0

我似乎不需要' - 主紗'部分 – swdev