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

火花提交纱线模式HADOOP_CONF_DIR内容

马沛
2023-03-14

我正在从我的开发机器上启动spark-submit。

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

共有1个答案

谭曦
2023-03-14

1)当提交作业时,Spark需要知道它正在连接到什么。文件被解析,所需的配置被用于连接到Hadoop集群。注意,在文档中,他们说这是客户端配置(就在第一句中),这意味着您实际上不需要连接到文件中的集群的所有配置(要连接到使用最简配置的非安全Hadoop集群),您至少需要以下配置:

  • fs.defaultfs(如果您打算从HDFS读取数据)
  • dfs.nameservices
  • yarn.resourceManager.hostnameyarn.resourceManager.address
  • yarn.application.classpath
  • (根据配置,可能需要其他选项)

通过在提交的作业代码中设置相同的设置,可以避免使用文件:

SparkConf sparkConfiguration = new SparkConf();
sparkConfiguration.set("spark.hadoop.fs.defaultFS", "...");
...

3)应使用以下内容填充配置文件夹:

  • core-site.xml
  • yarn-site.xml
  • hdfs-site.xml
  • mapred-site.xml

从服务器复制这些文件是一个最简单的开始方法。之后,您可以删除spark-submit不需要的或可能是安全敏感的一些配置。

 类似资料:
  • 我可以从IDE(远程)编程运行这个程序吗?我使用Scala-IDE。我寻找一些代码来遵循,但仍然没有找到合适的 我的环境:-Cloudera 5.8.2[OS redhat 7.2,kerberos 5,Spark2.1,scala 2.11]-Windows 7

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

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

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

  • 我正在4节点群集上运行Spark over纱线。节点中每台机器的配置为128GB内存,每个节点24核CPU。我使用此命令运行Spark on 但Spark最多只能启动16个执行者。我将纱线中的最大vcore分配设置为80(在我拥有的94芯中)。因此,我的印象是,这将启动19名执行人,但最多只能启动16名执行人。此外,我认为即使这些执行者也没有完全使用分配的vCore。 这些是我的问题 spark为

  • 一些脚本在工作时什么也不做,当我手动运行它们时,其中一个失败了,出现了以下消息: 错误SparkUI:未能绑定SparkUI java.net.bindexception:地址已在使用:服务“SparkUI”在重试16次后失败! 所以我想知道是否有一种特定的方法来并行运行脚本?