关于xlearning的安装使用初步简介

最近发现了一个做事很认真的做算法同事,身上很多优点值得我学习,推荐使用了一种360的开源工具,可以将tensoeflow提交至yarn里面。这个工具感觉解决了很多问题。我这个人比较懒,大部分工作都是我那个同事研究成功的,然后我坐享其成,等着验证结果。特此在这里将他的成果记录下来:

参考网址:

https://github.com/Qihoo360/XLearning/blob/master/README_CN.md

第一步:找一台可以联网的机器,准备好编译环境

注意:此处编译所准备的环境,jdk版本,hadoop版本,需要和正式环境的版本相匹配

修改下载的XLearning文件解压之后XLearning-master文件夹中的pom.xml

    <repositories>
        <repository>
            <id>cloudera-releases</id>
            <url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <properties>
        <hadoop2.version>2.6.0-cdh5.5.4</hadoop2.version>
        <junit.version>4.11</junit.version>
        <jdk.version>1.7</jdk.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <xlearning.jar.basename>xlearning-${project.version}-hadoop${hadoop2.version}</xlearning.jar.basename>
        <xlearning.jar>${xlearning.jar.basename}.jar</xlearning.jar>
    </properties>

因为编译的是cdh版本的,所以要添加cdh的releases,同时修改hadoop版本,指定jdk版本,同时确定本地环境的jdk与指定的相同,也与正式环境的相同。

然后在源码根目录下执行

mvn package

完成编译后,在源码根目录下的target目录中会生成发布包xlearning-1.0-dist.tar.gz

第二步:

将这个tar在你要运行程序的客户端解压,

指定环境变量

export XLEARNING_HOME=/home/test/xlearning

export JAVA_HOME=/home/test/jdk
export HADOOP_CONF_DIR=/home/test/hadoop/etc/hadoop

假如需要启动history服务

修改xlearning-site.xml里面参数

修改0.0.0.0 为启动地址 

例如:

    <property>
        <name>xlearning.history.webapp.https.address</name>
        <value>192.168.3.56:19885</value>
    </property>

然后在hdfs 集群上创建

    <property>
        <name>xlearning.tf.board.history.dir</name>
        <value>/tmp/XLearning/eventLog</value>
    </property>

    <property>
        <name>xlearning.history.log.dir</name>
        <value>/tmp/XLearning/history</value>
    </property>

    <property>
        <name>xlearning.staging.dir</name>
        <value>/tmp/XLearning/staging</value>
    </property>

以下指定目录

之后修改xlearning-env.sh文件

在里面取消一下部分注释,并补充 

export JAVA_HOME=/home/test/jdk
export HADOOP_CONF_DIR=/home/test/hadoop/etc/hadoop

同时修改(注:不需要修改整体集群,只需要修改当前节点配置即可)

yarn-site.xml

<property>
    <name>yarn.application.classpath</name>
    <value>$HADOOP_CLIENT_CONF_DIR,$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,$HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/*,$HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*</value>
</property>

然后启动服务

sbin/start-history-server.sh

第三步:

测试:

可以通过自带的例子包测试:

例子测试包在:

xlearning/examples/tensorflow/run.sh

记得提交时修改下--queue default 这个指定队列的信息

如果在运行的时候碰到xlearning.tf.board.enable相关问题,检查下本地包是否没有安装相关包,可以通过设置 xlearning.tf.board.enable=false解决,也可以通过指定你安装相关包之后的python环境解决:

解决方式在运行的时候加上

--user-path /opt/anaconda3/bin/  \

--launch-cmd "/opt/anaconda3/bin/python demo.py --data_path=./data --save_path=./model --log_dir=./eventLog --training_epochs=10" \

猜你喜欢

转载自blog.csdn.net/mnasd/article/details/80004537