hadoop_hdfs

ν•˜λ‘‘κ³Ό HDFS

Hadoop

  • image

    • https://www.oreilly.com/library/view/data-lake-for/9781787281349/8df0cc52-432d-4233-9b6e-8f9649280b37.xhtml

  • 2005λ…„ 더크 μ»€νŒ…μ΄ μ˜€ν”ˆ μ†ŒμŠ€λ‘œ κ³΅κ°œν•œ ν•˜λ‘‘μ€ λΆ„μ‚° μ €μž₯ νŒŒμΌμ‹œμŠ€ν…œμΈ HDFS와 λΆ„μ‚° 병렬 처리λ₯Ό λ‹΄λ‹Ήν•˜λŠ” λ§΅λ¦¬λ“€μŠ€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. ν•˜λ‘‘μ΄ λ‚˜μ˜¨ ν›„ 이λ₯Ό 기반으둜 ν”Όκ·Έ, ν•˜μ΄λΈŒ, HBase, 슀쿱, ν”Œλ£Έ λ“±μ˜ μ˜€ν”ˆ μ†ŒμŠ€ 기술이 λ“±μž₯ν–ˆκ³ , 이듀을 λͺ¨λ‘ κ²°ν•©ν•œ 빅데이터 κΈ°μˆ μ€ ν†΅μΉ­ν•˜μ—¬ ν•˜λ‘‘ μ—μ½”μ‹œμŠ€ν…œμ΄λΌκ³  λΆ€λ₯΄κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

  • μ•„νŒŒμΉ˜ ν•˜λ‘‘ ν”Œλž«νΌ(Hadoop)은 λ§‰λŒ€ν•œ λ³Όλ₯¨μ˜ 데이터λ₯Ό μ €μž₯ν•  수 μžˆλŠ” ꡬ글 파일 μ‹œμŠ€ν…œκ³Ό μ΄λŸ¬ν•œ 데이터λ₯Ό λΉ λ₯΄κ³  μ•ˆμ •μ μœΌλ‘œ μ²˜λ¦¬ν•  수 μžˆλŠ” ꡬ글 λ§΅λ¦¬λ“€μŠ€(Google MapReduce) 기술의 μ˜€ν”ˆμ†ŒμŠ€ λ²„μ „μœΌλ‘œ λ§Žμ€ 기업듀이 λΉ λ₯΄κ²Œ μ¦κ°€ν•˜λŠ” 데이터(ꡬ쑰적, 반ꡬ쑰적, 비ꡬ쑰적)λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ ν•˜λ‘‘μ„ μ±„νƒν–ˆμŠ΅λ‹ˆλ‹€.

  • ν•˜λ‘‘μ€ μž‘μ„ λ§΅ νƒœμŠ€ν¬μ™€ λ¦¬λ“€μŠ€ νƒœμŠ€ν¬λ‘œ λ‚˜λˆ„μ–΄ μ‹€ν–‰ν•˜λ©° 각 νƒœμŠ€ν¬λŠ” YARN을 μ΄μš©ν•˜μ—¬ μŠ€μΌ€μ€„λ§λ˜κ³  ν΄λŸ¬μŠ€ν„°μ˜ μ—¬λŸ¬ λ…Έλ“œμ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€. νŠΉμ • λ…Έλ“œμ˜ νƒœμŠ€ν¬ ν•˜λ‚˜κ°€ μ‹€νŒ¨ν•˜λ©΄ μžλ™μœΌλ‘œ λ‹€λ₯Έ λ…Έλ“œλ₯Ό μž¬ν• λ‹Ήν•˜μ—¬ λ‹€μ‹œ μ‹€ν–‰λ©λ‹ˆλ‹€.

  • ꡬ성 μš”μ†Œ

    • Hadoop Common

      • ν•˜λ‘‘μ˜ λ‹€λ₯Έ λͺ¨λ“ˆμ„ μ§€μ›ν•˜κΈ° μœ„ν•œ 곡톡 μ»΄ν¬λ„ŒνŠΈ λͺ¨λ“ˆ

    • Hadoop HDFS

      • λΆ„μ‚° νŒŒμΌμ‹œμŠ€ν…œμœΌλ‘œ μ—¬λŸ¬ 개의 μ„œλ²„λ₯Ό ν•˜λ‚˜μ˜ μ„œλ²„μ²˜λŸΌ λ¬Άμ–΄μ„œ 데이터λ₯Ό μ €μž₯

    • Hadoop YARN

      • ν•˜λ‘‘μ˜ ν΄λŸ¬μŠ€ν„° μžμ› 관리 μ‹œμŠ€ν…œ, ν΄λŸ¬μŠ€ν„°μ˜ μžμ›μ„ μš”μ²­ν•˜κ³  μ‚¬μš©ν•˜κΈ° μœ„ν•΄ APIλ₯Ό 제곡

    • Hadoop Mapreduce

      • λΆ„μ‚°λ˜μ–΄ μ €μž₯된 데이터λ₯Ό 병렬 μ²˜λ¦¬ν•  수 있게 ν•΄μ£ΌλŠ” λΆ„μ‚° 처리 λͺ¨λ“ˆ

  • 핡심 원리

    • Failure Tolerance (μž₯μ•  ν—ˆμš©)

    • Load Balancing (λ‘œλ“œ λ°ΈλŸ°μ‹±)

    • Data Loss (데이터 둜슀)

  • 이점

    • Resilience (탄λ ₯μ„±)

    • Scalability(ν™•μž₯μ„±) : μ–΄λ– ν•œ ν΄λŸ¬μŠ€ν„° ν™˜κ²½μ—μ„œλ„ 적용 κ°€λŠ₯ν•˜λ‹€.

    • Low Cost(μ €λΉ„μš©)

    • Speed(속도)

    • Data Diversity(데이터 λ‹€μ–‘μ„±)

HDFS

  • λ„€νŠΈμ›Œν¬λ‘œ μ—°κ²°λœ μ—¬λŸ¬ λ¨Έμ‹ μ˜ μŠ€ν† λ¦¬μ§€λ₯Ό κ΄€λ¦¬ν•˜λŠ” νŒŒμΌμ‹œμŠ€ν…œ. HDFS(Hadoop Distributed FileSystem)λΌλŠ” λΆ„μ‚° νŒŒμΌμ‹œμŠ€ν…œμ„ μ œκ³΅ν•©λ‹ˆλ‹€.

  • image

    • https://www.oreilly.com/library/view/distributed-computing-in/9781787126992/3275691a-477f-4e3a-a00c-9a64bda93b16.xhtml

    • HDFS ν΄λŸ¬μŠ€ν„°λŠ” λ§ˆμŠ€ν„°-μ›Œμ»€ νŒ¨ν„΄μœΌλ‘œ λ™μž‘ν•˜λŠ” 두 μ’…λ₯˜μ˜ λ…Έλ“œ, λ§ˆμŠ€ν„°μΈ ν•˜λ‚˜μ˜ λ„€μž„λ…Έλ“œμ™€ μ›Œμ»€μΈ μ—¬λŸ¬ 개의 λ°μ΄ν„°λ…Έλ“œλ‘œ κ΅¬μ„±λ˜μ–΄ 있으며 λ„€μž„λ…Έλ“œλŠ” νŒŒμΌμ‹œμŠ€ν…œμ˜ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό κ΄€λ¦¬ν•©λ‹ˆλ‹€.

    • λ„€μž„ λ…Έλ“œ : 데이터 λ…Έλ“œλ“€μ˜ μœ„μΉ˜λ‚˜ 데이터 λ‚΄μš©μ— λŒ€ν•œ ꡬ성을 κ°€μ§„ ν•œ 개의 λ…Έλ“œλ‘œ ꡬ성

    • 데이터 λ…Έλ“œ : 데이터 μˆ˜μ§‘λœ λ‹€λŸ‰μ˜ λ‚΄μš©μ„ κ°€μ§„ 데이터 λ…Έλ“œ

    • 메타데이터 관리 : λ©”νƒ€λ°μ΄ν„°λŠ” νŒŒμΌμ΄λ¦„, 파일크기, νŒŒμΌμƒμ„±μ‹œκ°„, νŒŒμΌμ ‘κ·ΌκΆŒν•œ, 파일 μ†Œμœ μž 및 κ·Έλ£Ή μ†Œμœ μž, 파일이 μœ„μΉ˜ν•œ λΈ”λ‘μ˜ 정보 λ“±μœΌλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€. 각 λ°μ΄ν„°λ…Έλ“œμ—μ„œ μ „λ‹¬ν•˜λŠ” 메타데이터λ₯Ό λ°›μ•„μ„œ 전체 λ…Έλ“œμ˜ 메타데이터 정보와 파일 정보λ₯Ό λ¬Άμ–΄μ„œ 관리

  • ν•˜λ‘‘ λ””μŠ€ν¬ μƒμ˜ κ±°λŒ€ν•œ 연속 데이터 λΈ”λŸ­μ„ μŠ€μΊ”ν•˜λŠ” 데 μ΅œμ ν™”λœ λΆ„μ‚°, 무 μ •μ§€ νŒŒμΌμ‹œμŠ€ν…œ. HDFSλŠ” ν΄λŸ¬μŠ€ν„°μ— λΆ„μ‚°λ˜μ–΄ 데이터 μ €μž₯μ†Œμ˜ μˆ˜ν‰ν™•μž₯성을 μ œκ³΅ν•©λ‹ˆλ‹€. HDFS 파일 λΈ”λŸ­μ€ ν•˜λ“œ λ“œλΌμ΄λΈŒλ‚˜ 전체 μ‹œμŠ€ν…œμ— λ¬Έμ œκ°€ 생겼을 λ•Œ 데이터 μœ μ‹€μ„ 막기 μœ„ν•΄ ν΄λŸ¬μŠ€ν„° 상에 λ³΅μ œλ©λ‹ˆλ‹€.

  • 3κ°€μ§€ νŠΉμ§•

    • Data Locality (데이터 μ§€μ—­μ„±) : ν•˜λ‘‘μ€ HDFS λ‚΄μ˜ μž…λ ₯ 데이터가 μžˆλŠ” λ…Έλ“œμ—μ„œ λ§΅ νƒœμŠ€ν¬λ₯Ό μ‹€ν–‰ν•  λ•Œ κ°€μž₯ λΉ λ₯΄κ²Œ μž‘λ™ν•©λ‹ˆλ‹€. ν΄λŸ¬μŠ€ν„°μ˜ μ€‘μš”ν•œ 곡유 μžμ›μΈ λ„€νŠΈμ›Œν¬ λŒ€μ—­ν­μ„ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 방법

    • Replicated Blocks (볡제 λΈ”λŸ­)

    • High Probability (높은 κ°€λŠ₯μ„±)

  • HDFS 섀계

    • λ²”μš© ν•˜λ“œμ›¨μ–΄λ‘œ κ΅¬μ„±λœ ν΄λŸ¬μŠ€ν„°μ—μ„œ μ‹€ν–‰λ˜κ³  슀트리밍 λ°©μ‹μ˜ 데이터 μ ‘κ·Ό νŒ¨ν„΄μœΌλ‘œ λŒ€μš©λŸ‰ νŒŒμΌμ„ λ‹€λ£° 수 μžˆλ„λ‘ μ„€κ³„λœ νŒŒμΌμ‹œμŠ€ν…œ

    • 섀계 νŠΉμ„±

      • 맀우 큰 파일

      • 슀트리밍 λ°©μ‹μ˜ 데이터 μ ‘κ·Ό

      • λ²”μš© ν•˜λ“œμ›¨μ–΄

        • ν•˜λ‘‘μ€ λ…Έλ“œ μž₯μ• κ°€ λ°œμƒν•  ν™•λ₯ μ΄ 높은 λ²”μš© ν•˜λ“œμ›¨μ–΄(μ—¬λŸ¬ μ—…μ²΄μ—μ„œ μ œκ³΅ν•˜λŠ” μ‰½κ²Œ ꡬ할 수 μžˆλŠ” ν•˜λ“œμ›¨μ–΄)둜 κ΅¬μ„±λœ λŒ€ν˜• ν΄λŸ¬μŠ€ν„°μ—μ„œ λ¬Έμ œμ—†μ΄ μ‹€ν–‰λ˜λ„λ‘ 섀계

    • HDFSκ°€ 잘 λ§žμ§€ μ•ŠλŠ” μ‘μš© λΆ„μ•Ό

      • λΉ λ₯Έ 데이터 μ‘λ‹΅μ‹œκ°„

        • HDFSλŠ” 높은 데이터 μ²˜λ¦¬λŸ‰μ„ μ œκ³΅ν•˜κΈ° μœ„ν•΄ μ΅œμ ν™”λ˜μ–΄ 있고 이λ₯Ό μœ„ν•΄ 응닡 μ‹œκ°„μ„ ν¬μƒν•©λ‹ˆλ‹€. HBaseκ°€ ν•˜λ‚˜μ˜ λŒ€μ•ˆμ΄ 될 수 μžˆμŠ΅λ‹ˆλ‹€.

      • μˆ˜λ§Žμ€ μž‘μ€ 파일

      • 닀쀑 라이터와 파일의 μž„μ˜ μˆ˜μ •

        • HDFSλŠ” 단일 λΌμ΄ν„°λ‘œ νŒŒμΌμ„ μ”λ‹ˆλ‹€. ν•œ 번 μ“°κ³  λλ‚˜κ±°λ‚˜ 파일의 끝에 λ§λΆ™μ΄λŠ” 것은 κ°€λŠ₯ν•˜μ§€λ§Œ νŒŒμΌμ—μ„œ μž„μ˜ μœ„μΉ˜μ— μžˆλŠ” λ‚΄μš©μ„ μˆ˜μ •ν•˜λŠ” 것은 ν—ˆμš©ν•˜μ§€ μ•ŠμœΌλ©° 닀쀑 라이터도 μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  • HDFS κ³ κ°€μš©μ„±

    • λ„€μž„λ…Έλ“œλŠ” μ—¬μ „νžˆ 단일 κ³ μž₯점(single point of failure - SPOF), λ„€μž„λ…Έλ“œλŠ” 메타데이터와 파일 λΈ”λ‘μ˜ λ§€ν•‘ 정보λ₯Ό λ³΄κ΄€ν•˜λŠ” μœ μΌν•œ μ €μž₯μ†Œμ΄κΈ° λ•Œλ¬Έμ— λ„€μž„λ…Έλ“œμ— μž₯μ• κ°€ λ°œμƒν•˜λ©΄ λ§΅λ¦¬λ“€μŠ€ μž‘μ„ 포함 ν•˜μ—¬ λͺ¨λ“  ν΄λΌμ΄μ–ΈνŠΈκ°€ νŒŒμΌμ„ μ½κ±°λ‚˜ μ“°κ±°λ‚˜ μ‘°νšŒν•  수 μ—†κ²Œ λ©λ‹ˆλ‹€.

    • μƒˆλ‘œμš΄ λ„€μž„λ…Έλ“œλŠ” λ„€μž„μŠ€νŽ˜μ΄μŠ€ 이미지λ₯Ό λ©”λͺ¨λ¦¬μ— λ‘œλ“œν•˜κ³  -> μ—λ””νŠΈ 둜그λ₯Ό κ°±μ‹ ν•˜κ³  -> 전체 λ°μ΄ν„°λ…Έλ“œμ—μ„œ μΆ©λΆ„ν•œ 블둝 리포트λ₯Ό λ°›μ•„ μ•ˆμ „ λͺ¨λ“œλ₯Ό λ²—μ–΄λ‚  λ•ŒκΉŒμ§€ κ·Έ μ–΄λ–€ μš”μ²­λ„ μ²˜λ¦¬ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.

    • HDFS κ³ κ°€μš©μ„±(high availability -HA)을 μ§€μ›ν•©λ‹ˆλ‹€. κ³ κ°€μš©μ„±μ€ ν™œμ„±λŒ€κΈ°μƒνƒœλ‘œ μ„€μ •λœ ν•œ 쌍의 λ„€μž„λ…Έλ“œλ‘œ κ΅¬ν˜„λ˜λ©° ν™œμ„±λ„€μž„λ…Έλ“œμ— μž₯μ• κ°€ λ°œμƒν•˜λ©΄ λŒ€κΈ° λ„€μž„λ…Έλ“œκ°€ κ·Έ 역할을 이어받아 큰 쀑단 없이 ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

  • μž₯애볡ꡬ와 νŽœμ‹±

    • λŒ€κΈ° λ„€μž„λ…Έλ“œλ₯Ό ν™œμ„±ν™”μ‹œν‚€λŠ” μ „ν™˜ μž‘μ—…μ€ μž₯애볡ꡬ μ»¨νŠΈλ‘€λŸ¬λΌλŠ” μƒˆλ‘œμš΄ 객체둜 κ΄€λ¦¬λ©λ‹ˆλ‹€.

    • μž₯μ• λ³΅κ΅¬λŠ” 정기적인 μœ μ§€κ΄€λ¦¬λ₯Ό μœ„ν•΄ κ΄€λ¦¬μžκ°€ μˆ˜λ™μœΌλ‘œ μ΄ˆκΈ°ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    • μš°μ•„ν•œ μž₯애볡ꡬ(graceful failover) : μž₯애볡ꡬ μ»¨νŠΈλ‘€λŸ¬λŠ” 두 개의 λ„€μž„λ…Έλ“œκ°€ μ„œλ‘œ 역할을 λ°”κΎΈκ²Œ ν•˜λŠ” λ°©λ²•μœΌλ‘œ μ „ν™˜ μˆœμ„œλ₯Ό μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Reference

  • https://www.oreilly.com/library/view/hadoop-the-definitive/9780596521974/

  • https://www.oreilly.com/library/view/programming-hive/9781449326944/

Last updated