複数のユーザでHadoopを使う MapReduce編

動いた。ゎー。病気で前回から1週間もあいてしまった。ヮィヮヵョヮィヵッォャ!前回と同じく
Thoughts of Me: Multi-User Hadoop
と、後FAQ
FAQ - Hadoop Wiki
を参照。HDFSは複数のユーザから使えるようになっている事を仮定。

まずhadoop-site.xmlのmapred.system.dirを適切に書きかえる。どこか適当なディレクトリを設定するんだけど、クラスタ内の全てのノードがアクセスできるようにしておく事みたいな注意が書いてあった。これは

  • NFSでmapred.system.dirを共有しておく事が必要
  • 共有する必要は無いけど、それぞれのノードの同じ位置(パス)に置いておけば良い

のどちらなのかが良く分からなかったので、とりあえず今はNFSで共有することにしている。次に

$ chmod 775 mapred.system.dirに設定したディレクトリ

みたいな感じで、Hadoopユーザが所属しているグループの人が書き込み可能なようにしておく。あとhadoop.tmp.dirも同じグループの人が書き込めるようにしておかないとダメだった。

とりあえず以上でHadoopを起動していないユーザもMapReduceできるようになた!検証が必要な点としては、さっきのmapred.system.dirをNFSで共有する必要があるのかという事と、もう一つ!

Note that this directory is in your default file system and must be accessible from both the client and server machines and is typically in HDFS.

I'm using an nfs mount, but you could use hdfs just as easily.

と書いてあるんだけど、mapred.system.dirにHDFS内のディレクトリを指定できるという事なんだろうか。その場合パスはどういう風に書けば良いんだろう。色々調べて試してみる必要がありそう。