Apache Spark 소스 코드를 단계별로 이해하는 방법


최상의 답변

이전 버전의 Spark 코드를 읽는 것이 좋습니다.

버전 0.5를 고려하세요. 2012 년에 출시됨 apache / spark 당시 Spark에는 약 70 개의 소스 코드 파일이 있었고이 파일은 모두 작았습니다. 여기에서 RDD의 소스 코드를 살펴보십시오. apache / spark 모든 것이 매우 간단하고 간결합니다.

또한 Spark의 아키텍처는 t는 그 이후로 극적으로 변했습니다. 개발자는 방금 Yarn 또는 Kafka와 같은 외부 기술과의 많은 오류 처리, 최적화 및 통합을 추가했습니다.

2012 년 Spark의 작동 방식을 이해하면 오늘날 Spark의 작동 방식을 이해하는 것은 문제가되지 않습니다.

또한 JerryLead / SparkInternals 노트를 읽어 보시기 바랍니다. Spark의 내부 아키텍처 개요를 제공합니다.

Answer

Noam Ben-Ami의 답변을 따르려면 — If, you re a end-to-end user Spark는 상당히 철저 할 수 있습니다. 배우기 어렵습니다.

Bash, Python 및 SQL을 알고 있더라도 Spark 사용의 빙산의 일각에 불과합니다. Python / SQL 스크립팅 분석가가 아닌 “엔드 투 엔드”Spark를 사용하는 경우 학습해야 할 큰 주제에 해당하는 많은 구성 요소가 있습니다.

물론, Spark를 로컬에서 사용할 수 있습니다. (당신의 노트북) 그리고 Hadoop없이, 그러나 “실제 세계”에서 당신은 Spark를 그렇게 사용하지 않을 것입니다. 이것은 구문의 일부를 배우는 것이 좋지만 실수하지 마십시오. 아무도 그 맥락에서 “Spark”를 수행하도록 고용하지 않을 것입니다 (* 말장난 의도).

Spark를 사용하는 모든 이유는 성능과 “빅 데이터”라고하는 분산 파일 시스템 위에 앉아 있습니다. 즉, Spark 작업에 대한 코드를 작성할 때 파티션, 노드, 직렬화, JVM, vcore, 실행기, 메모리, 메모리 및 디스크, 셔플, 압축 파일, 열 형식 (parquet) 등을 모두 이해할 수 있습니다. S3에서 RDD, DataFrames, DataSet (Java / Scala 만 해당) 및 Spark SQL을 통해 데이터를 최종 데이터 세트로 이동하는 방법입니다.

나에게 이것은 누군가가 알고 있다고 말할 때와 매우 흡사합니다. Excel”을 클릭 한 다음 기본 매크로를 처음부터 작성할 수 있는지 물어 보면 헤드 라이트에 사슴이 표시됩니다.

Spark에 대한 가능한 벤처는 다음과 같습니다.

  1. Hadoop 클러스터 구축 (노드, 메모리, EC2 인스턴스 등)
  2. YARN 구성 (노드, 코어, 인스턴스, 실행기, 메모리 관리, 드라이버, 오버 헤드 메모리, 브로드 캐스팅, 인 메모리 등) 디스크 관리 등) —이 중 하나가 작업을 중단 / 종료시킬 수 있으며,이 중 하나라도 작동하지 않으면 사소한 데이터로드로도 한 단계 더 나아 가지 않습니다.
  3. Spark RDDs 문서
  4. Spark DataFrames 문서
  5. Spark SQL 문서
  6. 필연적으로 코드를 작성하게됩니다. # 2의 문제를 노출 할 #의 3–5.
  7. 이 시점에서 최소한 Java 코드를 디버깅하고 Python을 사용하는 경우 데이터 유형 문제에 대한 py4J 게이트웨이 오류 Python 및 스트리밍 데이터 개체를 사용합니다.

많은 사람들이 RDD, DataFrames 및 Spark SQL에 대한 함수 / 메소드를 단 몇 분만에 작성할 수 있으며 Python 및 SQL에 대한 경험이 있다면 아마도 며칠 만에 RDD, DataFrames 및 SQL 문서를 앗아 가기도하지만 브로드 캐스트, 실행기, 작업 또는 메모리 오류로 인해 Spark 작업이 중단되면 그 어느 것도 중요하지 않습니다. Spark 잠수복을 입고 Spark [자바]의 뱃속에 대해 자세히 알아 보려고합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다