書店のオライリーの棚の前に、新刊として平積みとなっていたのを購入しました(初版第1刷) この本は、英語書籍(Data Intensive Text Processing with MapReduce)の和訳であり、その原著のプレプリントはPDFで自由にダウンロードできるということは後で知りました。
Hadoopの入門書では環境構築やシステムの詳細などに記述の大部分が割かれることが一般的で、具体的な局面にぶち当たった場合にどういう風にロジックを組めばいいのかというところまで踏み込んでくれないことが多いのですが、本書ではHadoopでいかにMapReduceを使ったロジックを組むかということに焦点をあて、疑似コードを通して理解を深めようというものです。
特に3章「アルゴリズムの設計」がこの本のハイライトで、Reducerに負荷をかけ過ぎないようにする「ローカル集約」、共起パターンの集計などをスピードアップできる「stripes」、Reducerで処理する際に値がソートされていることを保証する「value-to-key conversion」など、シンプルでかつ実際的な「デザインパターン」を複数あげています。原題は「テキスト処理」となっているのですが、必ずしもテキスト処理に限る話でなく一般的な処理にも適用できるものであり、邦題として「MapReduceデザインパターン」とわざわざ変えたのは日本語版担当者のセンスの光るところです。
ただ4章以降の具体例のうち6章のEMアルゴリズムは、訳者が内容を理解していないのか日本語訳が余りにもひどく、何度読んでも意味が通らなかったり、数式と言っていることが違う文章があったり、記号の誤植や用語の勘違い(joint distributionを「結合確率分散」としているなど)が散見されます(赤ペン片手に読んでましたが本が真っ赤に…) そもそも原著の方で1章で語るのに無理がある内容を押しこんでいるのが問題なのかも知れませんが、しかしそれにしてもあんまりです。この章で「統計的機械翻訳」が説明されているのは皮肉としか思えません。
それでも現時点で類書がなく、問題のあることを知りつつ5章まで読んでも十分価値があり、とりあえず★3つとしておきます。足りない星は改訂版で何とかしてください>担当者様