2016-08-15 8 views
14

私は最近ワークフローにairflowをインストールしました。私のプロジェクトを作成している間、私は、以下のコマンドを実行し、次のエラーが返さ気流initdb、ImportError:名前をインポートできませんHiveOperator

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が、それはしません動作するようです。

答えて

22

HiveOperatorをお使いですか?あなたが得ているエラーは、サンプルダグの1つに起因するようです。プロダクションでは、load_examplesFalseに設定し、HiveOperatorを使用している場合にのみairflow[hive]をインストールする必要があります。

言われているように、なぜairflow[hive]で十分ではないのか分かりません。 airflow[hive,hdfs,jdbc]をインストールしてみてください。しかし、空気の流れ[ハイブ]は、HiveOperatorインポートエラーを取り除くのに十分なはずです。あなたはおそらくあなたが得ている他のエラーを追加できますか?

+0

はと思われる場合は、必要なsudoコマンドを適用してくださいしてください。プロダクションでは気流[ハイブ]が私のために働いた。 'load_examples'を' False'に設定する方法を教えてください。 – Rusty

+2

'airflow.cfg'ファイルをチェックしてください。 Airflowは自動的にデフォルトの 'airflow.cfg'ファイルをAIRFLOW_HOMEディレクトリに作成します。このファイルには変数 'load_examples'があり、デフォルトで' True'に設定されています –

+0

そうです。これは私の地元でも働いた。 – Rusty

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で最新のものにしてください。

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 from /usr/local/lib/python2.7/dist-packages (python 2.7)

4.pip install --upgrade virtualenv

(Task 5 is optional)

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 install airflow

10.pip install airflow[hive]

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. 

NOTE以下、この応答を取得します(DOでテスト):それは問題であるように、適用

関連する問題