自己紹介

太田一樹。
東京の大学の情報科学科に通う大学生。moratorium満喫中。

お勧め書籍 [全部見る]

飾り

Search


Category Archives

Recent Entries

  1. 論文
  2. JJUG CCCでプレゼンします
  3. kzk's bookshelf
  4. En Google by Gulfweed
  5. PNUTS
  6. コメントスパム対策
  7. Hadoop + Luceneで分散インデクシング
  8. Hadoopの解析資料
  9. Cluster 2008
  10. SWoPP 2008

2008年04月30日

献本: Googleを支える技術

Googleを支える技術 ‾巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)

(株)技術評論社 土井様より、西田圭介さん著の「Googleを支える技術」を献本して頂きました。有難うございます。届いた1日目に全部読ませていただいたんですが、書くのが遅れました。

この本はGooglerが出している論文の中でも、特にインフラに関わる論文を平易な日本語で解説したものです。CSを学んでいる人にとってはGoogleの持つシステムの全体像を把握するのに最適な本ですし、初学者にとっても大量のマシンを使ってデータを処理するためにはどのような工夫がいるのかを学べる凄く良い本だと思います。プログラマとして世界中のデータを処理しているGoogleの技術を理解していることは必須ではないかと思います。

この本で興味を持った方は元論文、さらにはreferしている論文を読んで大規模分散システムについて色々と調べると面白いんじゃないんでしょうか。僕は一応全部読んだんですが、最初はとりあえずGFS -> MapReduce -> BigTableという順番で論文を読むといいんじゃないでしょうか。Chubbyの論文は前提知識が必要でちょっと大変な印象です。

西田さんとは確か2年ぐらい前に渋谷の居酒屋で一緒に飲んで凄い人だ、と思った記憶が有ります。なんでこの本に外れは無いかなと思っていたのですが、案の定大当たりでした。今では周りの人に薦めまくってます。ISerの人は手元に1冊持ちませう。Googleの人も新人研修に使えそうとか言ってましたね(笑)

他の方も既にレビューを書かれているみたいなので、リストを挙げておきます。

中身についてはもう書かれてちゃってるので、ヨタ話でも。Googleを支える技術で紹介されている論文のAuthorリストを見ると、凄く面白いことがわかります。 GFS, MapReduce, BigTable(+ tcmalloc)等には全てJeff DeanSanjay Ghemawatという2人が関わっている事がわかります。特にJeffは広告システム・ランキング・機械翻訳等ありとあらゆるGoogleの重要なプロダクトに関わっていることがリストにも書いてあります。

あとはMSRから移籍したMike Burrows(Chubby, Burrows-Wheeler Transformなど)や、Compaqから移籍したFay Chang(BigTable, Storage系の研究)、Rob Pike(Sawzall, Plan9)など、重要なインフラ部分のデザイン・実装に関わった人は多くても20人ぐらいなんじゃないですかね。

そういう点で如何に優秀な人材を引き抜いているGoogleでも、特に一部の人間が一番重要な問題を解き、成果を出しているというのは、非常に面白く感じます。まあ外の人間が言ってることなんで外してるかもしれませんが。

また最近Leslie Lamportの分散アルゴリズムの理論を実世界に応用するのがトレンドのように感じています。ChubbyのpaxosとかDynamoのVectorClockとか。昔はマシンがそんなに多くなかったので実際にこういうのを使わなくても問題が発生する確率は少なかったんでしょうけど、最近は状況が変わってきてるんでしょうね。20年前の研究が今になって陽の目を浴びるというのを見るのは非常に面白いです。

最後ちょっと宣伝も混じりますが、最近はGFSやMapReduceのオープンソースクローンであるHadoop, BigTableのオープンソースクローンであるhBaseというものが出てきています。実際にコードを読んでみて良く出来ているなと感じたので、翔泳社さんに丁度話を頂いてCodeZine上でこれらの使い方を解説した記事を書いています。

第1回: Hadoop、hBaseで構築する大規模分散データ処理システム

「Googleを支える技術」を読み終わって、実際にGoogleの技術を体感したいという方にはぴったりかと思いますので是非読んでみて下さい。特にログが膨大に溜まっているけれど活用し切れていないとかいう方にはお勧めです。HadoopはJavaで書かれていますが、C++, Ruby, Pythonなど任意の言語でMapReduceプログラムが書けるようになっているのでどなたでも大規模データ処理が可能になります。

1回目は簡単な導入ですが、2回目は実際のインストール方法、3回目以降は複数代マシンへのインストールと性能評価したいと思っています。Hadoop普及の為にどっかで一回プレゼンしたいなあー。


trackbacks

trackbackURL:

comments

丁度今HadoopとかHDFSいじったりしてるんで
連載楽しみにしてます!特に性能評価w

  • nobu
  • 2008年05月01日 10:47

ほへー、なんか興味対象が似てきましたねw

24台ぐらいでソートしたりしてますよん。本当はもっと欲しいですけど・・・。

  • kzk
  • 2008年05月01日 11:15
comment form
comment form