1.5.6.9 使用HDFS FUSE

优质
小牛编辑
134浏览
2023-12-01

简介

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

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

  1. Tensorflow 1.6.0-xm1.0.0 (docker image名称:cnbj6-repo.cloud.mi.com/cloud-ml/tensorflow-gpu:1.6.0-xm1.0.0)
  2. 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中的相同。 trainjob hdfs fuse