tensorflow和hadoop部署

wfveoks0  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(347)

由于hadoopcloudera部署在infra节点和数据节点中工作,那么使用相同的硬件配置应该在哪里部署tensorflow呢?在infra节点还是数据节点?
由于tensorflow需要gpu,因此需要知道在何处部署,以便知道要添加gpu的节点。

9cbw7uwe

9cbw7uwe1#

tensorflow可以使用cpu或gpu进行训练,但不需要gpu进行分类。以下是在hadoop和yarn上运行tensorflow的两个好指南:
https://www.tensorflow.org/deploy/hadoop
https://hortonworks.com/blog/distributed-tensorflow-assembly-hadoop-yarn/

o7jaxewo

o7jaxewo2#

https://github.com/linkedin/tony
使用tony,您可以提交一个tensorflow作业,并指定worker的数量以及它们是需要cpu还是gpu。
下面是如何使用自述文件中的示例:
tony 目录还有一个 tony.xml 它包含了所有的作业配置。例如:

$ cat tony/tony.xml
<configuration>
  <property>
    <name>tony.worker.instances</name>
    <value>4</value>
  </property>
  <property>
    <name>tony.worker.memory</name>
    <value>4g</value>
  </property>
  <property>
    <name>tony.worker.gpus</name>
    <value>1</value>
  </property>
  <property>
    <name>tony.ps.memory</name>
    <value>3g</value>
  </property>
</configuration>

有关配置的完整列表,请参阅wiki。
型号代码

$ ls src/models/ | grep mnist_distributed
  mnist_distributed.py

然后你就可以开始你的工作了:

$ java -cp "`hadoop classpath --glob`:tony/*:tony" \
            com.linkedin.tony.cli.ClusterSubmitter \
            -executes src/models/mnist_distributed.py \
            -task_params '--input_dir /path/to/hdfs/input --output_dir /path/to/hdfs/output --steps 2500 --batch_size 64' \
            -python_venv my-venv.zip \
            -python_binary_path Python/bin/python \
            -src_dir src \
            -shell_env LD_LIBRARY_PATH=/usr/java/latest/jre/lib/amd64/server

命令行参数如下:* executes 描述培训代码入口点的位置。* task_params 描述将传递给入口点的命令行参数。* python_venv 描述本地调用python脚本的zip的名称。* python_binary_path 描述python虚拟环境中包含python二进制文件的相对路径,或使用已安装在所有工作节点上的python二进制文件的绝对路径。* src_dir 指定本地根目录的名称,其中包含所有python模型源代码。此目录将复制到所有工作节点。* shell_env 为将在python worker/ps进程中设置的环境变量指定键值对。

相关问题