2015-08-20 3 views
0

Я новичок в Spark. Я чувствую, что мой вопрос связан с архитектурой Искры. Приложение (разработанное на Java) запускается на пряжу с использованием режима «пряжа-клиент». КомандаSpark-cluster vs Spark-клиент

./bin/spark-submit --verbose --class path.to.Class --master yarn-client --files lib.so --conf spark.yarn.jar=hdfs://master:8020/spark/spark-assembly-1.3.1-hadoop2.6.0.jar --num-executors 30 --driver-memory 512m --executor-memory 512m --executor-cores 3 myJarFile.jar

Но, если изменить режим в «пряжи кластера», я получаю эту ошибку.

Исключение в потоке "основной" org.apache.spark.SparkException: Application application_1440071752950_0001 закончил с неудавшейся статусом на org.apache.spark.deploy.yarn.Client.run (Client.scala: 841) at org.apache.spark.deploy.yarn.Client $ .main (Client.scala: 867) at org.apache.spark.deploy.yarn.Client.main (Client.scala) at sun.reflect.NativeMethodAccessorImpl. invoke0 (родной метод) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.l ang.reflect.Method.invoke (Method.java:606) at org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain (SparkSubmit.scala: 664) at org. apache.spark.deploy.SparkSubmit $ .doRunMain $ 1 (SparkSubmit.scala: 169) at org.apache.spark.deploy.SparkSubmit $ .submit (SparkSubmit.scala: 192) at org.apache.spark.deploy.SparkSubmit $ .main (SparkSubmit.scala: 111) на org.apache.spark.deploy.SparkSubmit.main (SparkSubmit.scala)

Любая помощь будет оценена много!

Большое вам спасибо!

+0

Можете ли вы предоставить код, который вы используете для создания контекста Spark? Можете ли вы обновить свой вопрос с помощью расширенного журнала вашего исключения? – Marco

+0

У меня была такая же проблема. Ожидает ли ваше приложение какой-либо файл? как файл конфигурации или любой другой файл ресурсов? – user1314742

+0

Да, есть файл, который необходим для прогонов –

ответ

3

В команде, которую вы указали, отсутствует параметр --jars.

Чтобы процитировать световой документ: «Параметр -jars позволяет работать с функцией SparkContext.addJar, если вы используете его с локальными файлами и запускаете в режиме« пряжа-кластер ».

0

Вы можете использовать только клиентский режим, когда вы отправляете исходный иск от рабочего компьютера, иначе вы должны использовать режим кластера для его отправки.

0

Я думаю, что вы должны перепроверить команду для запуска искрового задания в режиме типа пряжи. spark documentation

0

В режиме клиента пряжи, когда программа драйвера работает за пределами кластера пряжи. В режиме кластеров пряжи программа драйвера запускается в главном приложении.

1

Яркий клиент - это драйвер на вашей шлюзовой машине (откуда вы отправляете задание). Он будет запрашивать только исполнителей. Но если вы хотите запустить вид HA, тогда вы запускаете пряжи-кластер. В режиме кластера драйвер может перейти на любой узел, и таким образом пряжа позаботится.

В приведенном выше примере отсутствует параметр.

0

Здесь вы должны проверить 3 основных объекта.

  1. Проверьте, если вы создаете контекст искры внутри основного метода. Я внутри водителя.Я видел людей, создающих его за пределами основного мышления, который будет рассматриваться как глобальная переменная.

  2. Вам не нужно ссылаться на сборную банку. Он будет вызываться автоматически. Проверьте, отсутствуют ли какие-либо другие банки, которые используются в вашем приложении.

  3. В режиме клиента драйвер будет работать на одном компьютере, а исполнители будут совместно использовать ресурсы кластера. В одном из ваших ответов я увидел, что вы упомянули об этом, используя плоский файл. Проверьте, находится ли этот файл в общем каталоге в кластере. И в программе убедитесь, что вы обращаетесь к этому файлу из HDFS вместо SC.textFile («file: // ...»)