用法:作业运行 -checkpoint_path <arg>作业的培训输出目录,可以 是本地或其他FS目录。这个 通常包括检查点文件和 导出模型 -docker_image <arg> Docker映像名称/标签 -env <arg> worker / ps的公共环境变量 -input_path <arg>作业的输入,可以是本地或其他FS 目录 -name <arg>作业名称 -num_ps <arg>作业的PS任务数,默认情况下 是0 -num_workers <arg>作业的工作者任务数量,由 默认是1 -ps_docker_image <arg>为PS指定docker映像 未指定,PS使用--docker_image作为 默认。 -ps_launch_cmd <arg>工作程序的命令行,参数为 直接用于启动PS -ps_resources <arg>每个PS的资源,例如 内存-mb = 2048,vcores = 2,yarn.io / gpu = 2 -queue <arg>要运行作业的队列的名称,默认情况下是 使用默认队列 -saved_model_path <arg>作业的模型导出路径(savedmodel), 不需要导出模型时需要 放在$ {checkpoint_path}下的可能是 本地或其他FS目录。这将是 曾经服役。 -tensorboard <arg>我们是否应该为此任务运行TensorBoard?通过 默认是真的 -verbose打印详细日志以进行故障排除 -wait_job_finish在用户想要等待作业时指定 完 -worker_docker_image <arg>为WORKER指定docker映像,当此 未指定,WORKER使用--docker_image 默认情况下。 -worker_launch_cmd <arg>工作者的命令行,参数为 直接用来发动工人 -worker_resources <arg>每个工作程序的资源,例如 内存-mb = 2048,vcores = 2,yarn.io / gpu = 2 -localization <arg>指定本地化为远程/本地 所有容器可用的文件/目录(Docker)。 参数格式为“ RemoteUri:LocalFilePath [:rw]” (尚不支持ro权限)。 RemoteUri可以是本地文件或目录 或HDFS或s3或abfs或http .etc。 LocalFilePath可以是绝对的或相对的。 如果是相对的,它将在容器的隐含条件下 工作目录。 此选项可以设置多次。 例子是 -localization“ hdfs:/// user / yarn / mydir2:/ opt / data” -localization“ s3a:/// a / b / myfile1:./” -localization“ https:/// a / b / myfile2:./myfile” -localization“ /用户/纱线/ mydir3:/ opt / mydir3” -localization“ ./mydir1 :.”。
使用本地化选项使容器中的条目python脚本可使用依赖关系Python脚本的集合时,可能还需要如下设置PYTHONPATH环境变量,以避免从entry_script.py报告模块导入错误。
...工作 #入口点 --localization entry_script.py:<路径> /entry_script.py #入口点的依赖Python脚本 --localization other_scripts_dir:<路径> / other_scripts_dir #PYTHONPATH env使依赖项可用于输入脚本 --env PYTHONPATH =“ <路径> / other_scripts_dir” --worker_launch_cmd“ python <路径> /entry_script.py ...”
对于潜水艇内部配置,请创建一个submarine.xml,它应该放在$ HADOOP_CONF_DIR下。
配置名称 | 描述 |
---|---|
submarine.runtime.class | 可选的。运行时工厂的完整合格类名。 |
submarine.localization.max允许的文件大小MB | 可选的。这将对要在“ -localization” CLI选项中本地化的文件/目录设置大小限制。默认为2GB。 |
纱罐路径到/hadoop-yarn-applications-submarine-3.2.0-SNAPSHOT.jar作业运行\ --env DOCKER_JAVA_HOME = / usr / lib / jvm / java-8-openjdk-amd64 / jre / \ --env DOCKER_HADOOP_HDFS_HOME = / hadoop-3.1.0 --name tf-job-001 \ --docker_image <您的docker-image> \ --input_path hdfs:// default / dataset / cifar-10-data \ --checkpoint_path hdfs:// default / tmp / cifar-10-jobdir \ --worker_resources内存= 4G,vcores = 2,gpu = 2 \ --worker_launch_cmd“ python ...(您的培训应用程序cmd)” --tensorboard#这将启动一个伴侣的tensorboard容器进行监视
1)DOCKER_JAVA_HOME指向Docker映像中的JAVA_HOME。
2)DOCKER_HADOOP_HDFS_HOME指向Docker映像中的HADOOP_HDFS_HOME。
3)-- worker_resources在需要GPU训练任务时可以包含gpu。
4)指定--tensorboard后,您可以转到YARN新UI,转到服务-> <您指定的服务> ->单击...以访问Tensorboard。
这将启动一个Tensorboard来监视您的所有工作。通过访问YARN UI(新UI)。您可以转到服务页面,转到tensorboard-service,单击快速链接(Tensorboard)可以将您引导至tensorboard。
见下面的截图:
纱罐hadoop-yarn-applications-submarine- <version> .jar作业运行\ --name tf-job-001 --docker_image <您的docker映像> \ --input_path hdfs:// default / dataset / cifar-10-data \ --checkpoint_path hdfs:// default / tmp / cifar-10-jobdir \ --env DOCKER_JAVA_HOME = / usr / lib / jvm / java-8-openjdk-amd64 / jre / \ --env DOCKER_HADOOP_HDFS_HOME = / hadoop-3.1.0 \ --num_workers 2 \ --worker_resources内存= 8G,vcores = 2,gpu = 1 --worker_launch_cmd“工人的cmd ...” \ --num_ps 2 \ --ps_resources memory = 4G,vcores = 2,gpu = 0 --ps_launch_cmd“ cmd for ps” \
纱罐hadoop-yarn-applications-submarine-3.2.0-SNAPSHOT.jar作业显示--name tf-job-001
输出如下:
职位元信息: 申请编号:application_1532131617202_0005 输入路径:hdfs:// default / dataset / cifar-10-data 检查点路径:hdfs:// default / tmp / cifar-10-jobdir 运行参数:--name tf-job-001 --docker_image wtan / tf-1.8.0-gpu:0.0.3 (...运行作业之前的所有命令行)
之后,您可以运行tensorboard --logdir = <checkpoint-path>来查看作业的Tensorboard。
#必要时清理先前的服务 纱线应用程序-破坏张量板服务; \ 纱罐/tmp/hadoop-yarn-applications-submarine-3.2.0-SNAPSHOT.jar \ 作业运行--name tensorboard-service --verbose --docker_image wtan / tf-1.8.0-cpu:0.0.3 \ --env DOCKER_JAVA_HOME = / usr / lib / jvm / java-8-openjdk-amd64 / jre / \ --env DOCKER_HADOOP_HDFS_HOME = / hadoop-3.1.0 \ --num_workers 0-张量板
您可以通过Tensorboard链接查看多个职业培训历史记录: