Docker,芹菜作业运行火花

时间:2019-11-25 16:47:38

标签: docker apache-spark docker-compose celery

我想在celery调度程序(节拍)的驱动下运行定期任务(在spark上运行)

我正在通过celery任务运行pyspark。

我正在创建Dockerfiledocker-compose.yml,并意识到由于芹菜工人需要执行火花作业,因此我需要一个具有celeryspark的整体Dockerfile

我还需要一种像https://towardsdatascience.com/a-journey-into-big-data-with-apache-spark-part-1-5dfcc2bccdd2一样运行spark-masterspark-worker的方法

所以我需要跑步

celery-worker
celery-beat (beat doensn't need spark I guess)
spark-master
spark-worker

无法为火花和芹菜创建单独的Dockerfile并以某种方式进行交流吗?

我能想到的最好的方法是:

在docker-compose中创建4个共享一个Dockerfile的服务,它们在运行命令方面有所不同

spark-master: /spark/bin/spark-class org.apache.spark.deploy.master.Master \
    --ip $SPARK_LOCAL_IP \
    --port $SPARK_MASTER_PORT \
    --webui-port $SPARK_MASTER_WEBUI_PORT

spark-worker: /spark/bin/spark-class org.apache.spark.deploy.worker.Worker \
    --webui-port $SPARK_WORKER_WEBUI_PORT \
    $SPARK_MASTER

celery-worker: celery worker -A proj
celery-beat: celery beat -A proj

是否有更好的方法来分割任务?

0 个答案:

没有答案