pyspark crontab запускает повторяющиеся (одинаковые) задания - PullRequest
0 голосов
/ 10 июля 2020

У меня есть работа pyspark, которую я хотел бы выполнять раз в неделю. Для завершения задания требуется ~ 3 часа. sh

Я добавил эту запись в crontab:

# use /bin/sh to run commands
#
# This crontab entry runs a pyspark job once a week:
CRON_TZ=UTC
* 12 * * 3 nohup sh -x /home/me/run_my_pyspark.sh &

Проблема, с которой я сталкиваюсь, заключается в том, что запускается несколько экземпляров одного и того же задания Бег. Есть ли способ предотвратить запуск нескольких экземпляров?

Спасибо

1 Ответ

0 голосов
/ 10 июля 2020

Я бы посоветовал найти причину root дублирования срабатывания cron.

Однако, чтобы предотвратить многократное срабатывание задания Spark, я использовал подход блокировка файла , Надеюсь, это поможет вам.

 1. Refer a common directory and a lock file from the Spark driver
 2. If the lock file is not present
       2.1. create the lock file
       2.2. continue job execution
 3. If the lock file is present 
       3.1. get the lock file creation time
       3.2. if the creation time is recent
                    3.2.1. then abort the execution
                    3.2.2. log and alert about the error
       3.3. if the log file is older than certain interval
                    3.3.1. overwrite the file with the new version
                    3.3.2. continue job execution
...