通常,在EMR上创建一个spark集群后,有一个spark-defaults.conf
文件位于/etc/spark/conf
中。EMR设置配置json导致conf文件未被创建
如果我没有提供自定义的CONFIGS,你会发现spark-defaults.conf
高兴地坐在在conf目录:从http://docs.aws.amazon.com//ElasticMapReduce/latest/ReleaseGuide/emr-configure-apps.html
[[email protected] ~]$ ls -la /etc/spark/conf/
total 64
drwxr-xr-x 2 root root 4096 Oct 4 08:08 .
drwxr-xr-x 3 root root 4096 Oct 4 07:41 ..
-rw-r--r-- 1 root root 987 Jul 26 21:56 docker.properties.template
-rw-r--r-- 1 root root 1105 Jul 26 21:56 fairscheduler.xml.template
-rw-r--r-- 1 root root 2373 Oct 4 07:42 hive-site.xml
-rw-r--r-- 1 root root 2024 Oct 4 07:42 log4j.properties
-rw-r--r-- 1 root root 2025 Jul 26 21:56 log4j.properties.template
-rw-r--r-- 1 root root 7239 Oct 4 07:42 metrics.properties
-rw-r--r-- 1 root root 7239 Jul 26 21:56 metrics.properties.template
-rw-r--r-- 1 root root 865 Jul 26 21:56 slaves.template
-rw-r--r-- 1 root root 2680 Oct 4 08:08 spark-defaults.conf
-rw-r--r-- 1 root root 1292 Jul 26 21:56 spark-defaults.conf.template
-rwxr-xr-x 1 root root 1563 Oct 4 07:42 spark-env.sh
-rwxr-xr-x 1 root root 3861 Jul 26 21:56 spark-env.sh.template
依照指示操作,我想要一个JAR文件添加到驱动程序和执行extraClassPath属性。
[
{
"Classification": "spark-defaults",
"Properties": {
"spark.driver.extraClassPath": ":/usr/lib/hadoop-lzo/lib/*:/usr/lib/hadoop/hadoop-aws.jar:/usr/share/aws/aws-java-sdk/*:/usr/share/aws/emr/emrfs/conf:/usr/share/aws/emr/emrfs/lib/*:/usr/share/aws/emr/emrfs/auxlib/*:/usr/share/aws/emr/security/conf:/usr/share/aws/emr/security/lib/*:/home/hadoop/mysql-connector-java-5.1.39-bin.jar",
"spark.executor.extraClassPath": ":/usr/lib/hadoop-lzo/lib/*:/usr/lib/hadoop/hadoop-aws.jar:/usr/share/aws/aws-java-sdk/*:/usr/share/aws/emr/emrfs/conf:/usr/share/aws/emr/emrfs/lib/*:/usr/share/aws/emr/emrfs/auxlib/*:/usr/share/aws/emr/security/conf:/usr/share/aws/emr/security/lib/*:/home/hadoop/mysql-connector-java-5.1.39-bin.jar"
},
"Configurations":[
]
}
]
我没有看到在创建集群的任何错误,但是当我添加此配置永远不会出现在spark-defaults.conf
文件。
,这里是一个ls
显示该文件中不存在的文件系统:
[[email protected] ~]$ ls -la /etc/spark/conf/
total 64
drwxr-xr-x 2 root root 4096 Oct 4 08:08 .
drwxr-xr-x 3 root root 4096 Oct 4 07:41 ..
-rw-r--r-- 1 root root 987 Jul 26 21:56 docker.properties.template
-rw-r--r-- 1 root root 1105 Jul 26 21:56 fairscheduler.xml.template
-rw-r--r-- 1 root root 2373 Oct 4 07:42 hive-site.xml
-rw-r--r-- 1 root root 2024 Oct 4 07:42 log4j.properties
-rw-r--r-- 1 root root 2025 Jul 26 21:56 log4j.properties.template
-rw-r--r-- 1 root root 7239 Oct 4 07:42 metrics.properties
-rw-r--r-- 1 root root 7239 Jul 26 21:56 metrics.properties.template
-rw-r--r-- 1 root root 865 Jul 26 21:56 slaves.template
-rw-r--r-- 1 root root 1292 Jul 26 21:56 spark-defaults.conf.template
-rwxr-xr-x 1 root root 1563 Oct 4 07:42 spark-env.sh
-rwxr-xr-x 1 root root 3861 Jul 26 21:56 spark-env.sh.template
我在做什么错?
我正在经历所有这些麻烦,以配置他们现有的字符串+我的,因为设置extraClassPath被覆盖时,我提交时使用'--spark.driver.extraClassPath'。它的这样一个无赖,它不会简单地追加在首位。感谢您检查了这一点。另外..领先的冒号是EMR如何设置字符串开始时,我第一次看配置 – Kristian
你真的没有做错任何事情。然而,Glennie对最初的“:”是造成问题的原因是正确的。这实际上是解析和处理客户提供的配置分类时非常奇怪的错误,并且导致文件无法创建。我认为这个问题可能会在最新的emr-4.x版本(emr-4.8.0)中修复,但尚未在EMR-5.x版本中修复。如果它在emr-4.8.0中不固定,它将在下一个emr-4.x和emr-5.x版本中修复。 –
@JonathanKelly非常有见地,你是如何得到这些信息的? – Kristian