Пример Spark создает исключение FileNotFoundException в режиме клиента - PullRequest
0 голосов
/ 14 марта 2019

У меня есть: Ubuntu 14.04, Hadoop 2.7.7, Spark 2.2.0.

Я только что установил все.

Когда я пытаюсь запустить пример Spark:

bin/spark-submit --deploy-mode client \
               --class org.apache.spark.examples.SparkPi \
               examples/jars/spark-examples_2.11-2.2.0.jar 10

Я получаю следующую ошибку:

INFO yarn.Client: клиентский токен: Н / Д Диагностика: Приложение application_1552490646290_0007 не удалось 2 раза из-за AM-контейнера для appattempt_1552490646290_0007_000002, завершенного с exitCode: -1000Для получения более подробной информации, проверьте страницу отслеживания приложения: http://ip -123-45-67-89: 8088 / cluster / app / application_1552490646290_0007 Затем нажмите на ссылки в журналах каждой попытки.Диагностика: Файловый файл: / tmp / spark-f5879f52-6777-481a-8ecf-bbb55e376901 / __ spark_libs__6948713644593068670.zip не существует java.io.FileNotFoundException: Файловый файл: / tmp / spark-f5879f52-6be6969-486948__spark_libs__6948713644593068670.zip не существует

 at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:611)
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:824)
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:601)
        at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:428)
        at org.apache.hadoop.yarn.util.FSDownload.copy(FSDownload.java:253)
        at org.apache.hadoop.yarn.util.FSDownload.access$000(FSDownload.java:63)
        at org.apache.hadoop.yarn.util.FSDownload$2.run(FSDownload.java:361)
        at org.apache.hadoop.yarn.util.FSDownload$2.run(FSDownload.java:359)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:421)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1762)
        at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:358)
        at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:62)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:473)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
        at java.lang.Thread.run(Thread.java:748)

Я получаю одинаковую ошибку как в режиме клиента, так и в режиме кластера.

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Во-первых, путь к прилагаемому jar-файлу, включая ваше приложение и все зависимости.URL должен быть глобально видимым внутри вашего кластера, например, путь hdfs: // или путь file: //, который присутствует на всех узлах.

Во-вторых, если вы работаете в режиме YARN, у вас естьнаправьте своего мастера на пряжу отправка заявок и поместите файл jar в hdfs

# Run on a YARN cluster
# Connect to a YARN cluster in client or cluster mode depending on the value 
# of --deploy-mode. The cluster location will be found based on the HADOOP_CONF_DIR 
# or YARN_CONF_DIR variable. 

export HADOOP_CONF_DIR=XXX
./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \  # can be client for client mode
hdfs://path/to/spark-examples.jar
1000
0 голосов
/ 22 марта 2019

Похоже, что это не сработало при загрузке искровых библиотек. Как указывает Даниэль, это может быть связано с вашими правами на чтение. Кроме того, это может быть связано с нехваткой дискового пространства.

Однако в нашем случае, чтобы избежать задержек при передаче мастеру и прав чтения / записи на локальном компьютере, мы помещаем spark-libs в HDFS кластера Yarn, а затем указываем их в собственности spark.yarn.archive.

jar cv0f spark-libs.jar -C $SPARK_HOME/jars/ .
export HADOOP_USER_NAME=hadoop
hadoop fs -mkdir -p /apps/spark/
hadoop fs -put -f  ${SPARK_HOME}/spark-libs.jar /apps/spark/
# spark-defaults.conf
spark.yarn.archive hdfs:///apps/spark/spark-libs.jar
...