मैंने डेबियन 9: pip install git+https://github.com/apache/incubator-airflow.git@v1-9-stable पर इस कमांड लाइन के लिए गिटहब से अपाचे एयरफ्लो 1.9 स्थापित किया है।

हालाँकि, मुझे फ़र्नेट के कारण airflow initdb के दौरान एक त्रुटि हुई है, क्या आप जानते हैं कि इस समस्या को कैसे हल किया जाए?

   INFO  [alembic.runtime.migration] Running upgrade 947454bf1dff -> d2ae31099d61, Increase text size for MySQL (not relevant for other DBs' text types)
    [2017-12-27 17:19:24,586] {models.py:643} ERROR - Failed to load fernet while encrypting value, using non-encrypted value.
    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/airflow/models.py", line 639, in set_extra
        fernet = get_fernet()
      File "/usr/local/lib/python2.7/dist-packages/airflow/models.py", line 103, in get_fernet
        raise AirflowException('Failed to import Fernet, it may not be installed')
    AirflowException: Failed to import Fernet, it may not be installed
    [2017-12-27 17:19:24,601] {models.py:643} ERROR - Failed to load fernet 

और मैं गिटहब के साथ अपने पिछले पाइप कमांड इंस्टॉल से pip install apache-airflow[gcp-api] जैसे अतिरिक्त पैकेज कैसे निर्दिष्ट कर सकता हूं?

नवीनतम 1.9.0RC भी कैसे स्थापित करें? मेरे पास एक दावा त्रुटि है।

2
benji2092 27 पद 2017, 21:49

3 जवाब

सबसे बढ़िया उत्तर

स्रोत से स्थापित करने के दौरान आपको fernet_key को airflow.cfg में बदलना होगा जैसा कि आप डॉक्स यहां.

1
Zoe 9 जून 2018, 12:04

अच्छा के रूप में चिह्नित उत्तर में एक टूटा हुआ लिंक है, यदि आप यहां मेरे रूप में उतरे हैं और यह टूटा हुआ है, तो इन चरणों ने मेरे लिए काम किया है:

  • pip install cryptography
  • python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
  • कॉन्फ़िगरेशन फ़ाइल में जेनरेट की गई कुंजी जोड़ें airflow.cfg, fernet_key = YOUR_GENERATED_KEY
8
skozz 4 जून 2018, 13:04

अपाचे-एयरफ्लो दस्तावेज़ीकरण में, फ़र्नेट कुंजी उत्पन्न करने की स्क्रिप्ट स्पष्ट रूप से गलत है। यह निम्नलिखित स्क्रिप्ट का उपयोग करने के लिए कहता है।

from cryptography.fernet import Fernet
fernet_key= Fernet.generate_key()
print(fernet_key) # your fernet_key, keep it in secured place!

लेकिन यह 'एयरफ्लो initdb' कमांड पर एक अपवाद उठाता है। इसे हल करने के लिए Fernet.generate_key() के बजाय Fernet.generate_key().decode() का उपयोग करें जैसा कि @skozz उत्तर में दिखाया गया है।

0
Thilina Madumal 9 जून 2018, 11:59