我将要尝试EMR,并且此后将通过文档。我对提交过程有些困惑。
1)Spark库在哪里
从Spark文档中我们可以找到:
-spark.yarn.jars: 包含要分发到YARN容器的Spark代码的库列表。默认情况下,YARN上的Spark将使用本地安装的Spark jar,但是Spark jar也可以位于HDFS上的世界可读位置。这使YARN可以将其缓存在节点上,因此无需在每次运行应用程序时将其分发。例如,要指向HDFS上的jar,请将此配置设置为hdfs:/// some / path。允许使用globs。
2)--master参数如何工作?
在spark文档中,我们有:
---master :与Spark支持的其他群集管理器不同,在--master参数中指定了master地址的情况下,在YARN模式下,ResourceManager的地址是从Hadoop配置中提取的。因此,--master参数是yarn。
3)是否可以通过终端提交应用程序,还是在S3上实际部署jar的唯一方法?我可以登录到主数据库并从那里进行提交吗? ?提交脚本正常工作所需的所有Env变量是否准备就绪(请参阅上一个问题)?最有效的提交方式是什么?
答案 0 :(得分:2)
Spark库在哪里? spark
在路径中可用,这意味着您可以从主节点上任何地方的命令行界面运行spark-submit
,但是,如果要调整spark的配置文件,它们位于{{ 1}}。
如何提交Spark申请?有两种方法
/etc/spark/conf/
发行了a) CLI on the master node:
,包含所有参数,例如:spark-submit
spark-submit --class com.some.core.Main --deploy-mode cluster --master yarn --jars s3://path_to_some_jar.jar
从EMR Web控制台提交Spark应用程序意味着提交EMR步骤,EMR步骤基本上是spark提交的UI版本,更多信息here
--master参数如何工作,是否由EMR直接设置?如果您使用AWS EMR步骤(即Web控制台方式),则会自动设置此设置,UI会自动为您添加此设置,但是如果您将CLI用作问题b) AWS EMR Web console:
,则需要特别提及。
4)是在S3上实际部署jar的唯一方法吗?有两种(或更多)方式
2a
,并在提交时引用它。5)提交脚本正常工作所需的所有Env变量是否准备就绪?
s3
应用程序添加到EMR,则它是完全配置的即用型spark
集群。spark
执行脚本,这只能在集群创建期间完成,更多信息here 6)最有效的提交方式是什么?这取决于用例,如果您可以/想要自行管理任务,只需执行bootstrap action
,但要获得AWS EMR自动调试日志的优势,那就可以使用spark-submit
。
更新:
7)如何更改纱线,火花等的构造?再次有两个选择
AWS EMR step
上,在主节点上进行修改,您可能必须在主节点上重新启动yarn管理器。AWS Web控制台:创建集群时,您可以按照here的说明在Web控制台上提交配置,例如,如果要启用YARN FAIR调度,将提供的配置JSON如下像
/etc/hadoop/conf
PS:我忘了提到,几乎在AWS Web控制台上可以执行的任何操作,都可以通过AWS CLI或AWS SDK以编程方式进行。