使用前置命令和后置命令
简介
Xiaomi Cloud-ML支持前置命令和后置命令功能,用户可以在训练之前和训练之后执行自定义的Shell命令。
用户可以通过前置命令和后置命令实现数据下载、初始化Kerberos权限、挂载FUSE目录等功能。
使用示例
通过命令行参数 -pc
和 -fc
参数就可以使用这个功能,可以通过查看训练日志确认命令是否执行成功。
cloudml jobs submit -n linear -m trainer.task -u fds://cloud-ml/trainer-1.0.0.tar.gz -pc "ls /tmp" -fc "ls /tmp"
访问HDFS
基于前置命令我们可以实现安全HDFS集群的初始化,使用时需要保证Hadoop集群的配置文件已经在容器镜像中,并且上传对应的训练数据到HDFS中,然后执行下面的命令。
cloudml jobs submit -n deep -m trainer.task -u fds://cloud-ml/trainer-1.0.tar.gz -pc "echo rdKxxxxxxTrnyYU | kinit u_chendihao@XIAOMI.HADOOP" -a "--train_file hdfs://namenode:port/deep_recommend_system/data/cancer_train.csv.tfrecords --validate_file hdfs://namenode:port/deep_recommend_system/data/cancer_test.csv.tfrecords"
挂载s3fs
s3fs与fdsfuse类似,只需要把前置命令改成下面,即可直接访问AWS S3的训练数据。
echo AKIAJxxxxxxxxxxxxx5CTQ:j0m+Xwe8jBQyCxxxxxxxxxxxxxxxxxxAQ3piA4 > /tmp/passwd && chmod 600 /tmp/passwd && s3fs tobebucket /s3 -o passwd_file=/tmp/passwd
参数介绍
-pc
表示前置命令,会在训练开始前运行。-fc
表示后置命令,会在训练结束后运行。