1)当提交一份工作时,Spark需要知道它连接的是什么。文件被解析并且正在使用所需的配置来连接到Hadoop集群。请注意,在文档中,他们说它是客户端配置(在第一句话的右边),这意味着您实际上不需要所有配置连接到文件中的群集(以便连接到非安全Hadoop群集极简配置)将需要至少存在以下CONFIGS:
fs.defaultFS
(如果你从意图HDFS读取)
dfs.nameservices
yarn.resourcemanager.hostname
或yarn.resourcemanager.address
yarn.application.classpath
- (其他人可能是必需的,这取决于配置)
可避免文件,在您提交作业的代码中设置相同的设置:
SparkConf sparkConfiguration = new SparkConf();
sparkConfiguration.set("spark.hadoop.fs.defaultFS", "...");
...
2 )Spark提交可以位于任何机器上,只要知道如何连接到集群(甚至可以从Eclipse运行提交,不需要安装任何东西,但是与Spark相关的项目依赖关系),它们就可以位于任何机器上,不一定位于集群上。
3)您应填入的配置文件夹:
- 核心的site.xml
- 纱的site.xml
- HDFS-site.xml中
- mapred-site.xml中
从服务器复制这些文件是最简单的方法。在你可以删除一些spark-submit不需要的配置,或者可能是安全敏感的。
非常感谢。我一直试图围绕这个问题一段时间,文档已经足够清晰,但有一些用例,我正在混合一些东西。我真的需要一个好的摘要:-) – NotGaeL
Sparkred需要'mapred-site'吗? –
@ cricket_007原则上不是。我会尽快测试并报告。 – Serhiy