В то время как airflow initdb, ImportError: не удается импортировать имя HiveOperator

Я недавно установил airflow для моих рабочих процессов. При создании моего проекта, я выполнил следующую команду:

airflow initdb

который вернул следующую ошибку:

[2016-08-15 11:17:00,314] {__init__.py:36} INFO - Using executor SequentialExecutor
DB: sqlite:////Users/mikhilraj/airflow/airflow.db
[2016-08-15 11:17:01,319] {db.py:222} INFO - Creating tables
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
ERROR [airflow.models.DagBag] Failed to import: /usr/local/lib/python2.7/site-packages/airflow/example_dags/example_twitter_dag.py
Traceback (most recent call last):
    File "/usr/local/lib/python2.7/site-packages/airflow/models.py", line 247, in process_file
       m = imp.load_source(mod_name, file path)
    File "/usr/local/lib/python2.7/site-packages/airflow/example_dags/example_twitter_dag.py", line 26, in <module>
       from airflow.operators import BashOperator, HiveOperator, PythonOperator
ImportError: cannot import name HiveOperator
Done.

Я проверил некоторые аналогичные проблемы в интернете, которые предложили мне установить airflow[hive], pyhs2 но это, кажется, не работает.

3 ответов


вы используете HiveOperator? Похоже, что ошибка, которую вы получаете, связана с 1 из примеров DAG. В производстве вы, вероятно, должны установить load_examples to False и установить airflow[hive] только если вы используете HiveOperator.

это, как говорится, не знаю, почему airflow[hive] недостаточно для вас. Вы можете попробовать установить airflow[hive,hdfs,jdbc] но воздушного потока[улей] должно быть достаточно, чтобы избавиться от HiveOperator ошибка импорта. Не могли бы вы добавить, какую еще ошибку вы получаете?


Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/airflow/models.py", line 247, in process_file
    m = imp.load_source(mod_name, filepath)
  File "/usr/local/lib/python2.7/dist-packages/airflow/example_dags/example_twitter_dag.py", line 26, in <module>
    from airflow.operators import BashOperator, HiveOperator, PythonOperator
ImportError: cannot import name HiveOperator

Если вы все еще хотите продолжить установку образцов данных ... для Ubuntu 14.04 используйте этот метод с python 2.7 последним. (проверено на )

1.apt-получить обновление

2.apt-получить установку питона-типун на языке python-dev-сборку-основные

3.pip install --upgrade pip

3a.какой pip # / usr/local/bin / pip

3b.pip-V #pip 9.0.1 из /usr / local/lib / python2.7 / dist-пакеты (python 2.7)

4.pip install --upgrade virtualenv

(Задача 5 необязательна)

5.apt-get install sqlite3 libsqlite3-dev

https://askubuntu.com/questions/683601/how-to-upgrade-python-setuptools-12-2-on-ubuntu-15-04

6.apt-get удалить python-setuptools

7.pip install-U pip setuptools

8.экспорт AIRFLOW_HOME=~ / воздушный поток

9.пункт установить воздушный поток

10.pip установить воздушный поток[улей]

11.воздушный поток initdb

вы получите этот ответ ниже

[2017-02-01 12:04:28,289] {__init__.py:36} INFO - Using executor SequentialExecutor
[2017-02-01 12:04:28,350] {driver.py:120} INFO - Generating grammar tables from /usr/lib/python2.7/lib2to3/Grammar.txt
[2017-02-01 12:04:28,376] {driver.py:120} INFO - Generating grammar tables from /usr/lib/python2.7/lib2to3/PatternGrammar.txt
DB: sqlite:////root/airflow/airflow.db
[2017-02-01 12:04:28,522] {db.py:222} INFO - Creating tables
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
Done.

Примечание: пожалуйста, пожалуйста, примените необходимую команду sudo, если применимо


Проверьте, импортирован ли оператор hive в файл dag? Если нет, вы можете сделать что-то вроде:

from airflow.operators.hive_operator import HiveOperator