Computer Science/Big data

Hadoop & Spark 교육 - 3일차

해피단무지 2018. 11. 1. 09:10

복습

  • Sqoop
  • MapReduce
    • Reducer
      • 지역성을 이용해서 mapper가 데이터가 있는 곳에 뜬다
      • 철저히 프로세스가 동작하는 곳은 데이터가 있는곳 - 이 규칙이 최근에 깨지고 있음
        • Spark 이 나오면서 많이 변하고 있음
          • Spark도 data locality가 중요한 요소이긴 하나, spark을 동작하는것은 yarn 이고 이중 하나가 HDFS일 뿐
          • 따러서 yarn과 HDFS가 같은 클러스터면 data locality가 지켜지나, Hadoop cluster 1에 spark이 떠있고 Hadoop cluster2에 있는 data를 가져다가 쓸 경우에는 data locailty가 깨진다.(hadoop cluster1=computing layer, hadoop cluster2=data layer)
          • 이 경우 10G 이상의 network 필요
    • Default heap size 2G
    • 가능한한 network를 덜 타도록 하는것이 관건
    • 클러스터 구성할때는 소수넘버(prime number)로. 따라서 최소 5대 정도로 구성하는것이 좋다
      • 3대로 구성하면 분산이라는 개념이 없어지기 때문에 5대 권장
    • Hadoop 3.0 핵심 - Erasure coding
  • Hive
    • validation 시점

Chapter 01.zeppelin

zeppelin을 이용해서 scala spark을 하는 것

  • spark 자체는 scala로 만들었찌만 구동하는 언어는 Python, R, scala, Java 등 다양...
    • 최근에는 java가 어려워서 pyspark을 많이 씀
    • scala spark은 어렵지만 대중적으로 활용되는 이유가 zeppelin 때문
Chapter 03.scala_basic
  • Scala
    • oop concept + functional 둘다 가능
    • 컴파일하면 자바로!
    • 장점
      • 컴파일 언어임에도 불구하고 스크립트 언어처럼 한줄한줄 사용 가능하다 - 뭘 사용할때?
    • 리터럴
      • 무엇인가를 객체로 바꾸는 표기법
    • class 와 object의 차이
      • object: 싱글톤으로 정의됨?
chapter 02.Spark_intro
  • Spark이 MR를 밀어냈다
  • MR은 only 분산파일시스템이지만 spark은 공유메모리를 갖고있어서 더 효과적이고 빨리 처리할 수 있음
  • 스팍은 하둡의 맵리듀스 기능과 완전히 동일하고 조금 더 개선된 것
Chapter 04.spark_overview

  • jupyter.org

  • R의 dataframe - 2차원 정제된 데이터라는것을 전제로 깔고 들어간다

  • CPU가 병목이니까 메모리를 병렬처리를 해서 속도를 높이자라는 컨셉

  • Intel에서 CPU안에 java를 빠르게 실행할 수 있는 코드를 계속해서 넣고 있다 - spark이 점점 더 유리해지는 이유

  • Spark도 Yarn의 어플리케이션

  • "pyspark"

  • RDD가 들어가는 영역은 cache 영역 p29

  • lazy방식 - 어싱크로노스 형태

  • Action은 RDD가 아닌것을 뱉어내는 것 p42

Chapter visualapi
  • databricks azure
  • 모두다 같은말, 입장에 따라 다르게 부름
    • Instance - 개발자 입장
    • example - 데이터 분석가입장의 하나의 사례
    • row     - rdb입장
    • recode - rdb입장
  • Q. MR과 Spark의 차이
    • MR을 하는건 아니지만 다른 함수로 MR을 수행한다. 더 간략한 함수 제공
      • lines = sc.textFile("/user/root/PresidentMoon.txt")
    • Mapper와 reducer가 돌지 않는다
    • 더 개선된 방법을 제안하는것