2016-02-25 47 views
5

Używam spark-shell i nie mogę odebrać zewnętrznej jars. Prowadzę spark w EMR.EMR iskra skorupa nie zbierając słoików

uruchomić następujące polecenie:

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

pojawia się następujący błąd:

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

Z góry dzięki.

Odpowiedz

3

Jest to ograniczenie samego Apache Spark, a nie Spark na EMR. Podczas uruchamiania Sparka w trybie wdrażania klienta (wszystkie powłoki interaktywne, takie jak spark-shell lub pyspark lub spark-submit bez --deploy-mode cluster lub --master yarn-cluster) dozwolone są tylko lokalne ścieżki słoików.

Powodem jest to, że aby Spark mógł pobrać ten zdalny słoik, musi już być uruchomiony kod Java, w którym to momencie jest za późno, aby dodać słoik do własnej ścieżki klas.

Obejście problemu polega na pobieraniu słoja lokalnie (przy użyciu interfejsu AWS S3 CLI), a następnie określ lokalną ścieżkę podczas uruchamiania iskrzenia lub wysyłania iskier.

2

Można to zrobić z linii poleceń z zapłonem Shell na polu samego EMR:

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

Można również wywołać tę komendę przy użyciu AWS Java EMR biblioteki klienta lub AWS CLI. Najważniejsze jest, aby używać: 'klaster --deploy-Mode

+0

Z jakiegoś powodu to nie działa dla mnie. Jestem na EMR-5.6.0/Spark-2.1.1. Na jakiej wersji EMR/Spark wykonała to zadanie dla Ciebie? –

0

Gdyby sam problem, można dodać „przędza --master kasetowej --deploy-mode” args a to pozwala na zdalne wykonanie słoiki s3

+0

Nie potrzebowałem części "--master wool" – swdev