
λ¬λ μ€νν¬ chapter 3μ₯κΉμ§ μ½μ λ΄μ©μ μ λ¦¬ν΄ λ³΄κ³ μ νλ€.
HDFSμ 맡리λμ€ νλ μμν¬λ₯Ό μ¬μ©νμ¬ λΉ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ κ²μλ λ¨μ μ΄ μ‘΄μ¬νλ€. κ°μ₯ ν° λ¨μ μ λ°°μΉ μμ μ μννλ©΄μ MR νμ€ν¬μ μ€κ° λ¨κ³λ€μ λ‘컬 λμ€ν¬μ μ¨μΌνλ¨ μ μ΄λ€. μ΄κ²μ μ¦μ λμ€ν¬ I/O μνμ μΌμΌν€λ©° λ°μ΄ν° μ²λ¦¬ μλκ° λ§€μ° λλ €μ§λ€.
κ·Έλμ μνμΉ μ€νν¬κ° νμνμλ€. μνμΉ μ€νν¬λ λκ·λͺ¨ λΆμ° λ°μ΄ν° μ°μ° μ²λ¦¬λ₯Ό μν΄μ μ€κ³λ ν΅ν©ν μμ§μ΄λ€.
μ€νν¬λ νλ‘ λ§΅λ¦¬λμ€μ λ¨μ μ 보μνλ©° μ κ·Έλ μ΄λ λμκ³ 4κ°μ§ νΉμ§μ΄ μλ€.
첫λ²μ§Έ, μλ
μ€νν¬λ μ§μ μ°μ°μ λ°©ν₯μ± λΉμν κ·Έλν(DAG)λ‘ κ΅¬μ±νκ³ ν΄λ¬μ€ν°μ μν¬ λ Έλ μμμ λ³λ ¬ μνλλ€. μ€νν¬ SQL μμ§ μ μ£Όμ κΈ°λ₯ μ€ νλμΈ ν μ€ν (Tungsten)μ μ 체 쿼리λ₯Ό νλμ ν¨μλ‘ ν©μ³ κ°μ ν¨μ νΈμΆμ΄λ μ€κ° λ°μ΄ν°λ₯Ό μν CPU μ¬μ©μ μμ€λ€. μ΄ λ°©λ²μ ν¬κ΄ μ½λ μμ±μ΄λΌκ³ νλ€. μ΄λ¬ν λ°©λ²μ CPU μ¬μ©λμ μ€μ΄κ³ ν¨μ¨μ λμΈλ€. νλ‘ λ§΅λ¦¬λμ€μ λ€λ₯΄κ² λͺ¨λ μ€κ° κ²°κ³Όλ λ©λͺ¨λ¦¬μ μ μ₯λλ©° λμ€ν¬ I/O μ¬μ©μ μ€μΈλ€.
λλ²μ§Έ, μ¬μ©νΈλ¦¬μ±
λ°μ΄ν° νλ μ, λ°μ΄ν°μΈνΈ, RDD APIλ‘ μΈν΄ μ¬μ©μκ° κ°κ²°νκ³ λ¨μν μ½λ μμ±μ΄ κ°λ₯νλ€.
μΈλ²μ§Έ, λͺ¨λμ±
4κ°μ§ μ»΄ν¬λνΈ(μ€νν¬SQL, μ€νν¬ μ νν μ€νΈλ¦¬λ°, MLlib, GraphX)κ° μ‘΄μ¬νλ©° νλμ μμ§ μμμ μ¬μ© κ°λ₯νλ©° λ³λμ μμ§μ λ릴 νμλ μκ³ λ³λμ APIλ₯Ό λ°°μΈ νμλ μλ€.
λ€λ²μ§Έ, νμ₯μ±
μ€νν¬λ λΉ λ₯Έ λ³λ ¬ μ°μ°μ μ΄μ μ΄ λ§μΆ°μ Έ μκΈ°μ μ μ₯μ λ΄λΉνλ μ¬λ¬ λ°μ΄ν° μμ€μμ νμ₯μ±μ΄ λ°μ΄λλ€. νλ‘μ μ μ₯κ³Ό μ°μ°μ λͺ¨λ ν¬ν¨νκ³ μλ€.
μ½λκ° μ΄λ»κ² μ€νν¬ μ ν리μΌμ΄μ μμ λμνλμ§ μ΄ν΄λ³΄μ.
μ ν리μΌμ΄μ
- APIλ₯Ό μ¨μ μ€νν¬ μμμ λμκ°λ μ¬μ©μ νλ‘κ·Έλ¨. λλΌμ΄λ²μ ν΄λ¬μ€ν° μ€νκΈ°λ‘ μ΄λ£¨μ΄μ§λ€.
SparkSession
- μ€νν¬ μ½μ΄ κΈ°λ₯λ€κ³Ό μνΈ μμ©ν μ μλ μ§μ μ μ μ 곡νλ κ°μ²΄μ΄λ©°, μ¬μ©μκ° SparkSession κ°μ²΄λ₯Ό μμ±ν΄μΌ νλ€.
Job
- μ€νν¬ μ‘μ μ λν μλ΅μΌλ‘ μμ±λλ μ¬λ¬ νμ€ν¬λ‘ μ΄λ£¨μ΄μ§ λ³λ ¬ μ°μ°
Stage
- Jobμ μ€ν μ΄μ§λΌ λΆλ¦¬λ μλ‘ μμ‘΄μ±μ κ°μ§λ λ€μμ νμ€ν¬ λͺ¨μμΌλ‘ λλλ€.
Task- μ€νν¬ μ΄κ·Έμ νν°λ‘ 보λ΄μ§λ μμ μ€νμ κ°μ₯ κΈ°λ³Έμ μΈ λ¨μ
μ€νν¬ μ°μ°μ Transformationκ³Ό ActionμΌλ‘ λλλ©°, Actionμ΄ νΈμΆλμ§ μμΌλ©΄ μ€νν¬λ μμ μ€νλμ§ μλλ€.
Transformationμ μλ³Έ λ°μ΄ν°λ₯Ό μμ νμ§ μκ³ νλμ μ€νν¬ λ°μ΄ν° νλ μμ μλ‘ λ§λ€μ΄μ κ²°κ³Όκ°μ 리ν΄νλ€.
λͺ¨λ Transformationμ κ²°κ³Όκ°μ΄ μ¦μ κ³μ°λμ§ μλλ€. μ΄λ₯Ό lineageλΌ νλ©°, κΈ°λ‘λ 리λμ§λ μ€νν¬κ° νΈλ μ€ν¬λ©μ΄μ λ€λΌλ¦¬ ν©μΉκ±°λ μ¬λ°°μ΄νκ±°λ ν΄μ ν¨μ¨μ μΌλ‘ μ€νν μ μλλ‘ μ΅μ ν νλ€. νΈλμ€ν¬λ©μ΄μ μ 리λμ§μ κΈ°λ‘λ§ ν΄λκ³ μ€ννμ§ μλ κ²μ μ§μ° νκ°λΌκ³ νλ€. μ½λμμ μ‘μ μ λ§λ¬μ λ λͺ¨λ νΈλμ€ν¬λ©μ΄μ μ μ§μ° μ°μ°μ΄ λ°λλλ©° μλ‘μ΄ λ°μ΄ν° νλ μμ μμ±νμ¬ μμ νλ€.
=> μ§μ° νκ°λ 쿼리 μ΅μ νλ₯Ό κ°λ₯νκ² νκ³ λ¦¬λμ§μ λ°μ΄ν° λΆλ³μ±μ μ₯μ μ λν λ°μ΄ν° λ΄κ΅¬μ±μ μ 곡νλ€.
μ’μ/λμ νΈλμ€ν¬λ©μ΄μ
νλμ νν°μ λ΄μμ μ²λ¦¬ ν μ μμΌλ©΄ μ’μ νΈλμ€ν¬λ©μ΄μ μΌλ‘ filter()λ contains()κ° ν¬ν¨λλ€. λ°λ©΄μ νν°μ λΌλ¦¬ λ°μ΄ν° κ΅νμ΄ λ°μνκ³ λμ€ν¬ μμ λ±μ΄ λ°μνλ©΄ λμ νΈλμ€ν¬λ©μ΄μ μΌλ‘ groupby()λ orderby()κ° ν¬ν¨λλ€.