当前位置: 首页 > 知识库问答 >
问题:

火花纱-集群模式-读取文件与--files一起传递

巢德华
2023-03-14

我正在使用yarn-cluster Master运行我的spark应用程序。

应用程序是做什么的?

  1. 外部服务根据对RESTService的HTTP请求生成jsonFile
  2. Spark需要在解析JSON后读取该文件并执行一些工作
/hadoop_user_path/.sparkStaging/spark_applicationId/myFile.json
val jsonStringData = spark.textFile(myFileName)
sqlContext.read.json(jsonStringData)

我认为将文件作为--files传递会让我忘记保存和删除这个文件。类似于通过-过程-忘记。

那么,如何读取通过-files传递的文件呢?唯一的解决方案是手工创建路径,硬编码“.sparkstaging”文件夹路径?

共有1个答案

乐欣可
2023-03-14

这个问题写得很模棱两可。然而,从我得到的似乎是,您希望从本地OS文件系统的任何位置读取文件,而不仅仅是从HDFS。

Spark使用URI来标识路径,在有效的Hadoop/HDFS环境中,它将默认为HDFS。在这种情况下,要指向本地OS文件系统,例如在UNIX/Linux的情况下,可以使用以下内容:

文件:///home/user/my_file.txt

 类似资料:
  • 我在提供spark.yarn时遇到了一个场景。stagingDir(stagingDir)到spark submit(spark提交)开始失败,它没有给出任何关于根本原因的线索,我花了很长时间才弄清楚这是因为spark.yarn(spark.yarn)。stagingDir参数。为什么spark submit在supply此参数? 在此处查看相关问题以获取更多详细信息 失败的命令: 当我移除火花线

  • 我已经在一个15节点的Hadoop集群上安装了。所有节点都运行和最新版本的Hadoop。Hadoop集群本身是功能性的,例如,YARN可以成功地运行各种MapReduce作业。 我可以使用以下命令在节点上本地运行Spark Shell,而不会出现任何问题:。 你知道为什么我不能用客户端模式在纱线上运行Spark Shell吗?

  • 我正在从我的开发机器上启动spark-submit。 根据在YARN文档上运行Spark,我应该在env var或上为hadoop集群配置提供一个路径。这就是它变得棘手的地方:如果我将任务发送到远程YARN服务,为什么这些文件夹必须存在于我的本地机器上?这是否意味着spark-submit必须位于集群内部,因此我不能远程启动spark任务?如果没有,我应该用什么填充这些文件夹?我应该从任务管理器服

  • spark文档中有以下段落描述了yarn客户机和yarn集群之间的区别: 有两种部署模式可用于在Yarn上启动Spark应用程序。在集群模式下,Spark驱动程序运行在由集群上的YARN管理的应用程序主进程中,客户端可以在启动应用程序后离开。在客户端模式下,驱动程序在客户端进程中运行,应用程序主程序仅用于从YARN请求资源。

  • 我试图通过以下命令向CDH纱线集群提交spark作业 我试过几种组合,但都不起作用。。。现在,我的本地/root以及HDFS/user/root/lib中都有所有poi JAR,因此我尝试了以下方法 如何将JAR分发到所有集群节点?因为上面这些都不起作用,作业仍然无法引用该类,因为我一直收到相同的错误: 同样的命令也适用于“--master本地”,但没有指定--jar,因为我已经将我的jar复制到

  • 当我使用spark-submit with master yarn和deploy-mode cluster提交spark作业时,它不会打印/返回任何applicationId,一旦作业完成,我必须手动检查MapReduce jobHistory或spark HistoryServer来获取作业细节。 我的集群被许多用户使用,在jobHistory/HistoryServer中找到我的作业需要很多时