概要
-
本コンテンツのコンセプト
本コンテンツはHadoopを自宅のパソコンたちに導入して楽しむことを目的としています。
Hadoopはだいたい10台くらいのマシンを並べると効果を実感できると言われています。
しかし自宅に10台もパソコンを並べようとすれば、安物で揃えたとしてもかなりの出費になってしまいます。(1台3万で揃えても30万)
たとえ10台購入するだけの資金があったとしても、パソコンを設置するスペースが確保できなかったり、電源周りの分散に頭を悩ませたり、毎月の電気代請求に怯えたり、故障時のメンテナンスが予想以上に大変だったり、ファンやHDDの音がうるさかったり、家族から白い目で見られたりするなど、様々な困難が待ち受けていることが予想されます。
かといって台数を控えめにすれば、分散するためにかかる処理コストが、並列によってもたらされるメリットを上回ってしまい、なんのために分散処理してるのかわからない状態になってしまいます。
というわけで結論として、自宅でHadoopを使うのは現実的な選択肢ではありません。
おとなしくAmazonのElastic MapReduceを使っておいた方が何十倍も現実的です。あれなら10台を並列で1時間動かしても数百円で済みます。一般家庭のお父さんのお小遣いでも十分に楽しめる金額です。
「いつもは昼食は550円の定食を食べているけど、今日は牛丼で済ませて差額でMapReduceしよう」なんてこともできてしまいます。処理にかかる時間を見誤って数十倍のお金がかかっちゃった、なんてことも起こるところがちょっと怖いですが。
しかし世の中にはそれが分かった上で、それでも手元で分散処理をしたいという欲求を抑えられないタイプの人たちがいます。
以前買った安物のマシンやら最近購入したハイスペックなマシンやらが入り交じった自宅のパソコンたちを繋げたた時、いったいどんな速度になるのかが気になってしまう人がいます。
既に用意された環境を使うのではなく、自分で1からセットアップしないと気が済まない人がいます。
本コンテンツはそんな浪漫を追い求める皆さんに向けて、低予算と少ないマシンでHadoop環境を楽しむための情報を紹介していきます。
-
取り扱う内容
@TODO もう少しまとまってから書く
-
注意書き
本コンテンツではソースコードをScalaで書いています。Javaで長い記述書くのには疲れました。Scalaならコード量を3割は減らせるし、依存関係込みでjarに固めればそのままhadoop jarで動かせます。
OSはUbuntuを利用しています。別になんでも良かったのですが、とりあえず知名度が一番高いのを選んどけば良いかなと。個人的にはRHEL系の方が慣れてるのでよく設定ファイルの名前とかの違いに戸惑ってます。「service network statusっと。あれ? unrecognized?」
Hadoopのバージョンは0.20を利用しています。2011年11月現在ではElastic MapReduceとか世の中の一般的なHadoop系のサービスは0.20ベースのものを利用していることが多いし、安定性や情報量などを考えると0.21はまだちと手を出せない。