Сбой задания потоковой структуры Spark в режиме кластера - PullRequest
0 голосов
/ 24 февраля 2020

Я использую spark- sql -2.4.1 v в своем приложении.

При записи данных в папку hdfs я сталкиваюсь с этой проблемой в приложении потокового воспроизведения

Ошибка:

    yarn.Client: Deleted staging directory hdfs://dev/user/xyz/.sparkStaging/application_1575699597805_47
    20/02/24 14:02:15 ERROR yarn.Client: Application diagnostics message: User class threw exception: org.apache.hadoop.security.AccessControlException: Permission denied: user= xyz, access=WRITE, inode="/tmp/hadoop-admin":admin:supergroup:drwxr-xr-x
    .
    .
    .
    Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=xyz, access=WRITE, inode="/tmp/hadoop-admin":admin:supergroup:drwxr-xr-x
            at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:350)
            at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:251)

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

    --master yarn \
    --deploy-mode cluster \

Но когда я запускаю в режиме «клиент-пряжа», он работает нормально, то есть

    --master yarn \
    --deploy-mode client \

Кто-нибудь сталкивался с этой ошибкой и знает, каков root -сцена этой проблемы?

Основной вопрос здесь, почему он пытается записать в "/tmp/hadoop-admin/" вместо соответствующего пользовательского каталога, например, hdfs://qa2/user/xyz/ ??

Я наткнулся на это исправление

https://issues.apache.org/jira/browse/SPARK-26825

Но не уверен, как реализовать это в моем приложении spark- sql. Любая помощь высоко ценится.

1 Ответ

1 голос
/ 25 февраля 2020

Единственная разница между рабочим --deploy-mode client и неисправным --deploy-mode cluster делами - это местоположение драйвера. В режиме развертывания клиента драйвер запускается на компьютере, который вы запускаете spark-submit (который обычно является пограничным узлом, настроенным на использование кластера YARN, но не является его частью), в то время как в режиме развертывания кластера драйвер работает как часть кластера YARN (один из узлов под управлением YARN).

Похоже, что у вас неправильно настроен краевой узел.


Я не удивлюсь, если обычное Spark SQL -только приложение Spark тоже будет сбоить. Я не удивлюсь, узнав, что он не имеет ничего общего с потоковым запросом (Spark Structured Streaming) и завершится ошибкой для любого приложения Spark.

...