spark结构流作业在集群模式下失败

mcdcgff0  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(572)

我在应用程序中使用spark-sql-2.4.1v。
在将数据写入hdfs文件夹时,我在spark流应用程序中遇到了这个问题
错误:

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流应用程序中遇到了这个问题。当我在Yarn簇模式下运行时,我面临这个问题,即。

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

但是当我在“Yarn客户机”模式下运行时,它运行得很好。

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

这个问题的根本原因是什么?
根本问题是,为什么要写在 /tmp/hadoop-admin/ 而不是相应的用户目录。 hdfs://qa2/user/xyz/ ?
我遇到了这个问题:
https://issues.apache.org/jira/browse/spark-26825
如何在spark sql应用程序中实现它?

ddrv8njm

ddrv8njm1#

唯一不同的是 --deploy-mode client 以及失败 --deploy-mode cluster 箱子是司机的位置。在客户机部署模式下,驱动程序在您执行的计算机上运行 spark-submit (通常是一个边缘节点,配置为使用一个Yarn簇,但它不是它的一部分)在集群部署模式下,驱动程序作为Yarn簇的一部分(Yarn控制下的一个节点)运行。
看起来您的边缘节点配置错误。
如果常规的sparksql-only-spark应用程序也会失败,我也不会感到惊讶。听说它与流式查询(spark structured streaming)没有任何关系,对于任何spark应用程序都会失败,我不会感到惊讶。

相关问题