2016-04-24 7 views
5

मैं Airbnb हवा का प्रवाह कॉन्फ़िगर करने के लिए इस तरह CeleryExecutor इस्तेमाल करने की कोशिश के साथ काम करने वायु प्रवाह को विन्यस्त:CeleryExecutor

मैं CeleryExecutor को SequentialExecutor से airflow.cfg में executer बदल दिया है:

# The executor class that airflow should use. Choices include 
# SequentialExecutor, LocalExecutor, CeleryExecutor 
executor = CeleryExecutor 

लेकिन मैं मिलता है निम्न त्रुटि:

airflow.configuration.AirflowConfigException: error: cannot use sqlite with the CeleryExecutor 

ध्यान दें कि sql_alchemy_conn इस तरह कॉन्फ़िगर किया गया है:

sql_alchemy_conn = sqlite:////root/airflow/airflow.db 

मैं वायु प्रवाह के GIT (https://github.com/airbnb/airflow/blob/master/airflow/configuration.py)

पर देखा और पाया कि निम्न कोड इस अपवाद फेंकता है:

def _validate(self): 
     if (
       self.get("core", "executor") != 'SequentialExecutor' and 
       "sqlite" in self.get('core', 'sql_alchemy_conn')): 
      raise AirflowConfigException("error: cannot use sqlite with the {}". 
       format(self.get('core', 'executor'))) 

यह इस validate विधि है कि sql_alchemy_connsqlite शामिल नहीं हो सकता से लगता है।

क्या आपको कोई विचार है कि CeleryExecutor बिना SQL के कॉन्फ़िगर कैसे करें? कृपया ध्यान दें कि मैंने आवश्यकतानुसार CeleryExecuter के साथ काम करने के लिए rabitMQ डाउनलोड किया है।

उत्तर

13

एयरफ़्लो द्वारा यह कहा जाता है कि CeleryExecutor को डिफ़ॉल्ट डेटाबेस SQLite की तुलना में अन्य बैकएंड की आवश्यकता होती है। उदाहरण के लिए आपको MySQL या PostgreSQL का उपयोग करना होगा।

sql_alchemy_connairflow.cfg में (SqlAlchemy document देखें)

उदाहरण के लिए SQLAlchemy कनेक्शन स्ट्रिंग संरचना का पालन करने के लिए परिवर्तित किया जाना चाहिए,

sql_alchemy_conn = postgresql+psycopg2://airflow:[email protected]:5432/airflow 
+0

क्या मुझे पता है कि postgresql – abhijeetmote

+0

@abhijeetmote msql कनेक्शन स्ट्रिंग sqlalchemy के लिए mysql कनेक्शन जोड़ने के लिए कैसे हो सकता है 'mysql: // उपयोगकर्ता नाम: पासवर्ड @ होस्टनाम: पोर्ट/डेटाबेस_नाम' – nehiljain

1

mysql के लिए वायु प्रवाह कॉन्फ़िगर करने के लिए सबसे पहले mysql this might help स्थापित या बस इसे गूगल

  • गोटो एयरफ्लो स्थापना निदेशक usu सहयोगी/घर // हवा का प्रवाह
  • संपादित airflow.cfg
  • पता लगाने

    sql_alchemy_conn = SQLite: //// घर/विपुल/हवा का प्रवाह/हवा का प्रवाह।डाटाबेस

और इसे के सामने # जोड़ सकते हैं ताकि यह कैसा

#sql_alchemy_conn = sqlite:////home/vipul/airflow/airflow.db 

लग रहा है यदि आप डिफ़ॉल्ट SQLite

  • है नीचे

    sql_alchemy_conn = mysql इस पंक्ति जोड़ें: //: @ लोकलहोस्ट: 3306/

  • रन कमांड

    हवा का प्रवाह

    initdb

और किया फ़ाइल सहेजें!

1

जैसा कि अन्य उत्तरों ने कहा है कि आपको SQLite के अलावा एक अलग डेटाबेस का उपयोग करने की आवश्यकता है। इसके अतिरिक्त आपको rabbitmq इंस्टॉल करने, इसे उचित रूप से कॉन्फ़िगर करने और सही rabbitmq जानकारी रखने के लिए अपने प्रत्येक airflow.cfg को बदलने की आवश्यकता है। इस पर एक उत्कृष्ट ट्यूटोरियल के लिए A Guide On How To Build An Airflow Server/Cluster देखें।