虽然气流initdb,ImportError:无法导入名称HiveOperator

时间:2016-08-15 07:38:08

标签: python-2.7 hive airflow

我最近为我的工作流安装了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,但它似乎无法正常工作。

2 个答案:

答案 0 :(得分: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 update

     

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

     

3.pip install --upgrade pip

     

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

     来自/usr/local/lib/python2.7/dist-packages(python 2.7)的

3b.pip -V #pip 9.0.1

     

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 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.

注意:如果适用,请申请必要的sudo命令

答案 1 :(得分:0)

检查是否在dag文件中导入了蜂巢运算符? 如果没有,您可以执行以下操作:

driver.switch_to.frame(driver.find_element_by_xpath("//iframe"))