Хотя 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
, но он не работает.
Ответы
Ответ 1
Используете ли вы HiveOperator
? Похоже, что ошибка, которую вы получаете, связана с 1 примерными записями. В производстве вы должны установить load_examples
в False
и установить airflow[hive]
только в том случае, если вы используете HiveOperator.
Сказав это, не уверен, почему airflow[hive]
недостаточно для вас. Вы можете попробовать установить airflow[hive,hdfs,jdbc]
, но воздушного потока [улей] должно быть достаточно, чтобы избавиться от ошибки импорта HiveOperator
. Не могли бы вы добавить, какую еще ошибку вы получаете?
Ответ 2
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. (проверено на DO)
Обновление 1.apt-get
2.apt-get install python-pip python-dev build-essential
3.pip install --upprade pip
3a.whipe pip #/usr/local/bin/pip
3b.pip -V #pip 9.0.1 из /usr/local/lib/python 2.7/dist-packages (python 2.7)
4.pip install --upgrade virtualenv
(Задача 5 является необязательной)
5.apt-get install sqlite3 libsqlite3-dev
https://askubuntu.com/info/683601/how-to-upgrade-python-setuptools-12-2-on-ubuntu-15-04
6.apt-get удалить python-setuptools
7.pip install -U pip setuptools
8.export AIRFLOW_HOME = ~/airflow
9.pip установить воздушный поток
10.pip установить воздушный поток [улей]
11.airflow 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, если применимо