使用HDFS FUSE

简介

上一节介绍了在Cloud-ML中直接使用HDFS路径的方法,这种方法还是不够灵活。本节介绍在Cloud-ML中使用HDFS FUSE。HDFS FUSE是一种基于FUSE的文件系统,允许挂载小米HDFS的文件到本地文件系统。用户读写本地文件,FUSE会自动同步文件修改到远端HDFS上。

目前,下列框架和版本中已经集成了HDFS FUSE功能。

  • Tensorflow 1.0.0-xm1.0.0-c3prc-hadoop(docker image名称:cnbj6-repo.cloud.mi.com/cloud-ml/tensorflow-gpu:1.0.0-xm1.0.0-c3prc-hadoop)
  • Tensorflow 1.3.0-xm1.0.0(docker image名称:cnbj6-repo.cloud.mi.com/cloud-ml/tensorflow-gpu:1.3.0-xm1.0.0)
    可以在CLI或WEB创建训练任务时,指定HDFS FUSE参数。

使用CLI提交任务,指定HDFS参数

提交任务时候需要告诉Cloud-ML平台需要使用HDFS FUSE。命令举例如下:

  1. 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 -fc hdfs://c3prc-hadoop -d cnbj6-repo.cloud.mi.com/cloud-ml/tensorflow-gpu:1.3.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中的相同。trainjob hdfs fuse

原文: http://docs.api.xiaomi.com/cloud-ml/trainjob/0507_use_hdfs_fuse.html