ν•˜λ‘‘ λ§΅λ¦¬λ“€μŠ€ wordcount 예제

Hadoop μ„€μΉ˜ 및 MapReduce μ•Œκ³ λ¦¬μ¦˜ μ‹€μŠ΅

ν™˜κ²½ μ„€μ •

  1. VMWare μ„€μΉ˜
  2. Ubuntu Linux CD image λ‹€μš΄λ‘œλ“œ
  3. VmWare 가상머신을 μƒμ„±ν•œ λ’€ 운영체제 μ΄λ―Έμ§€λ‘œ Ubuntu 이미지 μ„€μ •ν•˜μ—¬ 가상 λ¦¬λˆ…μŠ€ ν™˜κ²½μ„ ꡬ좕
  4. μ½˜μ†”μ—μ„œ Hadoop μ„€μΉ˜
  5. μ½˜μ†”μ—μ„œ Hadoop ν™˜κ²½ μ„€μ •

Linux, HDFS 디렉토리 ꡬ쑰

Linux 디렉토리

Home
β”œβ”€β”€ Project /* λ§΅λ¦¬λ“€μŠ€ ν”„λ‘œμ νŠΈ */
β”‚	β”œβ”€β”€ src /* λ§΅λ¦¬λ“€μŠ€ μ½”λ“œ */
β”‚	|	β”œβ”€β”€ Driver.java /* λ§΅λ¦¬λ“€μŠ€ μ½”λ“œ μ»΄νŒŒμΌμ„ μœ„ν•œ μžλ°” 파일 */
β”‚	|	└── Wordcount.java
β”‚	β”œβ”€β”€ template /* ν…œν”Œλ¦Ώ */
β”‚	β”œβ”€β”€ datagen /* 데이터 생성을 μœ„ν•œ μ½”λ“œ */
β”‚	β”œβ”€β”€ data /* 데이터λ₯Ό μ €μž₯ */
β”‚	└── build.xml /* λ§΅λ¦¬λ“€μŠ€ μ½”λ“œ μ»΄νŒŒμΌμ„ μœ„ν•œ μ„€μ • 파일 */
|
...

HDFS 디렉토리

hadoop
β”œβ”€β”€ wordcount_test /* λ§΅λ¦¬λ“€μŠ€ μ½”λ“œ 싀행을 μœ„ν•œ 데이터 디렉토리 */
└── wordcount_test_out /* λ§΅λ¦¬λ“€μŠ€ μ½”λ“œ μ‹€ν–‰ κ²°κ³Όλ₯Ό μ €μž₯ν•˜λŠ” 디렉토리 */

wordcount 예제 μ‹€ν–‰

  1. Project/src/Wordcount.java κ΅¬ν˜„
  2. Project/src/Driver.java μˆ˜μ •ν•˜κΈ°

    • pgd.addClass("wordcount", Wordcount.java, "A map reduce program that perform word counting)
    • 각 인자 : μ‹€ν–‰ν•  alias, 파일, 멘트
  3. λ§΅λ¦¬λ“€μŠ€ μ½”λ“œ 컴파일

    • Project λ””λ ‰ν† λ¦¬λ‘œ 이동
    • $ ant λͺ…λ Ήμ–΄ μˆ˜ν–‰
  4. ν…ŒμŠ€νŠΈ 데이터λ₯Ό HDFS에 λ„£κΈ°

    • Project둜 이동
    • $ hdfs dfs -mkdir wordcount_test
    • $ hdfs dfs -put data/wordcount-data.txt wordcount_test
  5. μƒˆλ‘œμš΄ λ§΅λ¦¬λ“€μŠ€ μ‹€ν–‰ κ²°κ³Όλ₯Ό μ €μž₯ν•  디렉토리λ₯Ό ν™•λ³΄ν•˜κΈ° μœ„ν•΄ κΈ°μ‘΄ κ²°κ³Ό 디렉토리 μ‚­μ œ

    • Project둜 이동
    • $ hdfs dfs -rm -r wordcount_test_out
  6. λ§΅λ¦¬λ“€μŠ€ μ½”λ“œ μ‹€ν–‰

    • Project둜 이동
    • $ hadoop jar [jar file] [program name] [saved data dir] [result dir]
    • $ hadoop jar κ²°κ³Ό.jar wordcount wordcount_test wordcount_test_out
    • [program name]μ—λŠ” Driver.java νŒŒμΌμ— λͺ…μ‹œν•œ aliasλ₯Ό λ„£μŒ
  7. μ‹€ν–‰ κ²°κ³Ό 확인

    • $ hdsf dfs -cat wordcount_test_out/part-r-00000 | more
    • $ hdsf dfs -cat wordcount_test_out/part-r-00001 | more
    • Reducer 개수 만큼의 좜λ ₯ 파일이 생성됨.(Reducer 개수 - 1을 인덱슀둜 ν•˜μ—¬ μ ‘κ·Ό)