최상의 답변
이전 버전의 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에 대한 가능한 벤처는 다음과 같습니다.
- Hadoop 클러스터 구축 (노드, 메모리, EC2 인스턴스 등)
- YARN 구성 (노드, 코어, 인스턴스, 실행기, 메모리 관리, 드라이버, 오버 헤드 메모리, 브로드 캐스팅, 인 메모리 등) 디스크 관리 등) —이 중 하나가 작업을 중단 / 종료시킬 수 있으며,이 중 하나라도 작동하지 않으면 사소한 데이터로드로도 한 단계 더 나아 가지 않습니다.
- Spark RDDs 문서
- Spark DataFrames 문서
- Spark SQL 문서
- 필연적으로 코드를 작성하게됩니다. # 2의 문제를 노출 할 #의 3–5.
- 이 시점에서 최소한 Java 코드를 디버깅하고 Python을 사용하는 경우 데이터 유형 문제에 대한 py4J 게이트웨이 오류 Python 및 스트리밍 데이터 개체를 사용합니다.
많은 사람들이 RDD, DataFrames 및 Spark SQL에 대한 함수 / 메소드를 단 몇 분만에 작성할 수 있으며 Python 및 SQL에 대한 경험이 있다면 아마도 며칠 만에 RDD, DataFrames 및 SQL 문서를 앗아 가기도하지만 브로드 캐스트, 실행기, 작업 또는 메모리 오류로 인해 Spark 작업이 중단되면 그 어느 것도 중요하지 않습니다. Spark 잠수복을 입고 Spark [자바]의 뱃속에 대해 자세히 알아 보려고합니다.