我正在尝试找出使用airflow和spark/hadoop的最佳方式。我已经有了一个spark/hadoop集群,我正在考虑为airflow创建另一个集群,将作业远程提交到spark/hadoop集群。有什么建议吗?从另一个集群远程部署spark似乎有点复杂,这会造成一些文件配置重复。
djp7away1#
远程执行有多种选择 spark-submit 通过 Airflow . Emr-Step ApacheLivy(请参阅此以获取提示) SSH 请注意,这些都不是即插即用的,您必须编写自己的运算符才能完成任务。
spark-submit
Airflow
Emr-Step
SSH
cwtwac6a2#
你真的只需要配置一个 yarn-site.xml 我相信,为了 spark-submit --master yarn --deploy-mode client 去工作(您可以尝试群集部署模式,但我认为由气流管理驱动程序不是一个坏主意)一旦在yarn中部署了应用程序主机,那么spark就在hadoop集群的本地运行。如果你真的想,你可以加一个 hdfs-site.xml 以及 hive-site.xml 也可以从airflow提交(如果可能的话),但是至少应该从yarn容器类路径中获取hdfs-site.xml文件(不是所有的节点管理器都可以安装一个配置单元客户机)
yarn-site.xml
spark-submit --master yarn --deploy-mode client
hdfs-site.xml
hive-site.xml
r1zhe5dt3#
我更喜欢提交Spark作业使用sshoperator和运行 spark-submit 命令,使您免于复制/粘贴 yarn-site.xml . 另外,如果我执行的唯一任务是运行spark作业,那么我不会为airflow创建集群 LocalExecutor 应该没事。
LocalExecutor
3条答案
按热度按时间djp7away1#
远程执行有多种选择
spark-submit
通过Airflow
.Emr-Step
ApacheLivy(请参阅此以获取提示)SSH
请注意,这些都不是即插即用的,您必须编写自己的运算符才能完成任务。cwtwac6a2#
你真的只需要配置一个
yarn-site.xml
我相信,为了spark-submit --master yarn --deploy-mode client
去工作(您可以尝试群集部署模式,但我认为由气流管理驱动程序不是一个坏主意)一旦在yarn中部署了应用程序主机,那么spark就在hadoop集群的本地运行。
如果你真的想,你可以加一个
hdfs-site.xml
以及hive-site.xml
也可以从airflow提交(如果可能的话),但是至少应该从yarn容器类路径中获取hdfs-site.xml文件(不是所有的节点管理器都可以安装一个配置单元客户机)r1zhe5dt3#
我更喜欢提交Spark作业使用sshoperator和运行
spark-submit
命令,使您免于复制/粘贴yarn-site.xml
. 另外,如果我执行的唯一任务是运行spark作业,那么我不会为airflow创建集群LocalExecutor
应该没事。