nozaq's diary

ソーシャルな会社でデータ解析やマイニングやってます。 その前は起業してベンチャーやってました。更に前は未踏とかやってました。http://twitter.com/nozaq

Mac上で手軽にMapReduceする環境を構築するメモ

Macのローカル上で手軽にMapReduceジョブ開発をしたくなったので色々やってみた.
Cloudera社がHadoopが動作するLinuxのVMイメージを提供しているので, Macの環境を汚さずにHadoop環境がローカルに構築できます.

  1. CDH3のVMイメージをダウンロード.
    僕はVMWare Fusion用をダウンロードしましたが、 VirtualBox用イメージもあるのでフリーで環境構築できるはず.
  2. CDH3用のHadoop Eclipse Pluginをダウンロード.
    Hadoop Eclipse PluginはHadoopをソースからビルドすると生成されるんですが(参考),CDH3にバンドルされているHadoopとの接続に問題があるらしいので代わりにこちらをダウンロード. 
  3. Hadoop Eclipse Pluginをインストール.
    eclipseホームディレクトリ以下のpluginsディレクトリに2.でダウンロードしたjarファイルをコピーするだけ.
    > cp hadoop-eclipse-plugin-0.20.2-cdh3u0.jar /Applications/eclipse/plugins
  4. CDH3のVMを起動, ホストOS(Mac OS)側からSSHで接続確認.
    正常にVMが動作していればSSHで接続できます(ユーザ名・パスワード共にcloudera).
    CDH3> ifconfig # VMのIPアドレスを確認
    > ssh cloudera@192.168.*.* # IPアドレスは上記で確認したものを入力
  5. eclipseからVM上のHadoopに接続.
    Window > Open Perspective > Other > Map/Reduceでパースペクティブを変更.
    Map/Reduce Locationsビュー(Eclipseウインドウ下部コンソールの並びにある)を選択し, 右上の"New hadoop location..."を選択.
    Hostに上記IPアドレス, Map/Reduce MasterのPortに8021, DFS MasterのPortに8020, User nameにclouderaを指定.
  6. Project ExplorerのDFS LocationsからHDFSが見えているか確認.
  7. MapReduce Jobのプロジェクトを作成
    New > Other > Map/Reduce Project