spark_cluster_manager
Last updated
Last updated
https://learn.microsoft.com/ko-kr/azure/hdinsight/spark/apache-spark-settings
μ€νν¬λ λ§μ€ν°/μ¬λ μ΄λΈ ꡬ쑰λ₯Ό μ¬μ©νλ©°, μ€μ μ‘°μ μμΈ λλΌμ΄λ²μ μ¬λ¬ λΆμ° μμ λ ΈλμΈ μ΅μ€νν°λ‘ ꡬμ±λ©λλ€. λλΌμ΄λ²λ μλ° νλ‘μΈμ€μμ λμνλ©°, SparkContextλ₯Ό μμ±νκ³ , RDDλ₯Ό λ§λ€λ©°, μ¬μ©μ μ½λμ νΈλμ€ν¬λ©μ΄μ κ³Ό μ‘μ μ μ€νν©λλ€.
μ΅μ€νν°λ μ€νν¬ μμ μ κ°λ³ νμ€ν¬λ₯Ό μ€νν©λλ€. μ΅μ€νν°λ μ€νν¬ μ ν리μΌμ΄μ μ΄ μ€νλ λ νλ² μμ±λκ³ , μ ν리μΌμ΄μ μ΄ μ’ λ£λ λκΉμ§ κ³μ λμν©λλ€. μ΅μ€νν°λ μ ν리μΌμ΄μ μμ μ μ€ννκ³ , κ²°κ³Όλ₯Ό λλΌμ΄λ²μκ² λ°ννλ μν μ νλ©°, λΈλ‘ 맀λμ λ₯Ό ν΅ν΄ μ¬μ©μ νλ‘κ·Έλ¨μμ μΊμνλ RDDλ₯Ό λ©λͺ¨λ¦¬μ μ μ₯νλ μν λ ν©λλ€. RDDκ° μ΅μ€νν° λ΄λΆμ μΊμλκΈ° λλ¬Έμ, μμ μ μ€νμ΄ μ©μ΄ν΄μ§λλ€.
μ€νν¬μμ λΆμ° μ²λ¦¬λ₯Ό ν λλ, RDD μμ± λ° λ³νμΌλ‘ ꡬμ±λ μ€νν¬ μ ν리μΌμ΄μ μ ν΄λ¬μ€ν°μ λ°°ν¬ν©λλ€. ν΄λΌμ΄μΈνΈλ μ ν리μΌμ΄μ λ°°ν¬ μ μ€νμ νμν executorμ μ€νμ μ§μ ν©λλ€. Executorλ μ컀 λ Έλμμ μ€νλμ΄ μ€νν¬ μ ν리μΌμ΄μ μ λΆμ° μ²λ¦¬νλ νλ‘μΈμ€λ‘ μ΄ μ€νμλ CPU μ½μ΄ μ, λ©λͺ¨λ¦¬ ν λΉλ, κ·Έλ¦¬κ³ ν΄λ¬μ€ν° λ΄μμ μ€νλ executorμ μ λ±μ΄ ν¬ν¨λ©λλ€.
ν΄λΌμ°λμμ standalone cluster mode, νλ‘μμ YARN, Apache Mesos, Kubernetesμμ μ€νν¬λ₯Ό μ¬μ©ν μ μμ΅λλ€.
https://medium.com/@rachit1arora/why-run-spark-on-kubernetes-51c0ccb39c9b
μ€νν¬λ ν΄λ¬μ€ν° νκ²½μμ RDDλ₯Ό μ²λ¦¬νλ λΆμ°μ²λ¦¬ νλ«νΌμ λλ€. μ€νν¬λ ν΄λ¬μ€ν° 리μμ€ κ΄λ¦¬λ₯Ό μν΄ YARN, Mesos λλ Spark Standalone λ±μ ν΄λ¬μ€ν° κ΄λ¦¬ μμ€ν μ μ¬μ©ν©λλ€.
YARNμ νλ‘μ ν΄λ¬μ€ν° κ΄λ¦¬ μμ€ν μ΄λ©°, HDFSμ ν¨κ» μ¬μ©λ λ λ°μ΄ν° μ§μμ±μ νμ©ν΄ ν¨μ¨μ μΈ I/O μ²λ¦¬λ₯Ό κ°λ₯νκ² ν©λλ€.
Mesosλ λμ μΈ CPU μ½μ΄ ν λΉ λ³κ²½ λ± μΈλΆμ μΈ μ μ΄λ₯Ό νμ©νλ λ²μ© ν΄λ¬μ€ν° κ΄λ¦¬ μμ€ν μ λλ€.
Standaloneμ μ€νν¬μ ν¬ν¨λ μ μ© ν΄λ¬μ€ν° κ΄λ¦¬ μμ€ν μΌλ‘, λ³λμ μμ€ν μμ΄λ μ¬μ©μ΄ κ°λ₯ν©λλ€. ν΄λ¬μ€ν° νκ²½μμ κ° λ¨Έμ μ λ§μ€ν° λ Έλ(리μμ€λ₯Ό κ΄λ¦¬) λλ μ컀 λ Έλ(μ²λ¦¬λ₯Ό μ€ν)λ‘ λμν©λλ€.
https://www.researchgate.net/figure/Spark-Standalone-clustering-system_fig2_336020411
μνμΉ μ€νν¬ μν¬λ‘λμ©μΌλ‘ νΉλ³ν μ μλ κ²½λν νλ«νΌμΌλ‘ νλμ ν΄λ¬μ€ν°μμ λ€μμ μ€νν¬ μ ν리μΌμ΄μ μ μ€νν μ μμ΅λλ€.
μ€νμ μν κ°λ¨ν μΈν°νμ΄μ€λ₯Ό μ 곡νλ©° λν μ€νν¬ μν¬λ‘λλ‘ νμ₯ν μ μμ΅λλ€.
μ€νν¬ μ ν리μΌμ΄μ λ§ μ€νν μ μλ€λ ν° λ¨μ , ν΄λ¬μ€ν° νκ²½μ λΉ λ₯΄κ² ꡬμΆν΄ μ€νν¬ μ ν리μΌμ΄μ μ μ€νν΄μΌ νκ±°λ YARNμ΄λ λ©μμ€λ₯Ό μ¬μ©ν΄λ³Έ κ²½νμ΄ μλ€λ©΄ κ°μ₯ μ’μ μ νμ§μ λλ€.
https://medium.com/@goyalsaurabh66/running-spark-jobs-on-yarn-809163fc57e2
νλ‘ YARNμ μ‘ μ€μΌμ€λ§κ³Ό ν΄λ¬μ€ν° μμ κ΄λ¦¬μ© νλ μμν¬μ λλ€.
μ€νν¬λ κΈ°λ³Έμ μΌλ‘ νλ‘ YARN ν΄λ¬μ€ν° 맀λμ λ₯Ό μ§μνμ§λ§ νλ‘ μμ²΄κ° νμν κ²μ μλλλ€.
νλ‘ YARNμ λ€μν μ€ν νλ μμν¬λ₯Ό μ§μνλ ν΅ν© μ€μΌμ€λ¬μ λλ€.
cluster λͺ¨λλ YARN ν΄λ¬μ€ν°μμ μ€νν¬ λλΌμ΄λ² νλ‘μΈμ€λ₯Ό κ΄λ¦¬νλ©° ν΄λΌμ΄μΈνΈλ μ ν리μΌμ΄μ μ μμ±ν λ€μ μ¦μ μ’ λ£λ©λλ€. client λͺ¨λλ λλΌμ΄λ²κ° ν΄λΌμ΄μΈνΈ νλ‘μΈμ€μμ μ€νλ©λλ€.
νλ‘ μ€μ
μ€νν¬λ₯Ό μ΄μ©ν΄ HDFSμ νμΌμ μ½κ³ μ°λ €λ©΄ μ€νν¬ ν΄λμ€ν¨μ€μ λ κ°μ νλ‘ μ€μ νμΌμ ν¬ν¨μμΌμΌν©λλ€.
HDFS ν΄λΌμ΄μΈνΈμ λμ λ°©μμ κ²°μ νλ hdfs-site.xml νμΌ, κΈ°λ³Έ νμΌ μμ€ν μ μ΄λ¦μ μ€μ νλ core-site.xml
/etc/hadoop/conf νμμ μ€μ νμΌμ΄ μ‘΄μ¬ν©λλ€.
https://datastrophic.io/spark-jobserver-from-spark-standalone-to-mesos-marathon-and-docker-part-i/
μνμΉ λ©μμ€λ CPU, λ©λͺ¨λ¦¬, μ μ₯μ κ·Έλ¦¬κ³ λ€λ₯Έ μ°μ° μμμ λ¨Έμ μμ μΆμνν©λλ€.
λ΄κ³ μ₯μ±(fault-tolerant) λ° νλ ₯μ λΆμ° μμ€ν (elastic distributed system)μ μ½κ² ꡬμ±νκ³ ν¨κ³Όμ μΌλ‘ μ€νν©λλ€.
λ©μμ€λ μ€νν¬μ²λΌ μ§§κ² μ€νλλ μ ν리μΌμ΄μ μ κ΄λ¦¬ν©λλ€. μΉ μ ν리μΌμ΄μ μ΄λ λ€λ₯Έ μμ μΈν°νμ΄μ€ λ± μ€λ μ€νλλ μ ν리μΌμ΄μ κΉμ§ κ΄λ¦¬ν μ μλ λ°μ΄ν°μΌν° κ·λͺ¨μ ν΄λ¬μ€ν° 맀λμ λ₯Ό μ§ν₯ν©λλ€.
λ©μμ€λ μ€νν¬μμ μ§μνλ ν΄λ¬μ€ν° 맀λμ μ€ κ°μ₯ 무κ²κ³ λκ·λͺ¨μ λ©μμ€ λ°°ν¬ νκ²½μ΄ μλ κ²½μ°μλ§ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
https://spark.apache.org/docs/3.3.1/running-on-kubernetes.html#cluster-mode
spark-submitKubernetes ν΄λ¬μ€ν°μ Spark μ ν리μΌμ΄μ μ μ μΆνλ λ° μ§μ μ¬μ©ν μ μμ΅λλ€.
μ μΆ λ©μ»€λμ¦ μλ
Sparkλ Kubernetes ν¬λ λ΄μμ μ€νλλ Spark λλΌμ΄λ²λ₯Ό μμ±ν©λλ€.
λλΌμ΄λ²λ Kubernetes ν¬λ λ΄μμλ μ€νλλ μ€νκΈ°λ₯Ό μμ±νκ³ μ°κ²°νμ¬ μ ν리μΌμ΄μ μ½λλ₯Ό μ€νν©λλ€.
μ ν리μΌμ΄μ μ΄ μλ£λλ©΄ μ€νκΈ° ν¬λκ° μ’ λ£λκ³ μ 리λμ§λ§ λλΌμ΄λ² ν¬λλ λ‘κ·Έλ₯Ό μ μ§νκ³ κ²°κ΅ κ°λΉμ§ μμ§λκ±°λ μλμΌλ‘ μ 리λ λκΉμ§ Kubernetes APIμμ "μλ£" μνλ₯Ό μ μ§ν©λλ€.
μλ£λ μνμμ λλΌμ΄λ² ν¬λλ κ³μ° λλ λ©λͺ¨λ¦¬ 리μμ€λ₯Ό μ¬μ© νμ§ μμ΅λλ€.
https://www.amazon.com/Spark-Definitive-Guide-Processing-Simple/dp/1491912219
https://www.oreilly.com/library/view/learning-spark/9781449359034/ch01.html
https://spark.apache.org/docs/3.3.1/running-on-kubernetes.html#cluster-mode