我的脑子被架构搞糊涂了。如果我知道,当您在oozie中执行hql或sqoop语句时,oozie将请求定向到数据节点。我想在Apache实现同样的目标。我想执行一个shell脚本、hql或sqoop命令,并且我想确保我的命令是由数据节点分布式执行的。气流有不同的执行器类型。为了在不同的数据节点上同时运行命令,我应该怎么做?
uelo1irk1#
oozie与hadoop节点紧密耦合,所有的脚本都需要上传到hdfs,而带有celery executor的aiffort有更好的架构。使用celery executor相同的脚本,hql可以通过使用正确的队列在多个节点以及特定节点上并发执行,并且一些工作人员可以监听特定的队列来执行这些操作。
gzszwxb42#
似乎您想在分布式worker上执行任务。在这种情况下,考虑使用 CeleryExecutor .celeryexecutor是扩展员工数量的方法之一。为此,您需要设置celery 后端(rabbitmq,redis,…),并更改airflow.cfg以将executor参数指向celery executor并提供相关celery 设置。请参见:https://airflow.apache.org/configuration.html#scaling-和celery 一起吃
CeleryExecutor
2条答案
按热度按时间uelo1irk1#
oozie与hadoop节点紧密耦合,所有的脚本都需要上传到hdfs,而带有celery executor的aiffort有更好的架构。使用celery executor相同的脚本,hql可以通过使用正确的队列在多个节点以及特定节点上并发执行,并且一些工作人员可以监听特定的队列来执行这些操作。
gzszwxb42#
似乎您想在分布式worker上执行任务。在这种情况下,考虑使用
CeleryExecutor
.celeryexecutor是扩展员工数量的方法之一。为此,您需要设置celery 后端(rabbitmq,redis,…),并更改airflow.cfg以将executor参数指向celery executor并提供相关celery 设置。
请参见:https://airflow.apache.org/configuration.html#scaling-和celery 一起吃