我们正在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命令发送到远程服务器,我们将不胜感激!