TonY在GCP上的部署:使用Cloud Dataproc运行分布式PyTorch任务
TonY在GCP上的部署使用Cloud Dataproc运行分布式PyTorch任务【免费下载链接】TonYTonY is a framework to natively run deep learning frameworks on Apache Hadoop.项目地址: https://gitcode.com/gh_mirrors/to/TonYTonY是一个能让深度学习框架在Apache Hadoop上原生运行的框架借助Google Cloud Platform (GCP) 的Cloud Dataproc服务我们可以轻松部署分布式PyTorch任务充分利用Hadoop的分布式计算能力。本文将详细介绍如何在GCP上搭建环境并运行PyTorch分布式训练作业。TonY与Cloud Dataproc的完美结合为什么选择TonYTonY作为连接深度学习框架与Hadoop的桥梁解决了分布式训练的资源管理难题。它支持PyTorch、TensorFlow等主流框架能够自动处理集群规格配置、任务生命周期管理和资源调度让数据科学家专注于模型开发而非基础设施管理。Cloud Dataproc的优势Cloud Dataproc是GCP提供的托管Hadoop/Spark服务具有以下特点快速创建和销毁集群按使用付费自动管理集群健康和更新与GCP其他服务如Cloud Storage、BigQuery无缝集成支持自动扩缩容优化资源利用率TonY架构图展示了TonyClient、Resource Manager、TonyAM和Task Executor之间的交互关系以及如何管理分布式训练任务的生命周期前期准备GCP环境搭建创建GCP项目首先需要在GCP控制台创建一个新项目具体步骤可参考GCP官方文档。项目创建后确保已启用结算功能并配置好必要的IAM权限。设置Cloud Storage存储桶执行以下命令创建一个Cloud Storage桶用于存储作业数据和日志export BUCKETyour bucket name gsutil mb gs://${BUCKET}配置Dataproc区域设置默认的Dataproc区域以简化后续命令export REGIONus-west1 gcloud config set dataproc/region ${REGION}一键部署Hadoop集群使用Cloud Dataproc的初始化动作功能我们可以快速创建一个包含TonY的Hadoop集群。以下命令将创建一个包含1个主节点和2个工作节点的集群export CLUSTER_NAMEyour cluster name export DATAPROC_VERSION1.3-deb9 export ZONEus-west1-a gcloud beta dataproc clusters create ${CLUSTER_NAME} --bucket ${BUCKET} \ --subnet default \ --zone ${ZONE} \ --master-machine-type n1-standard-4 \ --num-workers 2 --worker-machine-type n1-standard-4 \ --image-version ${DATAPROC_VERSION} \ --initialization-actions gs://dataproc-initialization-actions/tony/tony.sh \ --enable-component-gateway注意这里使用的Dataproc版本1.3-deb9对应Hadoop 2.9.2是经过验证的稳定版本。初始化动作会自动安装和配置TonY框架及其依赖。集群创建完成后可以通过SSH连接到主节点并使用以下命令验证YARN节点状态yarn node -list运行分布式PyTorch任务了解示例项目结构TonY初始化动作会在集群中创建示例项目目录PyTorch相关文件位于/opt/tony/TonY-samples/ ├── tony-cli-version-all.jar ├── jobs │ └── PTJob │ ├── tony.xml # 作业配置文件 │ └── src │ └── mnist_distributed.py # PyTorch分布式训练脚本 └── deps └── pytorch.zip # 包含PyTorch环境的虚拟环境提交PyTorch训练作业使用以下命令提交分布式PyTorch MNIST训练任务export TONY_JARFILEtony-cli-version-all.jar gcloud dataproc jobs submit hadoop --cluster $CLUSTER_NAME \ --class com.linkedin.tony.cli.ClusterSubmitter \ --jars file:///opt/tony/TonY-samples/${TONY_JARFILE} -- \ --src_dir/opt/tony/TonY-samples/jobs/PTJob/src \ --task_params--root /tmp/ \ --conf_file/opt/tony/TonY-samples/jobs/PTJob/tony.xml \ --executes mnist_distributed.py \ --python_venv/opt/tony/TonY-samples/deps/pytorch.zip \ --python_binary_pathpytorch/bin/python3.5其中关键参数说明--src_dir指定包含训练代码的目录--conf_file指定TonY作业配置文件路径--executes指定要执行的Python脚本--python_venv指定包含PyTorch环境的压缩包TonY配置文件示例展示了如何设置容器资源、任务命令和集群规格等参数监控与验证作业运行通过Cloud Dataproc控制台监控在GCP控制台中导航到Big Data Cloud Dataproc Jobs可以查看作业状态、日志和详细信息。作业成功完成后状态会显示为SUCCEEDED。访问Hadoop YARN UI通过Cloud Dataproc的组件网关可以访问Hadoop YARN的Web界面ResourceManager查看集群资源使用情况、应用程序状态和详细日志。具体访问方法可参考GCP官方文档中访问集群Web界面部分。查看作业日志使用以下命令可以查看特定应用程序的日志yarn logs -applicationId App_ID高级配置启用集群自动扩缩容为了优化资源使用并应对变化的工作负载可以配置Cloud Dataproc自动扩缩容策略。以下是一个示例配置# 创建自动扩缩容策略文件 cat EOF autoscale_tony.yaml workerConfig: minInstances: 4 maxInstances: 10 secondaryWorkerConfig: minInstances: 0 maxInstances: 100 basicAlgorithm: cooldownPeriod: 2m yarnConfig: scaleUpFactor: 1.0 scaleDownFactor: 1.0 scaleUpMinWorkerFraction: 1.0 scaleDownMinWorkerFraction: 1.0 gracefulDecommissionTimeout: 15m EOF # 导入自动扩缩容策略 gcloud beta dataproc autoscaling-policies import autoscale_tony --sourceautoscale_tony.yaml创建集群时指定此策略Dataproc将根据YARN资源需求自动调整工作节点数量提高资源利用率并降低成本。总结与注意事项通过TonY和Cloud Dataproc我们可以在GCP上轻松部署和运行分布式PyTorch任务充分利用Hadoop的分布式计算能力。以下是一些需要注意的事项依赖版本示例中使用的PyTorch版本为0.4Torch Vision版本为0.2.1如需使用其他版本需要相应修改环境配置GPU支持Cloud Dataproc支持GPU实例但需要修改PyTorch代码以利用GPU资源Hadoop版本当前示例使用Hadoop 2.9.2Hadoop 3.1及以上版本提供GPU隔离功能日志管理作业日志默认聚合到Cloud Storage可通过YARN命令或Web界面访问如需了解更多细节可以参考项目中的官方文档tony-examples/tony-in-gcp/README.md。通过这种方式您可以快速搭建起稳定高效的分布式深度学习平台加速模型训练过程。【免费下载链接】TonYTonY is a framework to natively run deep learning frameworks on Apache Hadoop.项目地址: https://gitcode.com/gh_mirrors/to/TonY创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考