Hadoopに関する雑感 (Hadoop アドベントカレンダー2012 XX日目)

最近はなるべく技術的な話しか書かないようにしていたのですが、たまには個人的な思考を書いてみることにします。
クリスマスだし、ブログ初めてから8周年でもあるわけですし。


Hadoop は、大量のデータをリーズナブルに計算処理できるようにしたいという課題から生まれました。
つまりキーとなる課題として、

  • データが大量である
  • リーズナブルである
  • 計算処理ができる

というものがあります。
後ろ2つは話が早い。低コストで計算処理を行いたいというのはほとんどのIT関係者が抱くニーズでしょう。
しかし、「データが大量である」という課題が厄介です。
まず第一に、「そんな大量のデータがどこにあるのか?」という問題があります。
たとえば1日1TBのデータを生成したとしても年間365TBです。ようするに 0.3PB。ビッグデータの代名詞として言われる「ペタバイトオーダー」には程遠いです。
1日1TBって、要するに1時間あたり50GB近くデータを生成するわけです。


仮にデータは用意できたとしましょう。しかしもっと根本的な問題として、「大量のデータを処理するとどんな課題が解決できるのか?」という問題があります。
実際にデータを抱えている人にとっては容易な問題です。データ量が膨大になり、既存のDWHやRDBでは処理できない量になってきた。大量のデータが処理できれば解析がもっと楽になる、というものです。
しかしこの質問にはさらなる質問があります。
「データ解析すると何がうれしいの?」という話です。
この問題の方が数段深刻です。
このあたりはshowyouさんの記事でも言及されていますが、ほとんどのデータ解析担当者はExcel使ってます。たった5万円のCognos使った方がいいんじゃね?という意見にも耳をかさず、ひたすらExcel縛りプレイで解析し続けてます。
(たまにExcelバカにする人いますが、Excelはデータ解析の世界におけるデファクトスタンダードです。バカにしてはいけません。Excel方眼紙を憎んでExcelを憎まず)


さて「縛りプレイ」、要するにわざわざそんな不便なことをしている、という表現をしました。さてこの表現は適切でしょうか?
実際のところ、多くの人にとってExcelで足りてしまっています。
大量のデータの解析どころか、データ解析の世界でさえほとんどの人は課題に思っていません。
はっきり言うと、多くの人にとってHadoopは要らない存在なのです。


去年おかちまちさんが書いた記事から1年経過しましたが、その後このビッグデータ業界はどうなったか。
確かにユーザは増えています。
新しいクラスタを稼働させて今までは不可能だったデータ処理を行うことができるようになった人もいますし、既存のクラスタを大きくしてさらに大量のデータを処理することができるようになった人もいます。
しかし、ほとんどの人が「Hadoop」についての妙な誤解や、特に妙な期待を持ったまま動いていないというのが現状でしょう。
要するにほとんど何も変わってません。


で、じゃあその問題をどうやって解決するのよ、という話。
「課題ないんだからそのまま黙って死ねよ」という話は置いておきます。あと本当に私が食っていけなくなって死にます。
課題課題、とさっきから書いてるわけですが、新しいテクノロジーを使うのは本当に課題があるときだけなのか?
私は最近違うんじゃないかと思い始めました。
よく「日本でロボットが発達したのは鉄腕アトムドラえもん、ガンダムのおかげである」などと言われますが、真偽の程は別にして、憧れがテクノロジーに触れる原動力になるというのも往々にしてあるはずです。
じゃあその憧れの存在がデータ解析の世界にあるか?というと、実はこれもほとんどない。
SFの世界では宇宙船やテレポート装置、携帯式の何にでも使えるコンピュータなどが登場してきました。
このうち最後のアイデアは今ではスマートフォンと呼ばれ、現実世界の道具となっています。
こういう子供でも喜ぶような夢物語が、データ解析の世界にないというのが実は一番深刻なんじゃないかと思うのです。

「ログ解析してリコメンデーション」や「機械学習による高度な分類・フィルタリング」などなど、知識としてのデータ解析のパワーは多くの人が知っています。
もっと古典的な「統計・確率」も立派なデータ解析の技術です。これらのパワーを疑う人はいないでしょう。
じゃあ、おとぎ話の世界としてのデータ解析はあるか、というと、多分ほとんどない。
(もし知っている方がいましたら教えてください)

Hadoop は多分当分の間なくなりません。
しばらくの間、冬の時代がくるかもしれませんが、分散処理の需要そのものはなくなることはありません。
なぜならデータは増える一方だし、データの解析は人間の意思決定において必須だからです。
今は課題が少なくても、いずれ現実の課題に直面する人が増えてくるでしょう。
その前に私は食いっぱぐれるかもしれませんが、そのときは次の私がきっとうまくやってくれるでしょう。


でも、その課題を解決したいというモチベーションの最後の原動力は、やっぱり夢だと思うのです。
ファンタジーの世界の魔法使いのように、SFの世界の科学文明のように、人の願望を実現するようなスーパーヒーローが現れるかどうかで、今後の運命が決まるのではないかと、私はそう思うのです。
夢がなければ、ただの地味な仕事で終わってしまいます。
夢と言っても、今世の中で言われている「Hadoopを使えばこう変わる」なんて絵本のお伽話以下の世界です。何ら具体性がありません。


幸い、希望はあります。
2012年秋から放送されているアニメ「サイコパス」は、データ解析に関するエピソードがあちこちに出てきます。
サイトへのアクセス傾向からの真犯人特定、監視カメラ記録から特定人物だけの抽出、使用単語の違いから同一人物かどうかを判定など、データ解析をふんだんに使っていて非常に楽しいです。
そもそもサイコパスのテーマ自体が「人の主観を挟まない、データ解析の結果のみで人の善悪を判定することが正しいのかどうか」というものみたいだし、データ解析に携わる人にとっては見る価値のあるアニメと思います。

このサイコパスの世界観は決して明るいものではありませんが、データの解析によってこれだけのことが実現できるという可能性を示してくれています。
こういう作品がもっと世の中に出てくるとうれしいですね。


寺田寅彦の又又聞きですが、アインシュタインは教育についてこんなことを言っていたそうです。少し長い引用ですが読んでみてください。

例えば数学の教え方でも、もっと実用的興味のあるように、もっとじかに握つかまれるように、もっと眼に見えるようにやるべきのを、そうしないから失敗しがちである。子供の頭に考え浮べ得られる事を授けないでその代りに六むつかしい「定義」などをあてがう。具体的から抽象的に移る道を明けてやらないで、いきなり純粋な抽象的観念の理解を強いるのは無理である。それよりもこうすればうまく行ける。先ず一番の基礎的な事柄は教場でやらないで戸外で授ける方がいい。例えばある牧場の面積を測る事、他所よそのと比較する事などを示す。寺塔を指してその高さ、その影の長さ、太陽の高度に注意を促す。こうすれば、言葉と白墨はくぼくの線とによって、大きさや角度や三角函数などの概念を注ぎ込むよりも遥かに早く確実に、おまけに面白くこれらの数学的関係を呑み込ませる事が出来る。一体こういう学問の実際の起原はそういう実用問題であったではないか。例えばタレースは始めて金字塔の高さを測るために、塔の影の終点の辺へ小さな棒を一本立てた。それで子供にステッキを持たせて遊戯のような実験をやらせれば、よくよく子供の頭が釘付けフェルナーゲルトでない限り、問題はひとりでに解けて行く。塔に攀よじ上らないでその高さを測り得たという事は子供心に嬉しかろう。その喜びの中には相似三角形に関する測量的認識の歓喜が籠っている。

この言葉はそのまま現在のHadoopやビッグデータの世界にも当てはまると思うのです。
机上の空論ばかり先行して、実際が伴わない。
私のようなベンダーの人間が常々気をつけなければいけないことで、また現状については反省しなければいけないことでもあります。

この2年半ほどHadoopを触ってきましたけれど、未だ私のレベルはこの程度です。
使い道にせよ、使い方にせよ、自分が知らなければいけないこと、人に伝えなければいけないことは多々あります。


ほとんどHadoop関係のない話になりましたが、たまには思うがままを書いてみることにしました。