読書会(Hadoop 第2版)第1回議事録
[ 戻る ]
Java読書会 「Hadoop 第2版」を読む会(第1回)議事録
日時 : 2011/10/29(土) 10:00-17:00
場所 : 高津市民館 第6会議室
出席者:今井、岩永、岩室、遠藤、大槌、小棚木、柿沼、門脇、桜井、高橋(徹)
高橋(智)、根本、松永、村山、吉本(書記)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
■著者紹介
■訳者紹介
■カバー説明
■序文
■訳者まえがき
■はじめに
■1章 Hadoop事始め
■1.1 データ!
・単位が大き過ぎて、イメージ出来ない。
→1ペタ=1000テラ
・Internet Archiveのサイズが思ったより小さい。
→圧縮が効くテキストデータだけなのかもしれない。
■1.2 データの保管と分析
■1.3 他のシステムとの比較
■1.3.1 RDBMS
■1.3.2 グリッドコンピューティング
■1.3.3 ボランティアコンピューティング
■1.4 Hadoopの歴史
■1.5 Apache HadoopとHadoopのエコシステム
■第2章 MapReduce
■2.1 気象情報データセット
■2.1.1 データフォーマット
■2.2 Unixのツールによるデータ分析
・awkは知っている人しか知らないツールになってしまったのか。
→今はPealから入る人が多いから。
→だからクラシックなのか。
■2.3 Hadoopによるデータの分析
■2.3.1 mapとreduce
■2.3.2 Java MapReduce
■2.3.2.1 テスト実行
・ログに出力されているspillとは?
→内部的にテンポラリとしてファイルに書き出しているという記述。
■2.3.2.2 新しいJava MapReduce API
・MaxTemperatureMapperとNewMaxTemperatureMapperの違いは?
→Mapperクラスがインターフェースから継承に。
→Reporterクラスが必要無くなった。
→MaxTemperatureReducerとNewMaxTemperatureReducerとの違いも同じ。
・Hadoopで実行出来るのはJavaだけなのか?
→RubyやC++でのサンプルも載っている。
■2.4 スケールアウト
■2.4.1 データフロー
■2.4.2 集約関数
・集約関数は、reduce関数と同じものではない例はあるのか?
→制約を満たせば使えると思われる。
→実際のところ、シャッフルをどうするかがキモになる。
→平均を求める場合に加算をさせる使い方が出来るのでは?
→この場合、件数も必要になるが・・・。
→valueが配列で渡せるので、件数も取れる。
■2.4.2.1 集約関数の指定
■2.4.3 分散MapReduceジョブの実行
■2.5 Hadoopストリーミング
■2.5.1 Ruby
・RubyのサンプルがPythonのサンプルより前に書かれているのは画期的。
・lineをvalに代入する必要は無いのでは?
→lineがMapReduceのvalueに当たるので、明示的にしているのではないか。
■2.5.2 Python
■2.6 Hadoop Pipes
■2.6.1 コンパイルと実行
■3章 Hadoop分散ファイルシステム
■3.1 HDFSの設計
・「非常に大きな」ファイルというのは、1つのファイルを指すのか?
→そうだと思う。
・低レイテンシを求めるアプリケーションとは何か?
→小さなデータで画面とやり取りするWebアプリなどではないか。
→レイテンシとスループットはトレードオフの関係なので、
スループットが求められるアプリケーションは低レンテンシになるのではないか。
■3.2 HDFSに関する概念
■3.2.1 ブロック
・SSDであればシークタイムが無いため、考え方も変わってくるだろう。
→RDBはSSDで劇的に速くなっている。
→あまりがんばらなくても速くなりそう。
■3.2.2 ネームノードとデータノード
・NFS上のファイルはアトミックに動作するのか?
→あまり信用出来ない。
→書き込みが集中しなければ、コミットのタイミング次第ではないか。
→Hadoopでは編集イメージのI/Oが少ないので、これでもアリかと思われる。
■3.3 コマンドラインインターフェース
■3.3.1 基本的なファイルシステムの操作
■3.4 Hadoopのファイルシステム群
■3.4.1 インターフェース
■3.4.1.1 Thrift
・Thriftとはどのようなものか?
→Facebookで開発された言語間のシリアライズを行うライブラリ。
→CORBAを簡略化したようなものか?
→巨大なデータを直接扱うだけでなく、追記型で大きなファイルを作る必要があったのでは?
→RDBの処理結果なども想定されているのではないか。
→バックアップが大変そうだ。
→「はまる」シチュエーションを見極めないと意味が無さそう。
→結局はIDLということか。
■3.4.1.2 C
■3.4.1.3 FUSE
■3.4.1.4 WebDAV
■3.4.1.5 その他のHDFSインターフェース
■3.5 Javaインターフェース
■3.5.1 Hadoop URLからのデータの読み出し
■3.5.2 FileSystem APIを使ったデータの読み出し
■3.5.2.1 FSDataInputStream
・「ファイル中の現在のオフセットと保存し、かつスレッドセーフなので」とはどういうことか?
→複数スレッドで扱えるということか?
→同じインスタンスを共有出来るということか?
→ソースの中を見ると、synchronizedをしているだけということもありえる。
→通常は、シングルスレッドを想定しているのではないか。
■3.5.3 データの書き込み
■3.5.3.1 FSDataOutputStream
■3.5.4 ディレクトリ
■3.5.5 ファイルシステムへの問い合わせ
■3.5.5.1 ファイルのメタデータ:FileStatus
以上
次回は、P63より。
[ 戻る ]