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

[jfriends-ml 13590] 議事録( Re: 「 Hadoop 第 2 版」を読む会第 2 回エントリ状況)



今井です。こんばんは。

参加者の皆様、お疲れ様でした。

本日の議事録をお送りします。
確認等よろしくお願いします。

Imai
Java“Ǐ‘‰ïuHadoop ‘æ2”Łv‚ð“Ç‚Þ‰ï ‘æ‚Q‰ñ ‹cŽ–˜^

“úŽž: 2011”N11ŒŽ26“ú(“y) 10:00-17:00
êŠ: ìèŽsŽY‹ÆU‹»‰ïŠÙ ‘æ‚P‰ï‹c
ŽQ‰ÁŽÒ: ª–{A¬’I–؁A‰““¡A‚‹´(’q)A¼‰iA–å˜eA‚‹´(“O)A‘ºŽRAÎ•A‹g–{A¡ˆä
‘‹L: ¡ˆä
”͈Í: 3.5.5.2 ƒtƒ@ƒCƒ‹‚̃ŠƒXƒg(p.63) ` 4.3.5.1 Avro‚̃f[ƒ^Œ^‚ƃXƒL[ƒ}(p.116)

--------

# 3Í Hadoop•ªŽUƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€
# 3.5 JavaƒCƒ“ƒ^[ƒtƒF[ƒX
# 3.5.5 ƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚Ö‚Ì–â‚¢‡‚킹

3.5.5.2 ƒtƒ@ƒCƒ‹‚̃ŠƒXƒg

3.5.5.3 ƒtƒ@ƒCƒ‹ƒpƒ^[ƒ“

- gƒOƒƒrƒ“ƒOh‚Á‚Ĉê”Ê“I‚ÈŒ¾—t?
@* •¶Žš—ñˆê”ʂ̘b‚Å‚Í‚È‚­ƒƒCƒ‹ƒhƒJ[ƒhŠñ‚è‚ÌŒ¾—t‚¾‚ÆŽv‚¤
  * –ì‹…‚̃Oƒ[ƒu‚Ý‚½‚¢‚ɃKƒo‚Á‚Æ‚Æ‚éƒCƒ[ƒW‚©B

- ƒpƒX‚É“ú–{Œê‚ÍŽg‚¦‚é‚Ì‚¾‚낤‚©H
  * •¶ŽšƒR[ƒh‚¾‚Æ‚©A‘÷‰¹‚Ȃǂ̍‡¬•¶Žš‚¾‚Æ‚©A’·‰¹‚¾‚Æ‚©A‚¢‚ë‚¢‚ë‚ ‚Á‚āA
    ƒOƒƒrƒ“ƒO‚ª‘å•Ï‚»‚¤B
  * ‚»‚à‚»‚à•¶ŽšƒR[ƒh‚͉½‚¾‚낤H UNICODE ?
  yh‘èz“ú–{ŒêƒpƒX–¼‚ðŽŽ‚µ‚Ä‚Ý‚é

3.5.5.4 ƒpƒXƒtƒBƒ‹ƒ^

- globStatus()‚ÅPathFilter‚͈ê‚‚µ‚©Žw’è‚Å‚«‚È‚¢‚́H
  * ³‹K•\Œ»‚Å‚©‚¯‚é‚̂ŁA³‹K•\Œ»’†‚Å•¡”ƒtƒBƒ‹ƒ^‚ð‘‚­‚±‚Æ‚Í‚Å‚«‚é
  * ƒtƒBƒ‹ƒ^‚ðƒsƒŠƒIƒh‚ł‚Ȃ°‚Ä‚¢‚­‚Æ‚¢‚¤Š´‚¶‚ÅŽg‚¢‚½‚¢
  * •¡”ƒtƒBƒ‹ƒ^‚ðŽw’è‚Å‚«‚éPathFilterƒTƒuƒNƒ‰ƒX‚ðì‚Á‚Ä‚à‚悳‚»‚¤

3.5.6 ƒf[ƒ^‚̍폜

- uƒtƒ@ƒCƒ‹‚âƒfƒBƒŒƒNƒgƒŠ‚ðŠ®‘S‚ɍ폜‚·‚邱‚Æ‚ª‚Å‚«‚év(l.1)‚Æ‚ ‚邪A
  ŽQÆ‚ªÁ‚¦‚邾‚¯‚ÅŽÀ‘̂͏Á‚¦‚È‚¢‚Ì‚Å‚Í‚È‚¢‚¾‚낤‚©B

- uiƒfƒBƒŒƒNƒgƒŠ‚ª‹ó‚Å‚È‚©‚Á‚½ê‡‚́AIOException‚ª“Š‚°‚ç‚ê‚Ü‚·jv‚́A
  recursive‚ªfalse‚ÌŽž‚ÌŽ–‚¾‚낤B

- ƒpƒX‚ÌŠK‘w‚ɐ§ŒÀ‚Í‚ ‚é‚Ì‚¾‚낤‚©B

3.6 ƒf[ƒ^ƒtƒ[

3.6.1 ƒtƒ@ƒCƒ‹“ǂݍž‚݂̉ð–UŠw

- p.69 l.1uiƒuƒƒbƒN‚̏ŠÝ‚̓ƒ‚ƒŠ‚É‹L‰¯‚³‚ê‚Ä‚¢‚é‚̂ŁA...v‚̃ƒ‚ƒŠ‚́A
  ‚Ç‚±‚̃ƒ‚ƒŠH ¨ ƒNƒ‰ƒCƒAƒ“ƒgƒm[ƒh‚¾‚낤B

- ƒNƒ‰ƒCƒAƒ“ƒgƒm[ƒhAƒl[ƒ€ƒm[ƒhAƒf[ƒ^ƒm[ƒh‚͕ʃVƒXƒeƒ€‚¾‚ÆŽv‚¤‚ªA
  ‰“‚­‚É‚ ‚鎞‚ɃvƒƒLƒV‚È‚Ç‚Í‚Ç‚¤‚È‚é‚Ì‚¾‚낤B

- ƒRƒ‰ƒ€uƒlƒbƒgƒ[ƒNƒgƒ|ƒƒW‚ÆHadoopv‚Ì‹——£‚Í‚Ç‚¤‚µ‚Ä‹ô”‚΂©‚è?
  * ƒpƒX‚ðã‚ª‚Á‚Ä1A~‚è‚Ä1‚Ɛ”‚¦‚Ä‚¢‚éB—Ⴆ‚΁A“¯ˆêƒ‰ƒbƒN“à•Êƒm[ƒh‚ł́A
    /d1/r1/n1 -> /d1/r1 -> /d1/r1/n2 ‚ŁA‹——£‚Í2B

3.6.2 ƒtƒ@ƒCƒ‹‘‚«ž‚݂̉ð–UŠw

- HDFS‚Å‚È‚­Oracle‚Ȃǂ̉¼‘zFSã‚ō\’z‚µ‚Ä‚à—Ç‚¢‚Ì‚Å‚Í‚È‚¢‚©
  * RDBMS‚ł̓XƒP[ƒ‹‚µ‚È‚³‚»‚¤
  * Oracle‚Å‚àƒ}ƒ‹ƒ`ƒ}ƒXƒ^[‚à‚ ‚éB‚Å‚à‚ŠzB
  * ˆê‘ä‚ÉHD‚ł̓V[ƒNƒ^ƒCƒ€‚È‚Ç‚ÉŒÀŠE‚ª‚ ‚èA‘å—ʃf[ƒ^‚ł͏ˆ—‚ª
    ’Ç‚¢‚‚©‚È‚¢‚©‚çHDFS‚ðŽg‚¤‚Æ‚¢‚¤‘O’ñ‚à‚ ‚éB
  * ‚»‚à‚»‚àA‘Ώۂɂ·‚éƒf[ƒ^‚̐«Ž¿‚ªˆá‚¤‚Ì‚Å‚Í‚È‚¢‚©B

3.6.3 ˆêŠÑ«ƒ‚ƒfƒ‹

- ‹r’õ‚̍ŌãAu‚Ü‚¾ƒf[ƒ^‚ªƒfƒBƒXƒNƒLƒƒƒbƒVƒ…‚Ì’†‚ÉŽc‚Á‚Ä‚¢‚é‰Â”\«‚Í
  ‚ ‚è‚Ü‚·Bv‚́uƒLƒƒƒbƒVƒ…v‚́Aƒn[ƒhƒfƒBƒXƒNƒhƒ‰ƒCƒuã‚̃LƒƒƒbƒVƒ…‚Ì
  ‚±‚Æ‚¾‚æ‚ˁB

- FSDataOutputStream#flush()‚͉½‚ð‚µ‚Ä‚¢‚é‚Ì‚¾‚낤B

3.6.3.1 ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̃fƒUƒCƒ“‚É‚à‚½‚ç‚·‰e‹¿

3.7 distcp‚É‚æ‚é•À—ñƒRƒs[

- HDFS‚ðƒuƒ‰ƒEƒY‚Å‚«‚é‚悤‚ȃc[ƒ‹‚Í‚È‚¢‚Ì‚¾‚낤‚©?
  * ƒNƒ‰ƒEƒfƒBƒAŽÐ‚ªo‚µ‚Ä‚¢‚é‚炵‚¢B

- p.76’†‚قǂ́Aƒtƒ@ƒCƒ‹ƒTƒCƒY1GB‚Æ‚©1,000GB‚Æ‚©‚́Aˆêƒtƒ@ƒCƒ‹‚Ì‚±‚Æ‚Å‚Í‚È‚­
  ƒtƒ@ƒCƒ‹ŒQ‚Ì‚±‚Æ‚Å‚Í‚È‚¢‚©BŒ´‘‚Å‚ÍFiles‚É‚È‚Á‚Ä‚È‚¢‚©Bifiles‚Å‚µ‚½Bimaij

- map‚ŃRƒs[‚·‚é‚Æ‚¢‚¤‚Ì‚Í•’Ê‚Ì‚±‚ƁH
  * map‚Íon memory‚Å“ü—Ímapo—Ímap‚ŁAŠO•”‚ɑ΂·‚é•›ì—p‚Í‚È‚¢‚Ì‚ª•’Ê‚¾‚Æ
    Žv‚Á‚Ä‚¢‚½‚Ì‚¾‚ªB
  * map‚ŃRƒs[‚ª‚ǂ̂悤‚ÉŽÀ‘•‚³‚ê‚Ä‚¢‚é‚Ì‚©‚ª‹C‚É‚È‚éB

3.7.1 HDFSƒNƒ‰ƒXƒ^‚̃oƒ‰ƒ“ƒX’²®

3.8 HadoopƒA[ƒJƒCƒu

3.8.1 HadoopƒA[ƒJƒCƒu‚ÌŽg—p

- har‚É‚·‚é‚Ædistcp‚ňê‚‚̃tƒ@ƒCƒ‹‚Æ‚µ‚ÄŒø—¦‚æ‚­ƒRƒs[‚Å‚«‚é‚Ì‚¾‚낤‚©?
@* har‚Í‚»‚ê‚قNjÂÁ‚½‚±‚Æ‚Í‚µ‚Ä‚¢‚È‚¢B•¡”ƒtƒ@ƒCƒ‹‚ðˆê‰ÓŠ‚ÅŽ‚Á‚Ä‚¢‚邾‚¯B

3.8.2 §ŒÀŽ–€


4Í Hadoop‚ÌI/O

4.1 ƒf[ƒ^‚̐®‡«

4.1.1 HDFS‚É‚¨‚¯‚éƒf[ƒ^‚̐®‡«

- p.82 l.2 ŒëŽš
  CRC-32‚É4ƒoƒCƒg’·‚Ȃ̂ŁA ¨ CRC-32‚Í4ƒoƒCƒg’·‚Ȃ̂ŁA

4.1.2 LocalFileSystem

4.1.3 ChecksumFileSystem

4.2 ˆ³k

- zlib‚ðŽg‚Á‚Ĉ³k‚µ‚½‚¾‚¯‚¾‚ÆDEFLATEƒtƒH[ƒ}ƒbƒg‚̃tƒ@ƒCƒ‹‚ª‚Å‚«‚éB

- ƒXƒvƒŠƒbƒg‰Â”\‚Å‚ ‚ê‚΁AMapReduce‚É“Á‚É“K‚µ‚Ä‚¢‚é‚Æ‚¢‚¤‚±‚Ƃ́A
  bzip2‚ðŽg‚¦‚Æ‚¢‚¤‚±‚ƁH

4.2.1 ƒR[ƒfƒbƒN

4.2.1.1 CompressionCodec‚É‚æ‚éƒXƒgƒŠ[ƒ€‚̈³k‚Ɖð“€

- p.86 ŽÀs—á‚̏㠌뎚
  gnuzip‚ðŽg‚Á‚ĉ𓀂µ‚Ä ¨ gunzip‚ðŽg‚Á‚ĉ𓀂µ‚Ä

4.2.1.2 CompressionCodecFactory‚É‚æ‚éCompressionCodec‚̐„’è

- ƒR[ƒfƒbƒN‚̐„‘ª‚́AŠg’£Žq‚Å”»’f‚µ‚È‚¢‚Æ‘Ê–Ú‚È‚Ì‚©Bƒtƒ@ƒCƒ‹‚̐擪
  ”ƒoƒCƒg‚Ƀ}ƒWƒbƒNƒiƒ“ƒo[‚Ý‚½‚¢‚È‚à‚Ì‚Í‚È‚¢‚Ì‚©B
  * gzip‚Ȃǂ̓wƒbƒ_‚ð•t‚¯‚Ä‚¢‚é‚©‚ç‚í‚©‚邾‚낤‚ªADEFLATE‚Å‚Í’P‚É
    ˆ³k‚³‚ꂽƒf[ƒ^‚¾‚¯‚È‚Ì‚Å‚í‚©‚ç‚È‚¢B

4.2.1.3 ƒlƒCƒeƒBƒuƒ‰ƒCƒuƒ‰ƒŠ

- native‚Á‚Ä‘¬‚¢H
  * ŽÀsŽžŠÔ‚͏­‚È‚­‚Æ‚àJava‚Ì‚Ù‚¤‚ª‘¬‚­‚Ȃ邱‚Æ‚Í‚È‚¢B
  * ŒÄ‚яo‚µƒI[ƒo[ƒwƒbƒh‚à‘債‚½‚±‚Æ‚Í‚È‚¢‚Í‚¸‚ŁA‚»‚ê‚æ‚舳k‚Ì
    ˆ—‚Ì‚Ù‚¤‚ªŽžŠÔ‚ª‚©‚©‚è‰e‹¿‚ª‘å‚«‚¢‚Í‚¸B

- ‚È‚ºAWindows—p‚̃lƒCƒeƒBƒuƒ‰ƒCƒuƒ‰ƒŠ‚Í‚È‚¢‚Ì‚¾‚낤B
  * ŠJ”­ŠÂ‹«‚ªOSS‚É‚È‚¶‚Ü‚È‚¢‚©‚ç‚©B

- CodecPool‚ÌŒø‰Ê‚̓lƒCƒeƒBƒuƒ‰ƒCƒuƒ‰ƒŠ‚ÌŽÀ‘•‚É‚æ‚è‚»‚¤B—Ⴆ‚Ζˆ‰ñ
  ƒCƒjƒVƒƒƒ‰ƒCƒYˆ—‚ª‚ ‚é‚Æ‚©‚È‚çŒø‰Ê‚ ‚èB

4.2.2 ˆ³k‚Æ“ü—̓XƒvƒŠƒbƒg

4.2.3 MapReduce‚É‚¨‚¯‚鈳k‚Ì—˜—p

- p.91ƒRƒ‰ƒ€“àAAvro‚Ì“Ç‚Ý•û‚́H
  iƒEƒBƒLƒyƒfƒBƒA‚É‚æ‚é‚ƁAŒêŒ¹‚̃CƒMƒŠƒX‚̍q‹ó‹@‰ïŽÐAvro‚Ì“Ç‚Ý‚Í
  uƒAƒuƒ‚Ü‚½‚̓Aƒ”ƒv‚Æ‚ ‚è‚Ü‚µ‚½Bimaij

4.2.3.1 map‚̏o—͂̈³k

- p.92 l.4 ’EŽš
  ƒf[ƒ^‚Ì—Ê‚ðŒ¸‚ç‚·‚¯‚ŁA ¨ ƒf[ƒ^‚Ì—Ê‚ðŒ¸‚ç‚·‚¾‚¯‚ŁA

4.3 ƒVƒŠƒAƒ‰ƒCƒ[[ƒVƒ‡ƒ“

- p.94 l.5 ŒëŽš
  PRC‚Ì ¨ RPC‚Ì

4.3.1 WritableƒCƒ“ƒ^[ƒtƒF[ƒX

4.3.1.1 WritableComparable‚ƃRƒ“ƒpƒŒ[ƒ^[

4.3.2 WritableƒNƒ‰ƒX

4.3.2.1 Java‚̃vƒŠƒ~ƒeƒBƒu‚ɑ΂·‚éWritable‚̃‰ƒbƒp[

4.3.2.2 ƒeƒLƒXƒg

- p.99 •\4-7 U+10400‚ÌJava‚Å‚Ì•\Œ» Ÿ¥Žš
  \uuD801\uDC00 ¨ \uD801\uDC00

- p.102 ƒ~ƒ…[ƒ^ƒrƒŠƒeƒB l.3 ’EŽš
  ‚¢‚¸‚ê‚ðŒÄ‚Ô‚±‚Æ‚Å ¨ ‚¢‚¸‚ê‚©‚ðŒÄ‚Ô‚±‚Æ‚Å

4.3.2.3 BytesWritable

4.3.2.4 NullWritable

4.3.2.5 ObjectWritable‚ÆGenericWritable

4.3.2.6 WritableƒRƒŒƒNƒVƒ‡ƒ“

4.3.3 ƒJƒXƒ^ƒ€Writable‚ÌŽÀ‘•

- p.107 ‰º‚©‚ç4s–ڂɁAuTextPare‚́A1‚‚߂̕¶Žš—ñ‚ÌŒã‚É2‚‚߂̕¶Žš—ñ‚ð
  ‚‚Ȃ°‚½•¶Žš—ñ‚Ń\[ƒg‚ðs‚¢‚Ü‚·v‚Æ‚ ‚邪Ap.106 ‚Ì compareTo()‚¾‚ƁA
  ‚»‚¤‚È‚ç‚È‚¢ê‡‚ª‚ ‚éB‚½‚Æ‚¦‚΁A

    (1) first: "a",  second: "x"
    (2) first: "ab", second: "z"

  ‚́A‚‚Ȃ°‚é‚ƁA"ax"‚Æ"abz" ‚ŁA(1) > (2) ‚¾‚ªA
  p.106‚ÌcompareTo()‚¾‚ƁA"a"‚Æ"ab"‚ªæ‚É”äŠr‚³‚êA(1) < (2)‚É‚È‚éB

- p.107 l.5
  uwrite()‚âreadFields()ƒƒ\ƒbƒh‚Ì’†‚ŃIƒuƒWƒFƒNƒg‚ðƒAƒƒP[ƒg‚µ‚È‚¢
  ‚悤A’ˆÓ‚µ‚È‚¯‚ê‚΁v‚È‚ç‚È‚¢‚̂́AÄ—˜—p‚³‚ê‚é‚̂ŃAƒƒP[ƒg‚·‚é‚悤‚É
  ‚È‚Á‚Ä‚¢‚é‚ƁA‰½“x‚àƒVƒŠƒAƒ‰ƒCƒYAƒfƒVƒŠƒAƒ‰ƒCƒY‚ª”­¶‚µ‚ăRƒXƒg‚ª‚©‚©‚é
  ‚©‚çB

4.3.3.1 ‚‘¬‰»‚Ì‚½‚ß‚ÌRawCoparator‚ÌŽÀ‘•

4.3.3.2 ƒJƒXƒ^ƒ€‚̃Rƒ“ƒpƒŒ[ƒ^[

4.3.4 ƒVƒŠƒAƒ‰ƒCƒ[[ƒVƒ‡ƒ“ƒtƒŒ[ƒ€ƒ[ƒN

4.3.4.1 ƒVƒŠƒAƒ‰ƒCƒ[[ƒVƒ‡ƒ“IDL

4.3.5 Avro

4.3.5.1 Avro‚̃f[ƒ^Œ^‚ƃXƒL[ƒ}


ˆÈã

ŽŸ‰ñ‚́Ap.116 4.3.5.2 ‚©‚çB

ƒƒ‚: ‰ïê”ï3,800‰~Aˆêl300‰~•‰’S