Hadoopの疑似分散モード

Hadoop (大型本)スタンドアローンモードでの動作ビルド方法を確認したら、次は疑似分散モードです。

スタンドアローンモードではローカルのファイルシステムを使っていたのに対し、疑似分散モードでは分散ファイルシステム(HDFS)を使います。もちろん、マシンが1台なので、HDFSのコンテンツは本当はローカルにあるわけですが、見た目はそうではなくなります。

利用方法は、クイックスタートのとおりです(前に作成した入力データinputがあるとして)。

  1. 設定用のXMLファイル(core-site.xmlとhdfs-site.xml, mapred-site.xml)を書き換える
  2. パスフレーズなしでlocalhostにssh接続できるようにする
  3. HDFSのフォーマット
    bin/hadoop namenode -format
    
  4. Hadoopデーモンの起動
    bin/start-all.sh
    
  5. 入力ファイルをHDFSにコピー(3番目の引数はローカル、4番目の引数はHDFSのファイル名)
    bin/hadoop fs -put input input
    
  6. プログラムの実行(WordCountの場合)
    bin/hadoop fs -rmr output
    bin/hadoop jar hadoop-0.20.1-examples.jar wordcount input output
    
  7. HDFS上の結果を読む
    bin/hadoop fs -cat "output/*"
    a       3
    b       3
    c       2
    
  8. Hadoopデーモンの停止
    bin/stop-all.sh
    

HDFSの様子はhttp://localhost:50070/で、MapReduceの様子はhttp://localhost:50030/でわかります。(外部からでも見えますが、その場合にはファイアウォールを正しく設定しておく必要があります。)

ヒント

  • デーモンを起動する前にフォーマットする
  • うまくいかないときは、デーモンを停止させてから/tmp/hadoop*を削除し、やり直す

つづく

  • Eclipseプラグイン
  • 完全分散モード
  • Cloudera’s Distribution for Hadoop