Dockerいいよね。
mahoutもいいよね。最近はscikit-learnの勢いに負けつつある感があれだけど、
まだまだ現役だと思います。
学習環境をDockerの中で構築してバッチ的に動かすことが多くなっているよね、
AWSだとAWSBatchで使えるし便利です。
今回はDocker上にmahout 0.11.1を構築します。
最新入れればいいじゃんって思うけど最新だとナイーブベイズ入っていないんだよね。
trainnb コマンドを使用したいのであえてバージョンを指定します。
まず、コピペするだけなら下記でオッケー
Centos7を想定してるよ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
yum install -y curl yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel curl -OL https://archive.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz tar -xzvf apache-maven-3.5.2-bin.tar.gz mv apache-maven-3.5.2 /opt/ cd /opt ln -s /opt/apache-maven-3.5.2 apache-maven ~/.bash_profile JAVA_HOME=/usr/java/default/ PATH=$PATH:/opt/apache-maven/bin export MAHOUT_HOME=/opt/mahout export MAHOUT_LOCAL=true git clone https://github.com/apache/mahout.git git checkout tags/mahout-0.11.1 git checkout -b mahout-0.11.1 mvn -DskipTests clean install |
今度は、これをDockerfileに落とします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
FROM centos:7 MAINTAINER buta # install java 1.8, maven 3.5.2, mahout 0.11.1 RUN yum install -y bzip2 bzip2-devel gcc gcc-c++ git make wget curl openssl-devel readline-devel zlib-devel \ && echo -e "PATH=$PATH:/opt/apache-maven-3.5.2/bin\nPATH=$PATH:/opt/mahout/bin\nexport MAHOUT_HOME=/opt/mahout/bin\nexport MAHOUT_LOCAL=true\nexport JAVA_HOME=/usr/" >> ~/.bash_profile \ && yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel \ && source ~/.bash_profile \ && curl -OL https://archive.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz \ && tar -xzvf apache-maven-3.5.2-bin.tar.gz && mv apache-maven-3.5.2 /opt/ && rm apache-maven-3.5.2-bin.tar.gz \ && ln -s /opt/apache-maven-3.5.2 apache-maven\ && cd /opt/ && git clone https://github.com/apache/mahout.git && cd mahout && git checkout tags/mahout-0.11.1 && git checkout -b mahout-0.11.1 && JAVE_HOME=/usr /opt/apache-maven-3.5.2/bin/mvn -DskipTests clean install \ && localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 && export LC_ALL=ja_JP.UTF-8 && export LANG=ja_JP.UTF-8 \ && rm -rf /var/cache/yum/* ENV MAHOUT_HOME /opt/mahout ENV MAHOUT_LOCAL true ENV JAVA_HOME /usr ENV MAHOUT_CONF_DIR "/opt/mahout/conf" CMD echo "mahout yaaa" |
Java入れたりmahout入れたりmaven入れたりめんどくさかったけど
Docker化したからバッチ処理を好きなところで実行できるようになったよ。
ホントならcentosじゃなくてaplineにしたかったけど
依存パッケージ調べるのめんどかったからこのまま笑
じゃあね〜〜〜〜。