読書会(Hadoop 第2版)第4回議事録

[ 戻る ]


Java読書会議事録 (2012-01-21)

参加者(敬称略): 高橋(徹)、高橋(智)、遠藤、門脇、吉本、松永、村山、まさあき、岩室(記)

6章 MapReduceの動作

6.1 MapReduceジョブの実行の内幕

6.1.1 ジョブの投入

6.1.2 ジョブの初期化

6.1.3 タスクの割り当て

6.1.4 タスクの実行

6.1.4.1 ストリーミングとパイプ

6.1.5 進行状況とステータスの更新

6.1.6 ジョブの終了

6.2 障害

6.2.1 タスクの障害

・p.191 typo: ×jpbtracker → ○jobtracker
この手の単語はスペルチェックで判定するのは難しいですね……。

6.2.2 tasktrackerの障害

6.2.3 jobtrackerの障害

6.3 ジョブのスケジューリング

6.3.1 フェアスケジューラ

・contrib:「コントリブ」(contribution)

6.3.2 キャパシティスケジューラ

・「組織」とは具体的に何か? グループみたいなもの?
⇒LDAP等のディレクトリサービスでも「オーガニゼーション」と呼ばれる
概念がある。(OU:オーガニゼーションユニット等)
⇒10章のHadoopのユーザ管理を見ればわかる?

・スケジューラ等、リソースに関する優先度付きの制御は上手く働くのか?
⇒工夫しても上手くいかない場合もある。メモリ管理でもいろいろ考えられ
てるけど、例えば世代別GCではうまくハマらなかったときのペナルティが
大きい。(寿命が中途半端=Old領域に移ってすぐ死ぬオブジェクトが多い場
合とか)

6.4 シャッフルとソート

6.4.1 map側

6.4.2 reduce側

・reducerに渡されるデータは、reducer内でソートはされているが、異なる
reducer間では順序関係はあるか?
⇒無いのではないか。

6.4.3 設定のチューニング

・p.197表6-1 typo: ×io.soft.record.percent ○io.sort.record.percent
(so*F*tではなくso*R*t)

・「メモリを使うと速い」
⇒それはそうだよね、という話。

6.5 タスクの実行

6.5.1 投機的実行

6.5.2 タスクJVMの再利用

・「律速」?
⇒一般用語ではない? 化学用語? ボトルネックとは似て非なる?

6.5.3 不良レコードのスキップ

・「4回失敗」→全体で4回か、特定のタスク内で4回か?
⇒p.190下から2行目によると後者 (特定のタスク内での回数)

6.5.4 タスクの実行環境

6.5.4.1 ストリーミングの環境変数

・"."→"_"に置換される。

6.5.4.2 タスクの副作用ファイル

7章 MapReduceの型とフォーマット

7.1 MapReduceの型

7.1.1 デフォルトのMapReduceジョブ

・Integer.MAX_VALUEとビットANDを取ると、最上位ビットのみ0なので、符号ビッ
トが落とされるという小技。

7.1.1.1 デフォルトのストリーミングジョブ

7.1.1.2 ストリーミングにおけるキーと値

・(読んでいる場所とは直接関係ないが)Hadoopを個人で実行しようとしたとき、
適切な例題が思い付かないという問題がある。

7.2 入力フォーマット

7.2.1 入力スプリットとコード

7.2.1.1 FileInputFormat

7.2.1.2 FileInputFormatの入力パス

7.2.1.3 FileInputFormat入力スプリット

7.2.1.4 小さいファイル群とCombineFileInputFormat

7.2.1.5 分割の回避

7.2.1.6 mapperの中のファイル情報

7.2.1.7 ファイル全体をレコードと見なしての処理

7.2.2 テキスト入力

7.2.2.1 TextInputFormat

・1行は保証される。(行が分割されることはない)
・1行がHDFSブロッック境界をまたぐことはある。
・その行のファイル先頭からのオフセットはわかるが、何行目かはわからない。

7.2.2.2 KeyValueTextInputFormat

7.2.2.3 NLineInputFormat

7.2.2.4 XML


[ 戻る ]