我尝试将Airbnb AirFlow配置为使用CeleryExecutor,如下所示:
我将airflow.cfg中的executer
从SequentialExecutor
更改为CeleryExecutor
:
# The executor class that airflow should use. Choices include
# SequentialExecutor, LocalExecutor, CeleryExecutor
executor = CeleryExecutor
但是我收到以下错误:
airflow.configuration.AirflowConfigException: error: cannot use sqlite with the CeleryExecutor
请注意,sql_alchemy_conn
的配置如下:
sql_alchemy_conn = sqlite:////root/airflow/airflow.db
我查看了Airflow的GIT(https://github.com/airbnb/airflow/blob/master/airflow/configuration.py)
并发现以下代码抛出此异常:
def _validate(self):
if (
self.get("core", "executor") != 'SequentialExecutor' and
"sqlite" in self.get('core', 'sql_alchemy_conn')):
raise AirflowConfigException("error: cannot use sqlite with the {}".
format(self.get('core', 'executor')))
validate
方法似乎sql_alchemy_conn
无法包含sqlite
。
您是否知道如何在没有sqllite的情况下配置CeleryExecutor
?请注意,我根据需要下载了rabitMQ以便使用CeleryExecuter。
答案 0 :(得分:16)
据AirFlow称,$nested->setQuery(new \Elastica\Query\Term(array('name' => array('value' => $searchText))));
$nested->setPath('tags');
$query_part->addShould($nested);
$query = new \Elastica\Query\Filtered($query_part/*, $filters // in case you had other filters*/);
return $this->find($query);
需要其他后端,而不是默认数据库SQLite。例如,您必须使用CeleryExecutor
或MySQL
。
PostgreSQL
中的sql_alchemy_conn
必须更改为遵循SqlAlchemy连接字符串结构(请参阅SqlAlchemy document)
例如,
airflow.cfg
答案 1 :(得分:4)
为mysql配置Airflow 首先安装mysql this might help或只是谷歌
定位
sql_alchemy_conn = sqlite:////home/vipul/airflow/airflow.db
并在其前面添加#,使其看起来像
#sql_alchemy_conn = sqlite:////home/vipul/airflow/airflow.db
如果你有默认的sqlite
在
下添加以下一行sql_alchemy_conn = mysql://:@ localhost:3306 /
保存文件
运行命令
airflow initdb
并完成了!
答案 2 :(得分:1)
正如其他答案所述,您需要使用除SQLite之外的其他数据库。此外,您需要安装rabbitmq,对其进行适当配置,并更改每个airflow.cfg以获得正确的rabbitmq信息。有关这方面的优秀教程,请参阅A Guide On How To Build An Airflow Server/Cluster。
答案 3 :(得分:0)
如果在kubernetes集群上运行它。使用以下配置:
airflow:
config:
AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://postgres:airflow@airflow-postgresql:5432/airflow