škálování s celerem¶
CeleryExecutor
je jedním ze způsobů, jak můžete škálovat počet pracovníků. Pro to, aby toto fungovalo, musíte nastavit Celer backend (RabbitMQ, Redis, …) změnit své airflow.cfg
bod exekutor parametrCeleryExecutor
a poskytovat související Celer nastavení.
další informace o nastavení celerového makléře naleznete v pokynechvyčerpávající celerovou dokumentaci k tomuto tématu.
zde je několik imperativních požadavků na vaše pracovníky:
-
airflow
musí být nainstalován a CLI, musí být v cestě -
proudění Vzduchu nastavení konfigurace by měla být homogenní v celé clusteru
-
Subjekty, které jsou provedeny na pracovníka, je potřeba mít jejich dependenciesmet v tomto kontextu. Například, pokud jste použít
HiveOperator
,úl CLI musí být nainstalována na té krabici, nebo pokud používáteMySqlOperator
, vyžaduje Python knihovny musí být k dispozici vPYTHONPATH
nějak -
pracovník musí mít přístup k jeho
DAGS_FOLDER
a potřebujete tosynchronize souborové systémy pomocí vlastních prostředků. Běžným nastavením by bylo uložit DAGS_FOLDER do repozitáře Git a synchronizovat jej mezi stroji pomocí chef, Puppet, Ansible nebo cokoli, co používáte ke konfiguraci strojů ve vašem prostředí. Pokud jsou všechny vaše boxy mají společný přípojný bod, s yourpipelines soubory sdílené tam by to fungovat stejně
K nastartování pracovník, musíte nastavit proudění Vzduchu a nastartování workersubcommand
airflow worker
Váš pracovník by měl začít vyzvednout úkoly, jakmile se dostanou padáka ve směru.
Všimněte si, že můžete také spustit “Celery Flower”, webové uživatelské rozhraní postavené na celeru,pro sledování vašich pracovníků. Příkaz zástupce airflow flower
můžete použít ke spuštění květinového webového serveru.
Vezměte prosím na vědomí, že musíte mít v systému nainstalovanou knihovnu python flower
. Doporučeným způsobem je instalace celerového svazku airflow.
pip install 'apache-airflow'
Některé výhrady:
-
ujistěte se, že používáte databáze couval výsledek backend
-
ujistěte se, že nastavit časový limit viditelnosti v tom, že přesahuje ETA nejdelší běžící úlohy
-
Úkoly mohou konzumovat zdroje. Ujistěte se, že váš pracovník má dostatek zdrojů, aby spustit worker_concurrency úkoly
-
názvy Front jsou omezeny na 256 znaků, ale každý makléř backend může mít své vlastní omezení