ホーム  >   ブログ  >   Hivemall on Dockerを試すぜ

2017-05-07

Hivemall on Dockerを試すぜ

@amaya382くんが Hivemall on Docker についていろいろと整備してくれた。

https://twitter.com/amaya382/status/856860886807568384

一方、個人的には Hivemall on Mac について以前記事を書いた:『MacのローカルにHivemallを導入してアイテム推薦をするまで

だいたいHomebrewで完結するのでMacローカルだけを考えればこれでも問題ないけど、煩雑なインストール・設定無しでDockerコンテナで話が進むに越したことはない。というわけで先の記事のフォローアップとして Hivemall on Docker をMacのローカルで試してみる。環境は次の通り:

  • macOS Sierra 10.12.3
  • Docker for Mac Stable channel (version 17.03.1-ce-mac5)
$ docker -v
Docker version 17.03.1-ce, build c6d412e
$ docker-compose -v
docker-compose version 1.11.2, build dfed245
$ docker-machine -v
docker-machine version 0.10.0, build 76ed2a6

コンテナ起動まで

基本的にはドキュメントに従う。

まずリポジトリを取ってきて、

$ cd /path/to/incubator-hivemall

ビルドは docker-compose なら:

$ docker-compose -f resources/docker/docker-compose.yml build

docker build なら:

$ docker build -f resources/docker/Dockerfile .

筋トレしながら待つ。

おわったら、コンテナ起動は docker-compose なら:

$ docker-compose -f resources/docker/docker-compose.yml up -d && docker attach hivemall

docker run なら:

$ docker run -it \
    -p 8088:8088 \
    -p 19888:19888 \
    -p 50070:50070 \
    hivemall

このとき、

  • docker-compose.ymlvolumes: "../../:/opt/hivemall/" を指定する
  • docker run にオプション --volume $(pwd):/opt/hivemall を渡す

のいずれかでホストの /path/to/incubator-hivemall をコンテナ上の /opt/hivemall ($HIVEMALL_PATH) にマウントできる。

すると、ローカルで開発→ビルド→コンテナ起動&マウント、という感じでスムーズにHivemall開発ができます。やったね。

Hivemallのビルド&データセット準備

コンテナに入ったならば、とりあえずHiveを起動してみる:

# hive

このとき、/opt/hivemall に存在するHivemallがビルド済みである(i.e., /opt/hivemall/target/hivemall-core-(バージョン)-with-dependencies.jar が存在する)必要がある。もしビルドされていなければ、(コンテナ内から)ビルドをしてあげる:

# cd $HIVEMALL_PATH && ./bin/build.sh

準備OK。

ここで、分類問題のテストデータとして有名な Iris データセット をHDFSに読み込んでくれるスクリプトがおまけとして $HOME/bin/prepare_iris.sh に用意されているので、これを使ってみる:

# cd $HOME && ./bin/prepare_iris.sh

Hiveに入って、読み込んだばかりの Iris データセットを確認:

# hive
hive> use iris;
hive> select * from iris_raw limit 5;
OK
1       Iris-setosa     [5.1,3.5,1.4,0.2]
2       Iris-setosa     [4.9,3.0,1.4,0.2]
3       Iris-setosa     [4.7,3.2,1.3,0.2]
4       Iris-setosa     [4.6,3.1,1.5,0.2]
5       Iris-setosa     [5.0,3.6,1.4,0.2]

よさそう。

ここまでくれば、HivemallのIrisチュートリアルのData preparationは終わっているので、RandomForestなり何なりで分類を試すことができる。

便利な時代になりました。

まとめ

  シェアする

このエントリーをはてなブックマークに追加

  カテゴリ

機械学習 プログラミング

  あわせて読みたい

2017-05-14
推薦システムのためのOSSたち
2017-02-11
MacのローカルにHivemallを導入してアイテム推薦をするまで
2016-10-04
Treasure Dataインターンにみる機械学習のリアル #td_intern

  もっと見る

最終更新日: 2022-01-18

  書いた人: たくち

Takuya Kitazawaたくち)です。長野県出身、カナダ・バンクーバー在住のソフトウェアエンジニア。これまでB2B/B2Cの各領域で、Web技術・データサイエンス・機械学習のプロダクト化および顧客への導入支援・コンサルティング、そして関連分野の啓蒙活動に携わってきました。現在は主に北米(カナダ)、アジア(日本)、アフリカ(マラウイ)の個人および企業を対象にフリーランスとして活動中。詳しい経歴はレジュメ を参照ください。いろいろなまちを走って、時に自然と戯れながら、その時間その場所の「日常」を生きています。ご意見・ご感想およびお仕事のご相談は [email protected] まで。

  近況   一杯のコーヒーを贈る

  免責事項

  • Amazonのアソシエイトとして、当サイトは amazon.co.jp 上の適格販売により収入を得ています。
  • 当サイトおよび関連するメディア上での発言はすべて私個人の見解であり、所属する(あるいは過去に所属した)組織のいかなる見解を代表するものでもありません。
  • 当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、個人ブログという性質上、誤情報や客観性を欠いた意見が入り込んでいることもございます。いかなる場合でも、当サイトおよびリンク先に掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。
  • その他、記事の内容や掲載画像などに問題がございましたら、直接メールでご連絡ください。確認の後、対応させていただきます。