airflow 1.10.1 简述及实例(ssh_script_hive_main_sub)

31 篇文章 0 订阅
24 篇文章 0 订阅

airflow 1.10.1 简述及实例(ssh_script_hive_main_sub)

概述

结果示例

在这里插入图片描述

安装(采坑)

示例Code以及操作

示例操作

  • airflow -h/version
    • 查看帮助,记住这个就好了
    • 其参数解析,可作为源码参考
 parser = CLIFactory.get_parser()
    args = parser.parse_args()
    args.func(args)
  • airflow list_dags
    • 列出集群的dag
  • airflow list_tasks ssh_run_test
    • 列出ssh_run_test dag的任务
  • airflow test ssh_run_test print_date 20190121
    • 测试ssh_run_test dag中的print_date任务示例
  • airflow test ssh_run_test ssh_run_script 20190121
    • 测试ssh_run_test dag中的ssh_run_script任务示例
  • airflow backfill ssh_run_test -s 20190120 -e 20190121
    • 测试ssh_run_test dag在指定时间内的任务调度

示例Code(https://github.com/undergrowthlinear/learn_python/tree/master/test/practice/airflow/example)

  • 常用operator简介,参看 https://www.jianshu.com/p/6f5e1447c8fb
  • 对于LocalExecutor方式,在airflow.cfg的同级建立dags目录,将相关py文件方式在其目录下
    • python dags/python_run_test.py 即可提交调度,然后使用上面的命令进行测试
  • script_run_test.py
    • 脚本的命令,注意最后的空格,必须要保留,如果使用Jinja template,最后的空格则不用,airflow机制如此(空格其实是用于转义)
  • python_run_test.py
    • 支持python函数的回调
  • main_sub_dag_test.py
    • 支持父子不同dag内嵌
  • ssh_run_test.py
    • 需指定conn_id,在web界面的admin/connections下面进行配置
  • hive_cli_run_test.py
    • hive_cli_conn_id在web界面的admin/connections下面进行配置,同时本地需有hive-cli支持
  • hive_server_run_test.py
    • hive_cli_conn_id在web界面的admin/connections下面进行配置,使用jdbc进行连接hive-server
    • 支持队列设置(mapred_queue)/参数传递(hiveconfs)/数据库设定(schema)/hql文件支持
  • short_circuit_run_test.py
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我们可以看出这里使用的是MySQL数据库而不是Postgres数据库。因此,下面提供的是将Airflow中的MySQL数据库数据导入到Hive的方法: 1.首先需要在Hive中创建一个数据库,例如我们创建一个名为airflow_hive_db的数据库。 2.在Airflow中安装Hive Hook和JDBC Hook,可以使用以下命令进行安装: ```shell pip install apache-airflow[hive,jdbc] ``` 3.在Airflow中创建一个DAG,用于将MySQL数据库中的数据导入到Hive中。以下是一个简单的DAG示例: ```python from airflow import DAG from airflow.providers.jdbc.hooks.jdbc import JdbcHook from airflow.providers.apache.hive.operators.hive import HiveOperator from datetime import datetime default_args = { 'owner': 'airflow', 'depends_on_past': False, 'start_date': datetime(2022, 1, 1), 'email_on_failure': False, 'email_on_retry': False, 'retries': 1 } dag = DAG('mysql_to_hive', default_args=default_args, schedule_interval=None) mysql_hook = JdbcHook(jdbc_conn_id='mysql_conn_id') hive_hook = JdbcHook(jdbc_conn_id='hive_conn_id') mysql_table = 'mysql_table_name' hive_table = 'hive_table_name' create_hive_table = HiveOperator( task_id='create_hive_table', hql=f'CREATE TABLE IF NOT EXISTS {hive_table} (col1 STRING, col2 INT)', hive_cli_conn_id='hive_conn_id', dag=dag ) insert_into_hive_table = HiveOperator( task_id='insert_into_hive_table', hql=f'INSERT INTO TABLE {hive_table} SELECT col1, col2 FROM {mysql_table}', hive_cli_conn_id='hive_conn_id', dag=dag ) create_hive_table >> insert_into_hive_table ``` 在上面的代码中,我们首先导入了所需的库和模块,然后定义了一个DAG。接下来,我们创建了两个JdbcHook,一个用于连接MySQL数据库,另一个用于连接Hive数据库。然后,我们指定了要从MySQL中导入数据的表和要将数据插入的Hive表。接下来,我们使用HiveOperator创建了一个Hive表,并使用INSERT INTO语句将MySQL表中的数据插入到Hive表中。 4.在Airflow中配置MySQL和Hive连接。在Airflow的web UI中,转到Admin -> Connections,然后单击“Create”按钮。在弹出的对话框中,输入连接的名称,例如“mysql_conn_id”或“hive_conn_id”,然后选择连接类型(MySQL或Hive),并输入连接的详细信息,例如主机名、端口、用户名和密码等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值