[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 13584] 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より。