配置向远程AWS EMR集群提交火花

时间:2019-07-18 18:47:10

标签: apache-spark amazon-ec2 yarn airflow amazon-emr

我们正在EC2实例上构建一个气流服务器,该服务器与EMR集群通信以运行火花作业。我们正在尝试提交一个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。

到目前为止,我们已经在.bashrc的EC2实例中将HADOOP_CONF_DIR和YARN_CONF_DIR设置为/ etc / hadoop /,并将spark-env.sh从EMR集群复制到EC2实例的/ etc / hadoop /。 / p>

我们不太确定应该将哪些文件复制到EC2中的HADOOP_CONF_DIR / YARN_CONF_DIR目录中,以执行spark-submit命令将作业发送到运行spark的EMR集群。有经验的人将服务器配置为将Spark命令发送到远程服务器,我们将不胜感激!

1 个答案:

答案 0 :(得分:0)

我认为这是您在EC2计算机上运行spark-submit的问题。我建议您使用相应的步骤创建EMR群集。这是Airflow仓库本身的example。 或者,如果您更喜欢使用BashOperator,则应使用aws cli。即,您可以使用aws emr命令。