airflow

windows环境安装airflow 失败解决

匿名 (未验证) 提交于 2019-12-03 00:27:02
安装airflow的命令: pip install airflow 如果太慢,用下面的命令 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple airflow 安装失败报错: Microsoft visual c++ 14.0 is required 如图: 原因就是windows环境的太就,去官网下载最新的,安装,重启计算机就好了。 如果安装后还是不生效,可能原因是,MicroSoft .NET Framework版本太旧,重新到官网去下载最新的安装 visual-cpp-build-tools工具到官网下载,官网地址: https://www.microsoft.com/zh-cn/ 这个tools安装太慢,需要等一段时间。 下载安装就好了,我的问题就是这样解决的。 文章来源: windows环境安装airflow 失败解决

airflow使用mysql数据库,LocalExecutor并发调度(1)

孤者浪人 提交于 2019-12-03 00:20:51
mysql-airflow 在mysql上执行 create database airflow; —— 创建数据库 GRANT all privileges on airflow.* TO 'airflow'@'%' IDENTIFIED BY '123456'; —— 将数据库airflow的所有权限授权airflow用户,密码123456且该用户可在任何IP段登录操作 FLUSH PRIVILEGES; —— 刷新权限 set explicit_defaults_for_timestamp = 1; 修改airflow配置文件airflow.cfg sql_alchemy_conn = mysql://airflow:123456@mysqlIP/airflow 初始化数据库 airflow initdb 若之前使用sqllite初始化过可使用airflow resetdb airflow-LocalExecutor 修改执行器,使airflow并发调度任务 修改配置文件airflow.cfg executor = LocalExecutor 重启scheduler即可(默认并发调度16) 分布式问题 1.需要使用同步方式解决dags目录与worker的同步问题——待解决 2.需要解决scheduler的单点问题,可参考 apache-airflow 调度系统 https:/

docker上安装airflow

匿名 (未验证) 提交于 2019-12-03 00:11:01
centos 7环境下: mkdir airflow //创建airflow文件夹 git clone https://github.com/puckel/docker-airflow.git /root/airflow //下载源码到airflow文件夹 docker run -d -p 8082:8080 puckel/docker-airflow //安装并运行airflow docker exec -it af2044c3b40c bash // 进入容器 airflow initdb // 初始化数据库 出现错误: airflow.exceptions.AirflowException: Could not create Fernet object: Incorrect padding 解决办法: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" export AIRFLOW__CORE__FERNET_KEY=oNu9XwewQNyx9mAJT2vZvtm3qzPRZIWRqwk9hSVch4A= 如下图: airflow initdb // 重新运行初始化数据库 输入网址: http://172.16.10.22:8083/admin/

AirFlow

匿名 (未验证) 提交于 2019-12-02 23:57:01
转自:https://www.cnblogs.com/cord/p/9450910.html 1, 简介 SequentialExecutor:单进程顺序执行任务,默认执行器,通常只用于测试 LocalExecutor:多进程本地执行任务 CeleryExecutor:分布式调度,生产常用 DaskExecutor :动态任务调度,主要用于数据分析 在当前项目使用 CeleryExecutor 作为执行器。 celery是一个分布式调度框架,其本身无队列功能,需要使用第三方组件,比如redis或者rabbitmq,当前项目使用的是rabbitmq,系统整体结构如下所示: 其中: turing为外部系统 GDags服务帮助拼接成dag master节点webui管理dags、日志等信息 scheduler负责调度,只支持单节点 worker负责执行具体dag中的task, worker支持多节点 在整个调度系统中,节点之间的传递介质是消息,而消息的本质内容是执行脚本的命令,也就是说,工作节点的dag文件必须和master节点的dag文件保持一致,不然任务的执行会出问题。 airflow内置了丰富的任务处理器,用于实现不同类型的任务: BashOperator : 执行bash命令 PythonOperator : 调用python代码 EmailOperator : 发送邮件

AirFlow功能展示个人笔记

匿名 (未验证) 提交于 2019-12-02 23:56:01
跨越时间的 DAG 的树表示。如果 pipeline(管道)延迟了,您可以很快地看到哪里出现了错误的步骤并且辨别出堵塞的进程。 图形视图可能是最全面的一种表现形式了。它可以可视化您的 DAG 依赖以及某个运行实例的当前状态。 过去 N 次运行的不同任务的持续时间。通过此视图,您可以查找异常值并快速了解 DAG 在多次运行中花费的时间。 甘特图可让您分析任务持续时间和重叠情况。您可以快速识别系统瓶颈和哪些特定 DAG 在运行中花费了大量的时间。 透明就是一切。虽然您的 pipeline(管道)代码在源代码管理中,但这是一种快速获取 DAG 代码并提供更多上下文的方法。 从上面的页面(树视图,图形视图,甘特图......)中,始终可以单击任务实例,并进入此丰富的上下文菜单,该菜单可以将您带到更详细的元数据并执行某些操作。 查看日志 所有的任务实例 记录了所有DAG的运行情况 外部系统的连接信息存储在 Airflow 元数据数据库中,并在 UI 中进行管理( Menu -> Admin -> Connections )。在那里定义了 conn_id conn_id 而无需在任何地方硬编码任何此类信息。 可以定义具有相同 conn_id 许多连接,并且在这种情况下,并且当挂钩使用来自 BaseHook 的 get_connection 方法时,Airflow 将随机选择一个连接

airflow的集群部署

偶尔善良 提交于 2019-12-02 23:39:41
如果你是在python的虚拟环境部署可以参考这篇文章 因为我是集群的复制,所以我从原来集群上复制了虚拟环境,上传到新的hadoop01 机器 airflow_venv.tar.gz就是集群的虚拟环境,需要上传到每一台机器解压。因为这个虚拟环境是之前集群正在使用的,所以各种包都是很齐全的不会出现包不存在的现象。 如何确定要部署的airflow的家目录,在部署之前先配置airflow的家目录 [admin@test-hadoop01 ~]$ vim ~/.bash_profile export AIRFLOW_HOME=/home/admin/program/airflow source ~/.bash_profile #一定不要忘 或者干脆直接执行 [admin@test-hadoop01 ~]$ export AIRFLOW_HOME=/home/admin/program/airflow 然后初始化(因为我们是在虚拟环境进行的所以首先要进入虚拟环境,前提是你的airflow已经安装) [admin@test-hadoop01 airflow_venv]$ pwd /home/admin/program/airflow_venv [admin@test-hadoop01 airflow_venv]$ source bin/activate (airflow_venv) [admin

Airflow Python Unit Test?

。_饼干妹妹 提交于 2019-12-02 21:17:15
I'd like to add some unit tests for our DAGs, but could not find any. Is there a framework for unit test for DAGs? There is an End-to-End testing framework that exists but I guess it's dead: https://issues.apache.org/jira/browse/AIRFLOW-79 . Please suggest, Thanks! Test your operators like this: class TestMyOperator(TestCase): def test_execute(self): dag = DAG(dag_id='foo', start_date=datetime.now()) task = MyOperator(dag=dag, task_id='foo') ti = TaskInstance(task=task, execution_date=datetime.now()) result = task.execute(ti.get_template_context()) self.assertEqual(result, 'foo') Source

Can a failed Airflow DAG Task Retry with changed parameter

折月煮酒 提交于 2019-12-02 20:46:57
问题 With Airflow, is it possible to restart an upstream task if a downstream task fails? This seems to be against the "Acyclic" part of the term DAG. I would think this is a common problem though. Background I'm looking into using Airflow to manage a data processing workflow that has been managed manually. There is a task that will fail if a parameter x is set too high, but increasing the parameter value gives better quality results. We have not found a way to calculate a safe but maximally high