Spark Structure Streaming作业在集群模式下失败

时间:2020-02-24 16:33:52

标签: apache-spark hadoop apache-spark-sql

我在应用程序中使用spark-sql-2.4.1 v。

在将数据写入hdfs文件夹时,我在spark-streaming应用程序中遇到此问题

错误:

    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文件夹时,我在spark-streaming应用程序中遇到此问题。当我以纱线群集模式运行时,即会遇到此问题。

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

但是当我在“ yarn-client”模式下运行时,即可以正常运行。

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

此问题的根本原因是什么?

这里的基本问题是,为什么要尝试用“ /tmp/hadoop-admin/”而不是相应的用户目录即hdfs://qa2/user/xyz/来写?

我遇到了此修复程序:

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

如何在我的spark-sql应用程序中实现它?

1 个答案:

答案 0 :(得分:1)

--deploy-mode client和失败的--deploy-mode cluster情况之间唯一的区别是驱动程序的位置。在客户端部署模式下,驱动程序在您执行的spark-submit机器上运行(通常是配置为使用YARN群集的边缘节点,但它不是其中的一部分),而在群集部署模式下,驱动程序运行作为YARN群集的一部分(受YARN控制的节点之一)。

您似乎配置了错误的边缘节点。


如果常规的仅基于Spark SQL的Spark应用程序也会失败,我也不会感到惊讶。听说它与流查询(火花结构化流)无关,并且对于任何Spark应用程序都将失败,我不会感到惊讶。

相关问题