Hadoopは借りて使え

NTTデータが公開したHadoop資料が話題になっている。ざっと読む限り、コード事例もあって参考になることは確か。読まない手はないだろう。

だけど、Hadoop環境を自前で構築することには私はあまり賛同できない。技術屋が勉強するため、というのなら話は別だけど、事業でHadoopを使うのならクラウド上のを借りることをお勧めする。

例えば1000台のクラスタを構築して、デイリーバッチ処理が5分で終わるようになった! と喜ぶのも良いだろう。でも、残りの23時間55分はそのクラスタどうするのか?寝かせておくのであればROI評価は非常に低いものになるだろう。

かといってケチって5台のクラスタにしたらほぼ1日中稼動したのでROIは高くなりましたが処理時間短縮には至りませんでした、なんていうのも馬鹿げている。

じゃ、どこに最適点があるのか?

答は「自前で持たず、必要なときに必要な台数のクラスタを借りる」ことだろう。Amazon Elastic MapReduceはそういう目的で存在する。Hadoop設置の手間隙はかからないし、チューニングする余地もあまりない。急ぐときは台数増やせばいいのである。終わったら停止すればよい。*1

クラウド=基盤技術者の知識集約

クラウドを使うと、この手の基盤設置運用に必要な技術者の数を抑えることができる。もちろん、最初に設置調整する人は必要だけど、一度完成したらその設定をVMのイメージで保存しておけば後は基盤素人でも活用できる。基盤設計に必要な工数が限りなくゼロに収束していく一方で、いかにアプリケーションを素早く開発し、保守していくかが求められる時代になっている、とも言えよう。

今後も基盤で食っていくのか、それともアプリ寄りの知識・技術を付けていくのか。基盤技術者は色々考えることが多くなってきているのではないかな。

*1:デフォルト設定なら、Job完了時に勝手に終了するようになっている