Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Hadoop copyToLocalFile在纱线簇模式下失败_Apache Spark_Hadoop_Hdfs_Yarn - Fatal编程技术网

Apache spark Hadoop copyToLocalFile在纱线簇模式下失败

Apache spark Hadoop copyToLocalFile在纱线簇模式下失败,apache-spark,hadoop,hdfs,yarn,Apache Spark,Hadoop,Hdfs,Yarn,我试图从我的Spark2应用程序中使用Hadoop的copyToLocalFile函数将一个文件从HDFS复制到本地 val hadoopConf = new Configuration() val hdfs = FileSystem.get(hadoopConf) val src = new Path("/user/yxs7634/all.txt") val dest = new Path("file:///home/yxs7634/all.txt") hdfs.copy

我试图从我的Spark2应用程序中使用Hadoop的copyToLocalFile函数将一个文件从HDFS复制到本地

  val hadoopConf = new Configuration()
  val hdfs = FileSystem.get(hadoopConf)

  val src = new Path("/user/yxs7634/all.txt")
  val dest = new Path("file:///home/yxs7634/all.txt")
  hdfs.copyToLocalFile(src, dest)
当我以客户机模式提交spark应用程序时,上述代码运行良好。但是,在纱线簇模式下,它一直失败,以下例外

18/10/03 12:18:40 ERROR yarn.ApplicationMaster: User class threw exception: java.io.FileNotFoundException: /home/yxs7634/all.txt (Permission denied)

在纱线簇模式下,驱动程序也由纱线处理,选定的驱动程序节点可能不是您提交作业的节点。因此,要使此作业在纱线群集模式下工作,我认为您需要将本地文件放置在群集中的所有spark节点中。

在纱线群集模式下,驱动程序也由纱线处理,并且所选驱动程序节点可能不是您提交作业的节点。因此,要使此作业在纱线群集模式下工作,我相信您需要将本地文件放置在群集中的所有spark节点中。

在纱线模式下,spark作业通过纱线提交。 驱动程序将在另一个节点上启动

为了解决这个问题,您可以使用像HDFS这样的分布式文件系统来存储文件,然后给出绝对路径

例如:


在纱线模式下,火花作业通过纱线提交。 驱动程序将在另一个节点上启动

为了解决这个问题,您可以使用像HDFS这样的分布式文件系统来存储文件,然后给出绝对路径

例如:


您有一个权限被拒绝的错误,我的意思是,您用来提交作业的用户无法访问该文件。目录应该至少对用户“other”具有读取权限,类似这样:
-rw-rw-r--

你能粘贴目录和文件的权限吗?命令是

hdfs dfs -ls /your-directory/

您有一个权限被拒绝的错误,我的意思是,您用来提交作业的用户无法访问该文件。目录应该至少对用户“other”具有读取权限,类似这样:
-rw-rw-r--

你能粘贴目录和文件的权限吗?命令是

hdfs dfs -ls /your-directory/

看起来像是Spark服务器在一个用户(例如“Spark”)下运行,文件存储在另一个用户“yxs7634”目录中的代码中。 在群集模式下,用户“spark”不允许写入“yxs7634”用户目录,并且会发生此类异常

Spark用户需要额外的权限才能写入“/home/yxs7634”


在本地模式下工作正常,因为Spark在“yxs7634”用户下运行。

看起来像Spark服务器在一个用户(例如“Spark”)下运行,文件存储在另一个用户“yxs7634”目录中的代码中。 在群集模式下,用户“spark”不允许写入“yxs7634”用户目录,并且会发生此类异常

Spark用户需要额外的权限才能写入“/home/yxs7634”


在本地模式下工作正常,因为Spark在“yxs7634”用户下运行。

您是否缺少像hdfs-site.xml这样的站点xml?您能否检查您创建的文件系统实例是否是用于访问HDFS的分布式FS?是否缺少像HDFS-site.xml这样的站点xml?您能否检查您创建的文件系统实例是否是用于访问HDFS的分布式FS?