我安装了它并运行了一个HivePartitionSensor来测试hive元存储连接。它抛出了一个异常,告诉我不能连接到hive元存储
thrift.transport.ttTransport.ttTransportException:无法连接到
,但我确信主机和端口是正确的。我发现mysql返回的端口是长类型的,比如9083L,所以我将hive_hooks.py中的源代码从
socket = TSocket.TSocket(ms.host, ms.port)
到
只要将ms.port转换为i
标签: Airflow
apache-airflowairflow-scheduler
嗨,我还是个新手。我想知道气流如何连接到火花?
我有一个具有不同帐户(或配置文件)的服务器来访问Spark群集。我想知道气流是否有固定的轮廓来连接火花?或者它遵循用户配置文件
此外,是否可以为气流中的用户设置不同的访问权限?
例如,有权访问Spark(或hdfs)中位置A的用户A只能运行与位置A相关的任务(因此无法从位置B运行任何作业)
提前感谢。您可以在Airflow repo的conrtib文件夹中查看社区贡献的SparkSubmitOperator。基本上,该操作符通过python运行sp
标签: Airflow
apache-airflowairflow-scheduler
我有一个控制器DAG(SampleController),它将调用目标DAG(SampleWait),两者的开始日期都是datetime.now(),计划间隔都是None
我从命令行或Web服务器UI触发控制器DAG,它将在我的系统时区中立即运行,执行日期为“立即”。在截图中,时间是17:25——这不是我的“真实”UTC时间;这是我的当地时间
但是,当为目标创建触发的DAG运行时,执行日期将“调整”为UTC时间,无论我如何尝试操纵开始日期-它将始终在未来(此处为21:25)。在我的例子中,它是四
我可以使用BashOperator运行Spark作业,但我想使用SparkSubmitOperator独立模式运行SparkSubmitOperator
我的DAG用于SparkSubmitOperator和堆栈跟踪
查看源代码,它似乎总是设置master=warn。如何通过Spark独立主URL更改master属性值?我可以设置哪些属性以独立模式运行Spark作业?您可以使用Airflow Web UI创建新连接或更改Spark默认连接
母版可以是本地,纱线,spark://HOST:P
我的用例是使用气流控制跨微服务的许多预定作业。我尝试的解决方案是将airflow用作集中式作业调度器,并通过http调用触发作业。其中一些作业将运行很长时间,例如超过10分钟或最多1小时
我如何定期检查这些作业的状态?如果远程任务已完成,但不知道作业是否成功,该怎么办?我是否可以将作业完成事件发布到kafka,并使airflow在kafka上侦听以获取作业状态?使用airflow和您的微服务,您可以通过多种方式实现这一点。通常,您需要使用一个传感器,这是类似于此的合适气流对象。首先,请查看并四处
我想知道是否有一个简单的API调用,我可以列出所有当前运行的气流作业
在仪表板中,有一列列出了所有当前活动的作业。我想知道我是否可以通过API调用获得这些信息 简而言之:没有。Airflow确实有一个实验性的REST API,但是您要进行的调用没有端点。有关支持的端点的列表,请参见(官方文档中也提到了其中一些端点:)
据我所知,气流2的路线图上有一个合适的非实验性REST API。试着从中得到提示;这里和方法可能很有意思,方法之一是:转到Apache Airflow UI->Data Profi
我正试图按照这里的文档在我的Composer环境中运行一个简单的KubernetesPodOperator
由于缺少用户“默认”的权限,气流运行时失败
也就是说,如何正确地创建环境或设置默认用户权限以使此代码正常工作
达格:
price\u analysis=KubernetesPodOperator(
任务_id='price-analysis',
name='price-analysis',
namespace='default',
image='bash',
图像\u pull\u pol
有没有办法指定一个任务只能并发运行一次?那么在上面的树中,DAG并发性为4,气流将启动任务4,而不是任务2的第二个实例
这个DAG有点特殊,因为任务之间没有顺序。这些任务是独立的,但目的相关,因此保留在一个DAG中,以便创建过多的单任务DAG
max\u active\u runs为2,dag\u concurrency为4。我希望它启动所有4个任务,并且如果上一次运行中完成了相同的任务,则只在下一次运行中启动一个任务。我可能误解了您的问题,但我相信您希望在下一次运行中开始任务之前,在一次运行中
在airflow中,默认配置似乎是跨天(从一天到下一天)并行排列任务
然而,如果我将这个过程加速,比如说,两年,那么气流dag将首先在所有天中通过初步过程,而不是从开始到结束同时向前走4天
如何切换airflow以根据深度优先范式而不是广度优先范式执行任务?尝试使用airflow.cfg中的并行性和最大活动运行次数参数以及DAG中的并发性参数进行切换。我遇到过类似的情况。我使用了以下技巧来实现深度优先行为
将DAG的所有任务分配给a(插槽数量有限,例如20-30个)
设置为所有上述任务
解
如何仅在Apache服务中启用TLSv1.2。根据组织的安全策略,需要对支持SSL/TLS通信的连接使用TLSv1.2。我在文档中找不到任何东西表明可以配置安全连接使用的底层SSL协议并禁用3DES套件密码(SWEET 32漏洞)。请共享有助于我的文档?为Gunicorn设置环境变量(Airflow使用Gunicorn for webserver):
对于TLS 1.2:
GUNICORN_CMD_ARGS="--ssl-version=5"
如果还想更改密码,可以将其添加到上述环境变量中
例
我正在尝试创建一个空列表作为变量,并希望在脚本中使用它。但我无法创建一个空列表作为变量?我不知道我们是否可以在气流中进行此操作?是的,您可以。您可以通过UI或使用气流变量cli添加:
气流变量-sa“[]”
当然可以。您可以尝试将其设置为Admin>Connections。
如果你想叫它,这里有一个例子
from airflow.models import Variable
foo = Variable.get("Var1")
使用SequentialExecutor运行的dag(v1.10.5)现在有许多(尽管不是全部)简单任务,在使用LocalExecutor运行时,这些任务在没有任何日志信息的情况下失败,并且并行性最小,例如
#气流的总体任务并发限制
并行度=8#,与lscpu显示的内核数相同
#每个dag的最大任务数
dag_并发=2
#可在气流上运行的给定dag的最大实例数
每个dag的最大活动运行次数=1
#每个辅助线程/核心使用的最大线程数
最大螺纹数=2
#总可用内存量为40G
#CPU:8(插座4个
直到我创建了我的气流DAG,如下所示:
dag = DAG(...)
但在多个教程和课程中,我看到他们使用了。。。像这样的条款:
with dag as DAG(...):
# Code that will use the dag variable.
我猜这样,在调度程序执行dag的代码后,dag实例将被销毁,但这样做真的有好处吗?我找不到任何有关这方面的文档。是的
如果你明白…的作用,那么你应该明白它对气流生态系统的影响其实没有什么不同
具体地说,它确保了非托管资源(在本例中是DA
我正在使用最新的气流。我运行了一个dag文件,它只执行打印和休眠命令10秒钟
一旦dag成功运行50次,它将自动停止。当我重新启动web服务器、调度程序和工作程序时,它会再次运行50分钟。我这样做了两次,结果都一样
日程安排有点问题
最可能的原因是计划由具有特定开始日期和结束日期参数的追赶任务或回填任务组成
有关更多详细信息,请参见dag=dag('900',default_args=default_args,#max_active_runs=1,description='A simple tu
我正在使用airflow计划一些任务,当上游任务失败时,我需要下游任务发送错误电子邮件通知。我使用下面的示例进行测试
dag_alert_task_callback = DAG(
'dag_alert_task_callback',
default_args=default_args,
schedule_interval=None
)
t1 = PostgresOperator(task_id='create_schema',
其中说“用户可以使用config_file参数指定kubeconfig文件,否则操作员将默认为~/.kube/config。”我的问题是,我是否有一个本地定制的kubernete配置文件放在哪里?我可以简单地指定config_file=“~/myconfig.yml”并且Airflow cluster会知道在哪里可以找到它吗?在Kubernetes内部,通常不会,你是如何部署的?使用?
我们是否可以在每次运行dag并从所有任务访问该文件时创建唯一的文件名?
我尝试创建全局变量(output_filename)并向其附加时间戳。
但当我在任务中访问该文件名时,每个任务在计算每个任务中的时间戳时都会生成不同的文件名。
下面是示例代码:
table_name = 'Test_ABC'
start_date = datetime.now()
cur_tmpstp = start_date.strftime('%Y_%m_%d')
output_filename = table_nam
我使用此图像设置了一个SFTP站点:
我能够从承载SFTP的本地计算机、正在运行的服务器(使用SFTP命令)以及带有WinSCP的Windows计算机连接到这个
但是,当我使用正确的用户名和密码在webserver UI中创建连接时,我的dag总是有一个错误,指出密码不正确(不可能)
然后我尝试删除密码,只生成密钥。这在我所有的机器上都有效,但是如果说密钥不是有效的OPENSSH密钥,我的任务就会失败
extra='{“密钥文件”:“/home/afflow/afflow/.ssh/id\u
我们在airflow中面临一个问题,它多次执行相同的查询
我们检查了当时只有一个DAG实例正在运行。
在web UI中,选中了已运行的任务实例,但它只显示一个任务日志
总共有4个工作节点,在检查工作节点日志后发现,
工作节点1:此工作节点在01.00时执行的DML任务
工作节点2:未执行DML,但在01.00时仅排队尝试1
工作节点3:01.00时此节点上没有运行任务
工作节点4:此工作节点在01.00执行的相同DML任务
工作节点1和节点4同时向服务器提交了相同的DML
有没有办法避免不同工作
我是气流新手,我写了一个简单的SSHOperator来学习它是如何工作的
default_args = {
'start_date': datetime(2018,6,20)
}
dag = DAG(dag_id='ssh_test', schedule_interval = '@hourly',default_args=default_args)
sshHook = SSHHook(ssh_conn_id='testing')
t1 = SSHOperator(
task_id=
我正在开发一项功能,该功能需要安排气流作业的间隔。我没有亲自编写代码来解析DAG文件中的cron表达式,而是一直试图在元数据数据库中找到解析的schedule_interval值,但没有用
有人能给我一个指针,指示气流是如何解析schedule_interval表达式的(例如,位于的文件),以及它在哪里存储解析的值(如果存储了值)
编辑:
上面的schedule_interval表达式是DAG参数schedule_interval,如中所示:
dag=dag(
“教程”,默认参数=默认参数,计划
上次我忘了包括codesamples,重新发布
我在尝试设置气流时遇到了一些问题。我一直在尝试使用一个简单的SQL脚本来遵循一个非常基本的DAG设置。我遇到了三个问题:
我能够运行一个基本的DAG(我可以在GUI中看到DAG及其运行对数据库的影响),但似乎DAG不考虑schedule\u interval参数。我试图让DAG每小时运行一次,但无论我做了什么更改,DAG都会按照每天的计划运行,这也反映在我从GUI中看到的内容中
此外,如果将DAG作为计划运行的一部分运行,则尽管DAG能够顺利运行其
我有两个DAG,它们创建临时AWS EMR集群,然后在完成运行后终止它们。我想创建一个每天运行的新DAG,并生成当天创建的每个EMR集群的报告,以及它运行的时间,并通过电子邮件将此报告发送给不同的人
我需要存储EMR集群ID值,以便我的报告生成器具有当天每个EMR集群ID的列表。我想知道我是否可以修改气流变量来存储这些信息,例如,我可以有一个气流变量,其中键是“EMR_CLUSTERS”,值是一个JSON字符串,包含我想要记录的所有数据。或者我可以使用已经被用来写入新表的Airflow元数据库来
我正在使用TriggerDagRunOperator,以便一个控制器DAG可以触发目标DAG。但是,一旦控制器DAG触发目标DAG,目标DAG将切换到“正在运行”,但其所有任务都不会被调度。我希望在控制器DAG触发目标DAG后立即安排目标DAG的任务
#控制器DAG可调用
def条件触发(上下文、dag运行对象):
条件参数=上下文['params']['condition\u param']
如果条件参数:
返回数据运行对象
一无所获
#目标DAG的可调用
def say_hello():
打
当有任务正在运行时,Airflow将弹出一个通知,说明计划程序似乎没有运行,并一直显示,直到任务完成:
The scheduler does not appear to be running. Last heartbeat was received 5 minutes ago.
The DAGs list may not update, and new tasks will not be scheduled.
实际上,调度程序进程正在运行,我已经检查了该进程。任务完成后,通知将消失,一切恢复
我在Kubernetes吊舱上遇到了几种不同的安排气流任务的方法,但我还没有弄清楚它们之间的区别,以及何时我应该更喜欢一种样式而不是另一种样式
在上下文中,我的本地气流测试实例被配置为使用kubernetesecutor,我正在本地Kubernetes集群上调度这些任务
第一种风格(坦白地说,我没想到这会奏效——是什么
是否用作基础图像?)
第二种风格。我遇到了这个
第三种风格是通过KubernetesPodOperator这似乎是最灵活的(您可以指定任何带有任何参数的容器),所以这可能是唯一的
标签: Airflow
airflow-schedulerairflow-operator
我想在失败时将runbook url附加到airflow电子邮件警报。默认的电子邮件发送其他有用的信息,如气流日志链接,我不想失去它。我怎样才能做到这一点
我探索了电子邮件运营商,但似乎它创建了一个新的电子邮件,现在我收到了两封电子邮件,一封是dag的,失败了,另一封来自电子邮件运营商
有办法吗
failure_email = EmailOperator (
task_id='failure-email',
name='failure-email'
我知道对于PythonOperator/bash操作符我们可以使用Xcom进行通信
e、 g
但是,我想知道如何在运行时为自定义操作符访问xcom
我的操作员如下所示:
class ECHOXOperator(BaseOperator):
@apply_defaults
def __init__(self, x, *args, **kwargs):
self.x = x
super(ECHOXOperator, self).__init__(*ar
任何人都可以建议我解决这个问题吗我有3个dag,我想在完成2个并行dag后触发dag
即使它们同时启动,这两个并行DAG也将在不同的时间结束。一个选项可以是使用外部任务传感器。
等待不同的DAG或不同DAG中的任务完成一段时间
具体执行日期
在第三个DAG(C)中,需要两个传感器,每个传感器对应一个从属DAG(A和B)
传感器任务A>>任务C
传感器任务B>>任务C为什么不将dag合并为一个dag?
执行时,气流调度器正在继续打印以下消息,并且任务未被拾取
[2020-02-21 09:21:20,696] {dag_processing.py:663} WARNING - DagFileProcessorManager (PID=11895) exited with exit code -11 - re-launching
[2020-02-21 09:21:20,699] {dag_processing.py:556} INFO - Launched DagFileProcessorMa
标签: Airflow
airflow-schedulerairflow-operator
我想给我的DAG添加一个结束日期,但是,当我运行特定的DAG时,我得到了上面的错误。这看起来很奇怪,因为我可以用相同的格式更新startdate,但不能更新enddate
下面是我的代码示例
default_args = base_args.copy()
default_args['end_date'] = datetime(2020, 5, 5)
dag = DAG(
dag_name,
catchup=True,
default_args=default_args,
标签: Airflow
airflow-schedulerairflow-operator
我需要一些关于设置带气流的刮刀的建议
问题是,假设我有一个网站刮有一些3k链接。我想把它分成3批,每批1k,所有这些都必须在不同的日子运行
在这种情况下,什么是最好的方法?如果我们能做一些条件参数基调度。例如,我有excel作为我的数据源,所以在我可以提到的每个url旁边,比如批次号。。。现在,如果我们可以采用不同的计划,我们可以根据批次号进行安排吗
希望这有点道理。请建议问题不清楚您是否可以添加更多详细信息,作业第一次运行时是否必须处理第一批等,为什么不使用3个不同的DAG和3个不同的计划?问
问题摘要:
我需要使用xcom从一个SSHOperator获取标准输出
筛选一些行并获取输出值,以便将它们传递给另一个SSHOperator
不幸的是,我在气流文档中没有找到任何有用的东西
代码示例:
import airflow
from airflow.operators.dummy_operator import DummyOperator
from airflow.contrib.operators.ssh_operator import SSHOperator
default_a
我正试图通过更改默认的\u登录文件并更改aiffort.cfg来创建自己的身份验证配置。但是当我启动Web服务器时,没有任何变化(IAM使用RBAC UI)
在中,我们可以找到prev\u execution\u date,根据文档,它返回
上一次执行日期(如有)
第一次执行时会发生什么?它是否返回空字符串?它是否返回一个None?这有文件记录吗
提前谢谢 如果是第一次执行,prev\u execution\u date将返回计划DAG的DAG的(execution\u date-scheduler\u interval)
如果手动触发Dag,它将返回执行日期
我最近完成了一个全新的气流设置,它有一个示例DAG。我试图处决他们,但没有任何效果
我用它来安装气流
尝试执行以下操作。它应该在以下方面发挥作用:
检查计划程序和Web服务器是否已启动
屏幕截图显示DAG未处于打开状态。计划程序在关闭状态下无法识别
请将第一次执行标记为成功,并触发第二次,它应该执行
1.一切都好了,2.我想手动触发,我不认为这是个问题。3.尝试此技巧:(请在将dag启用为打开状态后尝试触发dag一次。当dag处于打开关闭状态时,任务将不会启动。
我正在遵循并运行以下命令:
$ ./breeze build-image --production-image --additional-extras "jira"
不幸的是,我得到了以下错误:
+ ./scripts/docker/install_mysql.sh dev
gpg: keybox '/tmp/tmp.acAI8eVGuD/pubring.kbx' created
gpg: keyserver receive failed: Address family n
我正在使用设置气流安装中的用户-
airflow create_user -r Viewer -u wsmith -f Will -l Smith -p xxxx -e xxxxx@gmail.com
现在,如果我想将角色从查看器更改为Admin,我该怎么做
我唯一的选择是通过用户界面吗?我可以直接更新数据库表吗?您可以通过后端数据库表进行更新
在气流模式中:
select * from AB_ROLE;
--这将列出您拥有的所有可用角色
update AB_USER_ROLE
set R
标签: Airflow
directed-acyclic-graphs
我有一个DAG需要重新编译不同品牌的客户列表。使用两个参数brand和listtype调用脚本
我需要品牌同时运行,但是列表类型依赖于前面的列表类型,但是我不知道如何在循环中实现这一点。你能帮我吗
BrandsToRun = ['A', 'B', 'C']
ListTypes = ['1', '2', '3']
# Defining the DAG
#########################################################################
我创建了两个自定义操作符。PushOperator负责使用xcom_push将随机数写入key=batch_id,PullOperator负责使用xcom_pull从上游PushOperator任务中检索key=batch_id的值
my_operator.py
随机导入
从airflow.models导入BaseOperator
从afflow.utils.decorators导入应用默认值
类运算符(基本运算符):
@应用默认值
定义初始化(self,*args,**kwargs)->无:
将气流更新为1.9后,所有变量都被创建为加密变量
是否可以禁用加密?1-Croods方式
from airflow.models import get_fernet
from airflow.models import Variable
var_to_decryp = Variable.get("var_name",deserialize_json=True)
fernet = get_fernet()
decryp_value = fernet.decrypt
标签: Airflow
google-cloud-mlgoogle-cloud-composer
我已经能够使用gcloud ml engine sumbit作业CLI成功地进行培训。然后,我从success作业的控制台培训输入中复制了“args”值
"args": [
"--output_dir=gs://composer-models/flowers/trained_cnn",
"--train_steps=1000",
"--learning_rate=0.01",
"--batch_size=40",
"--model=cnn",
"-
我最近遇到了一个严重的错误,气流抛出以下堆栈跟踪(我的**kwargs确实包含作业流id)
文件“”,第219行,在已删除帧的调用中
文件“/mnt/aiffort/dags/zanalytics aiffort/src/main/mysql\u import/dags/mysql\u import\u dag.py”,第23行,在
sync_dag_builder.build_sync_dag()
文件“/mnt/afflow/dags/zanalytics afflow/src/main/m
我想为spark\u默认值生成conn\u id。我正在k8s上运行我的aiffair,我想使用spark master动态生成conn_id,spark master是在同一命名空间中运行的另一个容器
有没有办法动态生成conn_id:类似于:
环境变量
或者使用SparkSubmitOperator本身编写并生成conn\u id
这是我的dag代码:
from airflow import DAG
from airflow.contrib.operators.spark_submit
我使用的是气流1.10.5。似乎找不到关于如何使用Elasticsearch设置远程日志记录的完整文档或示例。我看到了,但没用。我正在尝试将气流(非任务)日志写入ES。据我所知,ES日志处理程序只能从ES读取。您必须设置日志以打印到文件中,然后使用filebeat之类的工具将文件内容发布到ES,然后Airflow可以将其读回
将日志写入Elasticsearch
气流可配置为读取任务
从Elasticsearch记录日志,并可选择将日志写入
标准或json格式。这些日志可以在以后收集并保存
使
我们正在尝试使用snowflake sqlalchemy库(最新版本)连接到snowflake实例
雪花实例的证书似乎与主机不匹配。
有没有办法解决这个问题
如果有必要的话,这是一个试用帐户。我注意到了europe-west4。那是GCP账户吗?如果是这样,我认为您的URL/主机名应该是这样的,但是您可以在UI中再次检查:
XXXXX.europe-west4.GCP.snowflakecomputing.com我注意到europe-west4。那是GCP账户吗?如果是这样,我认为您的URL/主
我正在尝试将气流设置为systemd服务。此操作失败,每次都出现以下错误:
airflow[28159]: args.func(args)
airflow[28159]: File "/opt/py37/lib/python3.7/site-packages/airflow/cli/cli_parser.py", line 48, in command
airflow[28159]: return func(*args, **kwargs)
airflow
使用Airflow CLI时是否有常规配置或任何开关来打开/打开冗余?我可以看到使用python/java时会出现“冗长”的情况,但我想知道在CLI中运行命令时是否可以获得更多信息
我发现使用--verbose或-v,但它似乎不适用于气流检查数据库,例如气流检查数据库--verbose不提供额外信息
我不明白过去指定DAGstart\u date有什么用。我读过关于追赶和回填的书,但我还是不明白。在什么情况下,我希望指定过去的开始日期?对于计划运行,气流调度器在运行DAG之前等待间隔时间的完成
例如,假设您希望每月运行dag,并将其计划为0 3 11**,这意味着在每月11日凌晨3点运行dag
现在,假设您在2021年1月10日部署了dag,那么您希望它在第二天运行。但实际上,气流直到下个月(2021年2月11日)才会触发DAG。因此,气流将等待大约一个月,然后才触发您的DAG,该DAG本应
标签: Airflow
directed-acyclic-graphsorchestration
是否可以编排依赖于其他控制台应用程序的网络控制台应用程序。是否有任何操作员可以调用.net控制台应用程序
上一页 1 2 ...
4 5 6 7 8 9 10 ...
下一页 最后一页 共 40 页