關於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" \



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章