使用HDFS FUSE
简介
上一节介绍了在Cloud-ML中直接使用HDFS路径的方法,这种方法还是不够灵活。本节介绍在Cloud-ML中使用HDFS FUSE。HDFS FUSE是一种基于FUSE的文件系统,允许挂载小米HDFS的文件到本地文件系统。用户读写本地文件,FUSE会自动同步文件修改到远端HDFS上。
目前,下列框架和版本中已经集成了HDFS FUSE功能。
- Tensorflow 1.6.0-xm1.0.0 (docker image名称:cnbj6-repo.cloud.mi.com/cloud-ml/tensorflow-gpu:1.6.0-xm1.0.0)
- Tensorflow 1.7.0-xm1.0.0 (docker image名称:cnbj6-repo.cloud.mi.com/cloud-ml/tensorflow-gpu:1.7.0-xm1.0.0)
可以在CLI或WEB创建训练任务时,指定HDFS FUSE参数。
使用CLI提交任务,指定HDFS参数
提交任务时候需要告诉Cloud-ML平台需要使用HDFS FUSE。命令举例如下:
cloudml jobs submit -n hdfs-fuse -m trainer.task -u fds://test-bucket-xg/tf-mnist/tf_fuse_test-1.0.tar.gz -c 4 -M 8G -g 1 -fe cnbj1-fds.api.xiaomi.net -hka s_test@XIAOMI.HADOOP -hkp mypassword -he hdfs://c3prc-hadoop -d cnbj6-repo.cloud.mi.com/cloud-ml/tensorflow-gpu:1.6.0-xm1.0.0
这里面有三个新参数:
-hka HDFS_KRB_ACCOUNT, --hdfs_krb_account HDFS_KRB_ACCOUNT
: 指定HDFS的kerberos账号;
-hkp HDFS_KRB_PASSWORD, --hdfs_krb_password HDFS_KRB_PASSWORD
: 指定HDFS的kerberos密码;
-he HDFS_ENDPOINT, --hdfs_endpoint HDFS_ENDPOINT
: 指定HDFS集群地址,例如HDFS C3机房地址是hdfs://c3prc-hadoop。
使用WEB提交任务,指定HDFS参数
在融合云中提交训练任务时,也可以指定HDFS参数。参数类型和上述CLI中的相同。