【问题标题】:Startup script doesn't run Airflow webserver VM GCP启动脚本不运行 Airflow 网络服务器 VM GCP
【发布时间】:2021-11-15 19:47:02
【问题描述】:

我正在尝试在启动时使用启动脚本在 VM 中自动运行气流网络服务器和调度程序,只需遵循此处的文档:https://cloud.google.com/compute/docs/instances/startup-scripts/linux。这是我的脚本:

export AIRFLOW_HOME=/home/name/airflow
cd /home/name/airflow
nohup airflow scheduler >> scheduler.log &
nohup airflow webserver -p 8080 >> webserver.log &

.log 文件已创建,这意味着脚本已执行,但网络服务器和调度程序未执行。

有什么明显的原因吗?

【问题讨论】:

  • 日志怎么说?
  • 顺便说一句。如果您使用 --daemonize flag 运行气流,您可能会更好。然后它将正确关闭所有套接字,重定向 stdout/stdin 并按照“守护程序”程序的通常模式重新编码一个带有进程 ID 的 .pid 文件。
  • @JarekPotiuk 刚刚做了 tail -n 10 /var/log/syslog 并且其中一个日志是: PermissionDenied desc = 调用者没有权限
  • 那么显然你没有权限:) 不知道为什么,但显然你需要更深入地挖掘。这不是气流问题,真的。
  • 我猜是因为该文件是由 root 用户创建的,因此我没有写入权限。但仍在努力想办法解决它

标签: google-cloud-platform virtual-machine airflow airflow-scheduler


【解决方案1】:

我尝试使用document 在 GCP VM 上复制 Airflow 网络服务器启动脚本。

在 GCP VM 上运行 Airflow 网络服务器启动脚本的步骤:

  1. 创建一个服务帐户。以 BigQuery 作业用户角色和 Dataflow 角色以 Dataflow Worker 角色授予对 BigQuery 的最低访问权限。单击添加密钥/创建新密钥/完成。这将下载一个 JSON 文件。

  2. 创建一个 Compute Engine 实例。选择创建的服务帐户。

  3. 安装 Airflow 库。使用 miniconda 创建虚拟环境。

  4. 初始化您的元数据数据库并使用命令注册至少一个管理员用户:

    airflow db init
    
    airflow users create -r Admin -u username -p mypassword -e example@mail.com -f yourname -l lastname
    
  5. 将 8080 端口的 IP 列入白名单。创建防火墙规则并在 GCP 虚拟机实例上添加防火墙规则。现在转到终端并使用命令启动 Web 服务器 气流网络服务器 -p 8080

  6. 打开另一个终端并启动调度程序。

    export AIRFLOW_HOME=/home/acachuan/airflow-medium
    cd airflow-medium
    conda activate airflow-medium
    airflow db init
    airflow scheduler
    
  7. 我们希望 Airflow 在 Compute Engine 启动后立即启动。所以我们可以创建一个 Cloud Storage 存储桶,然后创建一个脚本,上传文件并作为备份保存。

  8. 现在将 Linux 启动脚本从 Cloud Storage 传递到虚拟机。请参阅Passing a startup script that is stored in Cloud Storage to an existing VM。您还可以将启动脚本传递给现有 VM。

注意: PermissionDenied desc = 调用者没有权限意味着您没有足够的权限,您需要向您的项目、文件夹或组织管理员请求访问权限。取决于您尝试导出的资产。要访问由 root 用户创建的文件,您需要读取、写入或执行权限。参考File permissions

【讨论】:

    猜你喜欢
    • 2014-01-01
    • 2015-06-11
    • 2019-01-15
    • 2015-06-07
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多