我们正在EC2实例上构建一个airflow服务器,该服务器与EMR集群通信以运行spark作业。我们试图提交一个BashOperator DAG,它为一个简单的wordcount应用程序运行spark-submit命令。下面是我们的spark提交命令:
./spark-submit --deploy-mode client --verbose --master yarn wordcount.py s3://bucket/inputwordcount.txt s3://bucket/outputbucket/ ;
我们得到以下错误:线程“main”org.apache.spark.sparkException中的异常:当使用主“yarn”运行时,必须在环境中设置HADOOP_CONF_DIR或YARN_CONF_DIR。
我认为问题在于您正在EC2机器上运行spark-submit
。我会建议你用相应的步骤创建EMR集群。这里有一个来自气流回购本身的例子。或者,如果您更喜欢使用BashOperator,则应该使用aws CLI。也就是说,您可以使用aws emr命令。
是的...已经讨论了很多了。 但是,有很多不明确的地方,提供了一些答案...包括在jars/executor/driver配置或选项中重复jar引用。 类路径的影响 驱动程序 执行程序(用于正在运行的任务) 两者 一点也不 对于任务(对每个执行者) 用于远程驱动程序(如果在群集模式下运行) 方法 方法 或 或 不要忘记,spark-submit的最后一个参数也是一个.jar文件。 如果我从文档中猜
我正在尝试从本地机器终端向我的集群提交一个Spark应用程序。我正在使用。我也需要在我的集群上运行驱动程序,而不是在我提交应用程序的机器上,即我的本地机器上 当我提供到本地机器中的应用程序jar的路径时,spark-submit会自动上传到我的集群吗? 我在用 和获取错误
现在我想在一个集群中用spark-submit(集群模式)运行我的应用程序。我的项目的所有依赖项的jar文件都存储在HDFS上。只要我的配置文件包含在jar文件中,一切都可以正常工作。但这对于测试目的来说是不实际的,因为我总是要重新构建JAR。 因此,我排除了项目的配置文件,并通过“driver-class-path”添加了它们。这在客户端模式下工作,但如果我现在将配置文件移动到HDFS并在集群模
dockerized应用程序结构为: 我得到以下错误: log4j:忽略配置文件[file://log4j.properties]时出错。log4j:错误无法从URL[file://log4j.properties]读取配置文件。
/usr/local/spark-1.2.1-bin-hadoop2.4/bin/--类com.fst.firststep.aggregator.firststepmessageProcessor--主spark://ec2-xx-xx-xx-xx.compute-1.amazonaws.com:7077--部署模式集群--监督文件:///home/xyz/sparkstreaming-0.0.1
现在k8s在2.3中直接与spark集成了,我的spark submit从控制台在kuberenetes master上正确执行,而没有运行任何spark master pods,spark处理k8s的所有细节: 我正在尝试做的是做一个火花-提交通过AWS lambda到我的k8s集群。以前,我直接通过spark master REST API(不使用kubernetes)使用该命令: 而且奏效了