• airflow的集群部署


    如果你是在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@test-hadoop01 airflow_venv]$ airflow initdb 

    如果最后出现done那么就是成功的,否则就是失败,具体原因一般就是缺少各种包,这个过程需要你自己克服

    初始化完成以后

    airflow这个目录就会出现在你预先设置的家目录下

    这个时候你需要进行最终要的配置工作

    cd  $AIRFLOW_HOME
    
    $vim airflow.cfg

    (这是一个很简单的过程,我看网上有很多部署感觉好难,可能是我的环境比较完整所以部署过程会方便很多)

    我部署的时候的主要报错就是连接mysql的过程所以主要的部署就以下几个参数

    sql_alchemy_conn  数据库连接方式
    
    broker_url   队列的存储
    
    result_backend  状态的存储
    
    sql_alchemy_conn = mysql+mysqldb://airflow:Caocao1818.cn@test-hadoop01:3306/airflow
    
    broker_url = sqla+mysql://airflow:Caocao1818.cn@test-hadoop01:3306/airflow
    
    result_backend = db+mysql://airflow:Caocao1818.cn@test-hadoop01:3306/airflow
    
    values的构成是airflow:Caocao1818.cn@test-hadoop01:3306/airflow
    
    第一个airflow是用户名
    
    Caocao1818.cn是密码
    
    test-hadoop01mysql所在库的机器名
    
    airflow是mysql中的库名
    
    airflow的用户名和airflow的库名都需要你自己提前创建

    这三个部署完基本上能保证你的airflow的web能启动了

    下面给你一个web的启动脚本

    #!/bin/bash
     source /home/admin/program/airflow_venv/bin/activate  #启动进入虚拟环境
     export AIRFLOW_HOME=/home/admin/program/airflow

    确定家目录 exec /home/admin/program/airflow_venv/bin/airflow webserver 执行web命令

    启动成功以后启动schedule

    #!/bin/bash
    source /home/admin/.bash_profile
    source /home/admin/program/airflow_venv/bin/activate 
    export AIRFLOW_HOME=/home/admin/program/airflow
     exec /home/admin/program/airflow_venv/bin/airflow scheduler

    最后启动worker

    #!/bin/bash
    source /home/admin/.bash_profile
    source /home/admin/program/airflow_venv/bin/activate 
    export AIRFLOW_HOME=/home/admin/program/airflow
    exec /home/admin/program/airflow_venv/bin/airflow worker

    启动到这你就成功一半了。

    如果你有其他机器需要启动worker那么你需要把刚刚这个主节点的airflow.cfg   sz下来然后上传到其他节点的airflow路下  如果你不知道在哪,用find -name airflow命令搜索一下

    然后执行 启动worker的脚本

    #!/bin/bash
    source /home/admin/.bash_profile
    source /home/admin/program/airflow_venv/bin/activate 
    export AIRFLOW_HOME=/home/admin/program/airflow
    exec /home/admin/program/airflow_venv/bin/airflow worker

    如果以上步骤都执行完毕,那么部署完成了,恭喜啦!!!!!

     airflow的参数大全简介:

    https://www.cnblogs.com/skyrim/p/7456166.html

  • 相关阅读:
    js 日期2015/12/22/16/45替换2015-12-22 16:45格式
    正则匹配多行内容
    js fs read json 文件json字符串无法解析
    未能加载文件或程序集“Enyim.Caching”或它的某一个依赖项。未能验证强名称签名
    二叉树、多叉树子路径遍历
    p点到(a,b)点两所在直线的垂点坐标及p点是否在(a,b)两点所在直线上
    System.Net.Sockets.Socket SendAsync System.ObjectDisposedException: Cannot access a disposed object.
    一个误解: 单个服务器程序可承受最大连接数“理论”上是“65535”
    如何用 PyCharm 调试 scrapy 项目
    c或c++的网络库
  • 原文地址:https://www.cnblogs.com/xuziyu/p/11767656.html
Copyright © 2020-2023  润新知