我正在尝试构建一个 Oozie 工作流来每天执行一个需要特定库才能运行的 python 脚本。
目前,我在集群的一个节点(由 11 个节点组成)上创建了一个 python 虚拟环境(使用 venv)。通过 Oozie,我看到可以使用指定包含虚拟环境的节点的 SSH 操作来运行脚本。或者,可以使用 Shell Action 来运行 python 脚本,但这需要在将执行 shell 的节点(任何集群节点)上创建具有相同库依赖关系的虚拟环境。
我想避免共享密钥或配置所有集群节点以使这成为可能,并查看我发现本节讨论使用 Docker 容器启动应用程序的文档,但在我的集群的 Hadoop 版本中,此功能是实验性的且不完整(Hadoop 3.0 .0)。我想如果你可以从 shell 启动 Docker 容器,你应该能够从 Oozie 启动它们。
所以我的问题是:有人尝试过吗?以这种方式使用docker是一个技巧吗?
我遇到了这个问题,但到目前为止 2019/09/30 还没有具体的答案。
更新:我尝试这样做,并且它有效(您可以在我对这个问题的回答中找到更多信息)。我仍然想知道这是否是正确的方法。