TensorFlow on YARN (TonY) 是一个构建在 Hadoop YARN 上的 TensorFlow 框架。
TonY 可以将单节点或分布式 TensorFlow 训练作为 Hadoop 应用程序运行。此原生连接器与其他 TonY 功能一起,旨在可靠,灵活地运行 TensorFlow 训练。
在 YARN 的 TonY 上运行 TensorFlow
TonY 的架构
TonY 主要包含三个要素:Client、ApplicationMaster 和 TaskExecutor。运行 TonY 作业的端到端处理过程如下:
用户向 Client 提交 TensorFlow 模型训练代码、参数及其 Python 虚拟环境(包含 TensorFlow 依赖)。
Client 设置 ApplicationMaster(AM)并将其提交给 YARN 集群。
AM 与 YARN 基于用户资源请求的资源管理(Resource Manager)进行资源协商(参数服务器及线程、内存和 GPU 的数量)。
一旦 AM 收到分配,它就会在分配的节点上生成 TaskExecutor。
TaskExecutor 启动用户的训练代码并等待其完成。
用户的训练代码启动,TonY 定期在 TaskExecutor 和 AM 之间跳动,以检查其活性。