LoginSignup
11
11

More than 5 years have passed since last update.

PythonでHadoopを実行するラッパー

Last updated at Posted at 2015-01-12

Hadoopの機械学習をPythonでやりたい

Java以外でもHadoopのJobを書くことが出来るので、
機械学習に強いPythonをHadoopで実装できるようなSkipJackというラッパーをPythonもくもく会と正月で作りました。

GitHubは以下においています。(pipは無し)
GitHub-SkipJack

以下、詳細

  1. HadoopStreaming
  2. Scikit-learn
  3. SkipJack

HadoopStreaming

Hadoopでは、

という2つの実行方法があり、
標準入出力を扱える全ての言語でHadoopが使えます。(Hadoop Streaming)

なので、Hadoopで機械学習をするという理由だけでMahoutを使用する必要はなく、
機械学習に強いPythonを使って好きなライブラリで実装することができます。

Hadoopを用意する一通りの流れはHadoop導入とPythonによるMapReduceが参考になります。

Scikit-learn

Pythonで実装された一番メジャーな機械学習ライブラリです。
これを使用するためにはNumpy, Scipyもインストールする必要がありますが、pipだけでは簡単にインストールすることが出来ないので、
一通りのライブラリが元から入っているAnacondaの3系をダウンロードして、全スレーブに設置しました。

SkipJack

Hadoop Streaming ではhadoopの実行コマンドは手で打つ必要があり、面倒だったので
pythonを実行することで、

実行するJobを決定→Hadoop実行→結果評価→次に実行するJobを決定→以下、停止までループ

が出来るようなラッパーを作成しました。
mapperとreducer、結果評価の方法を実装すれば、定型作業を書く必要はありません。

中身は、
Hadoopコマンド(実行(run)、ファイル配置(put)、結果読み出し(cat))を実行しているだけの簡単なものです。

サンプルには、

  • WordCount+アルファ
  • グリッドサーチを使用した絞り込み

の2つを用意しています。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11