西田圭介のレビュー一覧
-
Posted by ブクログ
最近(というほど最近でもないかもしれないけど)、BigDataなるキーワードが脚光を浴びているので、事前知識を得るために読んでみました。
ざっくりと概念的に、Google検索がどういうことをやっているのかということがわかるとともに、GFS、MapReduceという大規模分散データ処理を扱う仕組みがわかりました。
また、本書では基本的にざっくりとした構造・仕組みの説明をしているのですが、随所に原典論文URLが書かれていて、詳しく調べるのにも便利だと思います。(自分は、たぶんそこまで読み込まないけどw)
わかりやすく、内容も適度な詳細さですので、私はかなりの良書だと思います。 -
Posted by ブクログ
最初に本書の内容はほぼ全てgoogleの発表した論文にあり、英語が読めない人にとってはいい本。
googceのシステムがどのようにして、分散化システムを構築し、そのハードウエアの持てるパワーをいかにひきだしているかがわかる。Googleの検索能力の早さは使用している人ならわかるが、それを支える技術力というのは想像を絶する。
中でも興味深いのは、Googleは
一度検索するとコーヒー2杯分のお湯が沸くといわれるほど電力消費が激しいと言われているが、そのサーバの電力は緻密に計算された上での、最低限の電力消費であり、最高に高いの電力効率で運営されている事がわかる。 -
Posted by ブクログ
現在のIT業界を牽引するとも言える企業のGoogle。
そのGoogleのビジネスの根底にあるものは当然ITとしての基盤と技術。
それを公開されている確かなる情報を基に、
丁寧にわかりやすく解説、まとめてくれている。
クラウドコンピュータから、CPUの電源効率まで、一挙大公開。
元々がまとまっているから、要約しにくい・・・。
以下ほぼ単語抜粋。
○Google的意味のあるページの評価基準(今は昔)
−PageRank:ページリンクを得点する
−アンカーテキスト:アンカーされていたら得点する
○インデックス構造:文字を数値にすることで二つのメリット
−コンパクトになり、ディスクのシーケンス時間が短くなる
−階層化させて、キーに結びつく値を意味を持たせられる
○インデックス生成
−docID:WEBページ固有の番号
−wordID:WEBページ内に存在する単語
−wordIDをdocIDと紐付けする。
その要素は「位置」、「大きさ」、「その他」の3要素。
○GFS:GoolgeFileSystem
−clientはMasterと通信して読み書きを行う
−Masterの下のチャンクはクラスタリング(レプリケート)されて、
耐障害性を高めている。
−チャンクの生死はMasterが管理
−チャンクとMasterを足せば、論理的に容量は無限大
−チャンクの書き込みミスは、パリティを入れて読み込み時に確認
−たまたま再起動していたり、データの古いチャンクは、
データの更新用シリアルナンバーでMasterから切り離される
−Masterの障害はOperationLogをMaster同士がコピーして補完
○BigTable
−Googleのインデックスに特化した、
非常に簡易なディスクをまたがる巨大なテーブル。
−ただし中身は複雑で多次元構造となっている。
総じて、Googleの検索という技術は、
ITという技術にうまくモデリングできているところに妙があると思う。
同じように現実世界の内容をITにうまくモデリングできれば、
同じように稼ぐことができるのかもしれない。
またモデリングのうまさだけでなく、
この技術を他の分野でも使用できるようにしているところが、
またGoogleの強さだろう。
学びが多い。 -
Posted by ブクログ
一通りデータ処理する基盤構成はわかった。
具体的にデータ分析基盤を作り込むときに、どのような製品を使用するか/どう作り込むかのイメージはまだつかない。
たとえば、
・データレイク/データウェアハウス/データマートのそれぞれの概念はわかったが、それにあたる製品/ツールのマッピングや作り込み方、それぞれの連携のさせ方はイメージがつかない。
・ETLはデータ加工するという概念的なものだと思うが、どのように加工するものなのかわからない(非構造化データを構造化データにすることなのか、それ以外の何かしらの加工も含むのか、、)
など。
実際に手を動かしてみないと、イメージは掴めなそう。 -
Posted by ブクログ
googleの検索レスポンスは恐ろしく速い。私は仕事柄、どんなソフトを見ても、なんとなくその構造を想像できるが、googleだけは全くわからない。なぜ、あれほど堅牢に、あれほど正確、あれほど速いのか?それに答えるのが本書である。 まず、最初に一般的な検索サイトの技術要件をて定義し、googleの検索システムの概要説明を行う。大枠のアーキテクチャがなんとなくわかったところで、システムの重要な概念、モジュールであるgfs、bigtabel、MapReduceなどの詳細を解説。ここでのキーワードは、「大容量」である。googleのシステムは、全世界からダウンロードしてきた大量データに特化したアーキテクチャになっている。もう一つのキーワードは、「安いPCを大量に使う」である。安い故に低パフォーマンスのPCを、ネットワークを使用した超並列的分散アーキテクチャでつなぎ合わせ恐ろしいほどのパフォーマンスを安価に実現する。恐るべきgoogleの技術力。 その後、本書では、googleのコストについての推測を試みる。あれだけのデータセンターを持ってしまうと電気代が年間100億円、PCが300億円と読む。結構な額だが、売り上げ規模から考えればゴミみたいなものだと思う。しかし、ここでもgoogle魂発揮で、いかに電気代を下げるかと技術的試みを死に物狂いでやっているらしい。恐るべきgoogleのカイゼン魂。 最後に、ソフト開発に代表されるgoogleのマネージメントに言及する。個人の自主性を重んじる、20%の時間は現在の仕事以外に使う、などの良くあるプラクティス(でも普通の会社は実行できていない)が掲げられている。 全体を通しての感想は、「さすがgoogle。ここまでやるか!」。一つ一つは大したことやっていないが、細かい工夫を山ほど行い最高の企業になっていると思う。
-
Posted by ブクログ
ネタバレ「ハードディスクはいつ壊れるか」
年間平均故障率(AFR)…いつどこで作られたかが重要
利用頻度には相関がみられない
温度は低い方が故障しやすい傾向(25℃以下)
故障率に大きく影響するSMART値
①スキャンエラー、②リアロケーション数、③オフラインリアロケーション、④リアロケーション前のセクタ数(ProbationalCount)
SMART値に関係なくいきなり壊れるものもある。
すべてを予測するのは難しく、壊れる前提での設計が必要。
「Googleのソフトウェア開発」
小人数(2~6人)のプロジェクトチーム
就業時間の20%を新しいことに費やす20%ルール
コードレビューを通じてコーディングスタイルを統一
1週間以上の作業を要することには設計ドキュメントを作成
アイディアはDBに登録、オンライン投票で意見を認められると20%プロジェクトスタート
基本設計文書
①背景・目的、②設計、③メンバー、④セキュリティ・プライバシーの考察等、⑤テスト・モニタプラン
デモサイトで意見収集
情報共有
①メーリングリスト・ブログ、②社内ポータル・Wiki・GoogleDocs
プログラミング言語
①C++、②Java、③Python
ちなみに2017/4は、
①C/C++、②Java/JavaScript、③Python、④Go、⑤TypeScript
Googleのプロジェクト管理はWrikeを使用している -
Posted by ブクログ
ネタバレフォトリーディングNo.53
目的:Google技術をおさらい
トリガーワード:Web検索エンジン、インデックス、クローラ、ランキング、データセンター、クラスタ、分散、GFS、マスタ、チャンクサーバ、クライアント、レコード、スナップショット、障害対策、ビッグテーブル、タブレットサーバ、キャッシュ、コミットログChubby、バックアップ、ロック、イベント、MapReduce、キー、値、シャッフル、分散、grep、分散ソート、アグリゲータ、電力、クロック周波数、SMART値、開発、コードレビュー
質問:①インデックスをどのようにつくって使うのか?
②Googleの初見重要そうな技術は?
~20120616ポストレビューここまで~
~20120619アクティベーションここから~
質問に対するまとめ:
①クローラが収集してリポジトリに格納したWebページを取り出し、インデックスを生成する。
A:構造解析(URIとWeb情報)→B:単語処理(ページ内の単語の位置、装飾)→C(リンク情報(アンカーテキスト)→Dランキング情報(ページランク、アンカーテキスト、単語の位置大きさ)の4つのインデックスを順に追って生成し、検索サーバから利用者へ渡す。
②GFS:Google File System:分散ファイルシステム。多数のマシンで巨大ストレージ。インデックスの更新、参照などに。
ビッグテーブル:GFSより小さなデータを読み書き。DBと多次元マップを合わせたようなデータモデル。クローラの集めたページの格納などに。Google AnalyticsやGoogle Earthにも。
MapReduce:分散処理の基礎技術。インデックス生成過程や分散grep、分散ソートに。Mapでデータから新データを生成し、Reduceでまとめあげる。Key&Vallue。
雑感:知らない用語、内容多数。サービスだけでなく、裏の技術も意識する必要あり。Google云々以前の前提知識が不足しているので、分散処理などは理解しておく。 -
Posted by ブクログ
ネタバレ〇感想
・良かったところ:
・世界中のウェブから高速でデータを検索する
Googleの技術を知ることができた。
Googleはウェブから事前にページを探し、
検索に適する形式で内部データベースに保存しておく。
それをベースにユーザーのキーワードで検索する。
それを支えるのが、インデックスや分散コンピューティング。
Google=検索エンジンとしか考えず、
中身については知らなかったが、理解が深まった。
・悪いところ
・プログラミングを記載して多くのページを割いているが、
クローラなど重要なことを詳しく書くべき。
プログラミングを書く本ではない。
〇本の内容
・クローラ
・インデックス
・MapReduce
・Googleのデータセンターの構成