일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 네트워크
- 코딩
- 보안
- 자바스크립트
- 컴퓨터공학
- 빅데이터
- 알고리즘
- 데이터분석
- 데이터베이스
- 컴퓨터비전
- 컴퓨터과학
- 데이터과학
- 네트워크보안
- 인공지능
- 데이터구조
- Yes
- 딥러닝
- 소프트웨어공학
- 프로그래밍
- 사이버보안
- 웹개발
- 파이썬
- 2
- 머신러닝
- 소프트웨어
- 클라우드컴퓨팅
- I'm Sorry
- 자료구조
- 버전관리
- 프로그래밍언어
- Today
- Total
스택큐힙리스트
Spark 서브밋은 jar 파일을 클러스터에 자동으로 업로드하나요? 본문
로컬 머신 터미널에서 클러스터로 Spark 앱을 제출하려고 하고 있습니다.--master yarn-cluster
를 사용하고 있습니다. 앱을 제출하는 머신이 아닌 클러스터에서 드라이버 프로그램을 실행해야합니다.
로컬 머신에 있는 애플리케이션 jar 파일의 경로를 제공할 때, spark-submit은 자동으로 클러스터에 업로드하나요?
다음과 같이 사용하고 있습니다.
bin/spark-submit
--class com.my.application.XApp
--master yarn-cluster --executor-memory 100m
--num-executors 50 /Users/nish1013/proj1/target/x-service-1.0.0-201512141101-assembly.jar
1000
에러 메시지를 받고 있습니다.
Diagnostics: java.io.FileNotFoundException: File file:/Users/nish1013/proj1/target/x-service-1.0.0-201512141101- does not exist
고급 의존성 관리 spark-submit을 사용할 때,
어플리케이션 jar 파일과 --jars 옵션에 포함된 어떤 jar 파일도
자동으로 클러스터로 전송됩니다.
하지만 그렇게 보이지는 않습니다!
답변 1
그리고 물론 Spark의 YARN-specific 버전을 다운로드하거나 구축했을 것입니다.
배경적으로, spark-submit 및 --deploy-mode cluster 옵션을 사용하여 독립 클러스터 배포를 하는 경우, 모든 워커 노드가 종속성에 액세스할 수 있도록 해야합니다. Spark는 이를 클러스터로 푸시하지 않습니다. 이것은 Spark를 작업 관리자로 사용하는 독립 클러스터 모드에서 드라이버가 어느 노드에서 실행될지 알 수 없기 때문입니다! 그러나 이는 여러분의 경우에는 적용되지 않습니다.
하지만 업로드하는 jars의 크기에 따라, 여전히 각 노드에 명시적으로 jars를 넣거나 HDFS를 통해 전역적으로 사용 가능하도록 설정하는 것이 좋습니다. 이는 문서에서 언급된 다른 이유 때문입니다:
http://spark.apache.org/docs/latest/submitting-applications.html#advanced-dependency-management에서 유추하건데, Advanced Dependency Management은 양쪽 모두를 최선의 선택으로 보이지만, 모든 노드에 JAR 파일을 수동으로 푸시하는 좋은 이유도 있습니다
local: - local:/로 시작하는 URI는 각 작업자 노드에 로컬 파일이 있을 것으로 예상됩니다. 즉 네트워크 I/O가 발생하지 않습니다 그리고 각 작업자에게 푸시되거나 NFS, GlusterFS 등을 통해 공유되는 대용량 파일/JAR에 대해 잘 작동합니다.
하지만 local:/...은 hdfs:/...로 변경될 것으로 가정합니다. 그 부분은 확실하지 않습니다.
답변 2
스파크 서브밋은 자동으로 jar 파일을 클러스터에 업로드하는 기능이 있습니다. 스파크는 대규모 데이터 처리를 위한 오픈 소스 분산 컴퓨팅 프레임워크로, 많은 기능을 제공하고 있습니다. 이 중 하나는 스파크 애플리케이션을 제출할 때 자동으로 jar 파일을 클러스터에 업로드하는 기능입니다.스파크는 일반적으로 클러스터에 설치된 여러 노드로 구성되어 있습니다. 이 노드들은 분산 컴퓨팅을 위해 함께 작동하며, 데이터 처리 작업을 고속으로 수행할 수 있습니다. 스파크 애플리케이션을 개발한 후에는 이 애플리케이션을 클러스터에서 실행해야 합니다.
이때 스파크 서브밋 명령을 사용하여 애플리케이션을 제출할 수 있습니다. 개발자는 스파크 서브밋 명령을 사용하여 로컬에서 작성한 애플리케이션 코드와 관련된 jar 파일을 클러스터에 업로드할 수 있습니다. 이 jar 파일은 애플리케이션을 실행하는 데 필요한 모든 종속성과 라이브러리를 포함합니다.
스파크 서브밋은 이 jar 파일을 클러스터에 자동으로 업로드합니다. 이는 사용자가 수동으로 파일을 전송하거나 각 노드에 복사하는 번거로움을 덜어 줍니다. 또한, 애플리케이션을 클러스터 전체에서 실행하기 위해 jar 파일을 각 노드에 복사하는 것이 아니라, 한 번의 업로드로 모든 노드에서 액세스할 수 있습니다.
스파크 서브밋은 사용자 편의성을 고려하여 애플리케이션 개발 및 실행 프로세스를 보다 간편하게 만들어줍니다. 단순히 명령어를 실행함으로써 애플리케이션과 관련된 jar 파일을 클러스터로 자동으로 업로드할 수 있습니다. 스파크의 유연성과 확장성을 활용하여 대규모 데이터 처리를 보다 효율적으로 수행할 수 있습니다.
따라서 스파크 서브밋은 클러스터에 jar 파일을 자동으로 업로드하는 기능을 제공합니다. 이를 통해 개발자는 애플리케이션 실행 과정에서 발생할 수 있는 복잡성을 해결하고, 보다 편리하게 데이터 처리 작업을 수행할 수 있습니다.