【问题标题】:Google Cloud Composer taking too long to install dependenciesGoogle Cloud Composer 安装依赖项的时间过长
【发布时间】:2019-10-23 07:10:32
【问题描述】:

我在一个环境中关注 Google Cloud Composer 的文档到 install Python dependencies from PyPI。我使用此命令从需求文件安装库:

$ gcloud composer environments update $ENV_NAME \
    --update-pypi-packages-from-file requirements.txt \
    --location us-east4

这只是一个测试,这个需求文件只有 4 个库要安装,但是执行这个命令需要 20 多分钟才能完成。所以我尝试使用用户界面并从那里安装一个包,但花费的时间几乎相同。

有些东西对我来说没有意义,当我执行这些命令时,环境进入“更新状态”,需要几分钟才能再次准备好。为什么 Composer 需要这么长时间来执行 pip install

有没有人遇到过类似的问题?在 Composer 中如何管理 Python 依赖项的安装?

【问题讨论】:

  • 您尝试安装哪些依赖项?其中一个或多个可能需要从源代码编译。
  • 它们是像requestsurllib3这样的“普通包”,我尝试在本地安装它们,速度非常快。

标签: python google-cloud-platform airflow pypi google-cloud-composer


【解决方案1】:

Cloud Composer 环境需要如此长时间才能更新的原因是该服务在 Google Kubernetes Engine 和 App Engine(用于网络服务器)内的分布式设置中部署了 Airflow。这意味着该服务必须负责构建/重建容器映像、将它们重新部署到您的集群、更新网络服务器应用程序等。

虽然这确实意味着安装包或更新环境可能需要一些时间,但这正是 Composer 易于使用的原因 - 即使您有数十个工作节点,也可以为您提供相当于 pip install 的一次性.

【讨论】:

  • 好吧,我认为这很有意义。就像您说的那样,对于具有数十个工作节点的大型 Compose 环境。但是对于 Composer 上处于“开发阶段”的小型部署,每次我需要新的依赖项时都重新构建可能非常烦人。
  • AFAIU 各种更新操作大约需要 20 分钟,我有 4 个用于幂等部署:clean-configs、update-configs、clean-pypi-packages 和 update-pypi -包。所以它大约需要 80 分钟,这不仅仅是烦人......
  • 也许这将有助于提供一种方法来提供这些变量的快照以一次应用它们,但看起来到目前为止还没有这样的功能。
【解决方案2】:

Google Cloud Composer 需要时间来根据底层节点更新应用引擎。对我来说,使用 PYPI 安装一个特定的设备大约需要 20 分钟,有 3 个节点。

如果您可以一次安装所有必需的依赖包,也将花费相同的时间。

【讨论】:

    猜你喜欢
    • 2015-01-24
    • 2017-06-28
    • 2015-10-27
    • 2017-09-18
    • 2018-09-11
    • 2017-03-06
    • 2013-11-04
    • 2017-10-31
    • 1970-01-01
    相关资源
    最近更新 更多