Lan*_*uhn 9 amazon-web-services emr apache-spark
似乎默认情况下,EMR将Spark驱动程序部署到其中一个CORE节点,导致MASTER节点几乎未被利用.是否可以在MASTER节点上运行驱动程序?我试验过--deploy-mode
无可争辩的论点.
这是我的实例组JSON定义:
[
{
"InstanceGroupType": "MASTER",
"InstanceCount": 1,
"InstanceType": "m3.xlarge",
"Name": "Spark Master"
},
{
"InstanceGroupType": "CORE",
"InstanceCount": 3,
"InstanceType": "m3.xlarge",
"Name": "Spark Executors"
}
]
Run Code Online (Sandbox Code Playgroud)
这是我的配置JSON定义:
[
{
"Classification": "spark",
"Properties": {
"maximizeResourceAllocation": "true"
},
"Configurations": []
},
{
"Classification": "spark-env",
"Properties": {
},
"Configurations": [
{
"Classification": "export",
"Properties": {
},
"Configurations": [
]
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
这是我的步骤JSON定义:
[
{
"Name": "example",
"Type": "SPARK",
"Args": [
"--class", "com.name.of.Class",
"/home/hadoop/myjar-assembly-1.0.jar"
],
"ActionOnFailure": "TERMINATE_CLUSTER"
}
]
Run Code Online (Sandbox Code Playgroud)
我使用aws emr create-cluster
带--release-label emr-4.3.0
.
设置驱动程序的位置
使用spark-submit,可以使用标志--deploy-mode来选择驱动程序的位置。
当您正在调试并希望快速查看应用程序的输出时,以客户端模式提交应用程序非常有利。对于生产中的应用程序,最佳实践是以集群模式运行应用程序。此模式可以保证驱动程序在应用程序执行期间始终可用。但是,如果您确实使用客户端模式并且从 EMR 集群外部(例如在本地、笔记本电脑上)提交应用程序,请记住驱动程序在 EMR 集群外部运行,并且驱动程序与执行程序之间的通信会有更高的延迟。
归档时间: |
|
查看次数: |
2516 次 |
最近记录: |