Hadoopとデータサイエンティスト

次の仕事がHadoop関連かもしれないということで、素振りというかイメトレはじめました。

スライドはこちらがわかりやすいです。
Hadoop入門とクラウド利用

まずは下記の書籍2冊を僕はぱらぱら見ています。

Hadoop

Hadoop

Hadoop徹底入門

Hadoop徹底入門

違いは下記の通りです。

Hadoopに関して現在日本語で読める大きな情報源として有名なのは、オライリーさんから出版されている「Hadoop」本になります。

本書はこの本と補完関係に有ると思っています。オライリーさんのHadoop本は、どちらかと言えばHadoop上でMapReduceアプリケーションを開発する為の内容になっていますが、本書はどちらかというとシステムの環境構築、運用、監視、可用性の確保等といった内容がメインになっています。

「Hadoop徹底入門」が出ます | Preferred Research

MapReduceのサンプルアプリはオライリー本のほうは0.20系、徹底入門は0.21系での解説となっています。そういう意味ではオライリー本のほうが古いのですが、mochitoを使ったMapper,Reducerのユニットテストなど開発に関する記述は充実しています。どちらかを選べといわれたらオライリー本を選びます。ちなみに徹底入門は7章の環境構築が面白い気がします。誤植がちらほらあるのはおいときますw

環境構築は心が折れそうなので、さらにHudsonクラスタをHadoopクラスタに - 川口耕介のブログあたりでもっと省力化できないかなあとか思ってます。PXEプラグインもあるしね。

さてHadoopといえば大規模データ解析で、例としてあがるのはログを解析してユーザがどういうことに関心をもっているか分析したり、売り上げデータを協調フィルタリングで分析して商品をレコメンドしたりといったことでしょう。いずれもYahooのようにWebサービスを提供しているような会社での使用がメインだと思われます。

#基幹バッチ処理にターゲットを置いているAsakusaというのもあるようです

とはいえ、これからもデータは増加の一方ですし、解析できる人間の需要も高まると思われます。

これまで、「より多くのデータはよりよいアルゴリズムを凌駕する」という言葉がありました。これは、ある種の問題(例えば、過去の嗜好から映画や音楽を推薦するといったような)に関してはそのとおりであり、どれほどアルゴリズムを巧妙なものにしたとしても、それよりも単により多くのデータを用意する(そしてそれほど洗練されていないアルゴリズムを適用する)方がよい結果が得られることはよくあるのです。ただし、ここでよいニュースをお知らせしましょう。巨大なデータはもう目の前に存在しています。悪いニュースもお知らせしなければなりません。私たちはそのデータの保管と分析に、苦闘し続けているのです。

Hadoop

データ解析はいままでは専門のアナリストがやっていたことかもしれません。しかし段々とそういう時代ではなくなりつつあるかもしれません。

これからは、学生アルバイトが Google あるいは Amazon 上の分散システムを駆使して大量のデータを操り、そこらの新卒社員が統計学データマイニング機械学習を駆使して新たな視点を創りだす時代です。

2010年まとめ:データと向き合った一年 - 科学と非科学の迷宮

Facebookでは、ビジネスアナリスト、統計学者、エンジニア、リサーチサイエンティストといった従来の肩書きは、私たちのチームにとってまったく魅力的なものではなかった。各役割の作業負荷は多種多様である。ある日の、あるメンバーの行動は、多段階の処理パイプラインをPythonで書き、仮説検定を設計し、統計ソフトウェアRを用いてデータサンプルの回帰分析を行い、Hadoopで大量のデータを扱う製品やサービスのアルゴリズムを設計して実装し、分析結果を明瞭かつ簡潔な方法で組織の他のメンバーと話し合う、といった感じだ。このように数多くの仕事をこなすのに必要なスキル一式を表すために、私たちは「データサイエンティスト」という肩書きを作り出した。

ビューティフルデータ

データサイエンティストかっこいい!

もう今の時代、インフラだけわかっていればいい、アプリだけわかっていればいい、ドメイン知識さえあればいい、そんなレイヤー別の分業体制が続くほど世の中甘くはない気がします。もちろん全てをわかったスーパーエンジニアにはなれないでしょう。でもどこかしらに重点はおきつつも、他の分野も広く浅く押さえていたいものです。積読になっている集合知プログラミングも読み返そうかなあ。。。

大規模データを解析して意味ある情報を引き出すには統計的知識を持っていなくてはダメで、その知識をもとにMap関数とReduce関数書かないとね。そういう解析屋さんと基盤整えるインフラ屋さんが同じになりつつあるのではなかろうかと思う今日このごろです。ハードル高いわ。