web-dev-qa-db-ja.com

エアフロー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しかし、機能していないようです。

16
Rusty

HiveOperatorを使用していますか?発生しているエラーは、例のdagsの1つが原因であるようです。本番環境では、おそらくHiveOperatorを使用している場合のみ、load_examplesFalseに設定し、airflow[Hive]をインストールする必要があります。

そうは言っても、なぜairflow[Hive]では不十分なのかはわかりません。 airflow[Hive,hdfs,jdbc]をインストールすることもできますが、HiveOperatorインポートエラーを取り除くには、エアフロー[Hive]で十分です。あなたはおそらくあなたが得ている他のエラーを追加できますか?

22
Vineet Goel
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 update

2. apt-get install python-pip python-dev build-essential

3.pip install --upgrade pip

3a.which pip#/ usr/local/bin/pip

3b.pip -V #pip 9.0.1 /usr/local/lib/python2.7/dist-packagesから(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 remove 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コマンドを適用してください

HiveオペレーターがDAGファイルにインポートされたかどうかを確認しますか?そうでない場合、次のようなことができます:

from airflow.operators.Hive_operator import HiveOperator

0
Ritesh Varyani