Skip to content

集群部署与分布式提交

yiling-dc edited this page Dec 21, 2018 · 4 revisions

XDL提供了基于Docker的,通过YARN进行调度的分布式提交工具

集群部署

  • Hadoop部署
    提交工具基于HADOOP 3.1.0及更新版本,HADOOP部署官方文档

  • GPU绑核的支持(可选)
    基于官方版本YARN的GPU调度,通常对调度到机器的GPU使用不做限制,而类似TF对GPU的使用策略是默认占用全部显存,所以多个进程共享同一个GPU会导致显存不足等问题。我们提供了带GPU隔离的HADOOP_PATCH(通过docker环境变量 CUDA_VISIBLE_DEVICES 实现) PATCH使用方法:

    • 编译安装
      (注:x-deeplearning/xdl/distributed/gpu_patch/目录下提供了基于原版hadoop-3.1.0编译好的二进制文件hadoop-yarn-server-nodemanager-3.1.0.jar,无特殊需求可直接跳过此步骤)
     curl https://archive.apache.org/dist/hadoop/core/hadoop-3.1.0/hadoop-3.1.0-src.tar.gz > hadoop-3.1.0-src.tar.gz
     tar -zxvf hadoop-3.1.0-src.tar.gz
     cd hadoop-3.1.0-src
     patch -p1 < /absolute_path_to/x-deeplearning/xdl/distributed/gpu_patch/gpu_ids.patch
     ./start-build-env.sh
     # 然后会进入带有编译环境的docker镜像
     cd ~/hadoop/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager
     mvn clean package -DskipTests -Pnative
     # 获得./target/hadoop-yarn-server-nodemanager-3.1.0.jar文件
    
    • 部署
    在集群中带有GPU卡的nodemanager机器的yarn-site.xml中增加配置:
     <property>
        <name>yarn.nodemanager.resource.gcores</name>
        <value>2</value>
     </property>
    其中value是指单台GPU机器包含GPU卡的数量,这里以2为例
    将hadoop-yarn-server-nodemanager-3.1.0.jar文件拷贝到集群nodemanager所在机器的
    /absolute_path_to/hadoop/share/hadoop/yarn/目录下,重启nodemanager
    
  • 安装Docker
    Nodemanager所在的机器需要安装Docker和对应的镜像 参考

分布式任务提交工具xdl_submit

  • 安装 在已安装好的HADOOP集群中任意选择一台机器,我们称之为gateway,在上面安装分布式提交工具xdl_submit.py

安装步骤如下:

  cd x-deeplearning/xdl/distributed
  sudo sh install_xdl_submit.sh

安装完成之后,可以用如下命令进行分布式任务的提交:

  xdl_submit.py --config=xdl_test.json