Spark로 약 1500 개의 원격 Oracle 테이블에서 데이터를 가져오고 싶었습니다. 스레드 당 테이블을 선택할 수있는 멀티 스레드 응용 프로그램을 원합니다. 쓰레드를 시작하고 각각의 테이블에서 읽을 스파크 작업을 시작합니다. 그 불꽃이 실행멀티 스레드 드라이버에서 Apache Spark SQL 작업 시작하기
공식 스파크 사이트 https://spark.apache.org/docs/latest/job-scheduling.html에서는이 작업을 할 수있는 분명하다 ...
... 클러스터 관리자는 응용 프로그램에서 스케줄링을위한 시설을 제공합니다. 둘째, 각 Spark 애플리케이션에서 여러 스레드 (스레드)가 제출 한 경우 여러 개의 "작업"(스파크 작업)이 동시에 실행 중일 수 있습니다. 응용 프로그램이 네트워크를 통해 요청을 처리 할 경우 일반적입니다. Spark에는 각 SparkContext 내에서 리소스를 예약하는 공정한 스케줄러가 포함되어 있습니다. 당신은 SO가이 비슷한 질문에 아무런 대답을 허용 없었다 가장 upvoted 답변이 불꽃
의 정신에 정말 아니다로 시작하는 것이 Concurrent job Execution in Spark를 게시 할이에 알아 차렸을 수도 있습니다 그러나
- 모두는 스파크의 정신이 무엇인지 관심이 불꽃
- 의 "정신"에없는 알고? 실제로 아무 의미가 없습니다.
이전에 이런 식으로 된 사람이 있습니까? 특별한 일을해야 했니? 프로토 타입을 작성하는 데 많은 시간을 낭비하기 전에 몇 가지 지침을 원했습니다. 나는 이것에 어떤 도움도 정말로 감사 할 것이다!
분산 된 작업자 풀이있는 요점은 작업자 관리자를 활용하여 드라이버 노드가 아닌 클러스터 자체에서 작업을 예약하는 것이기 때문에 Spark의 정신이 아닙니다.왜 여러 드라이버 대신 sparkcontext마다 여러 개의 작업/작업이 필요하고 일반적인 추상화 (드라이버 -> 작업자 -> 드라이버 -> 실제 작업자)를 사용합니까? 어떤 이유로 원사 클라이언트 또는 독립 실행 형 모드로 강제 전환됩니까? – cowbert
실제로 현재 시간에 저는 원사 클라이언트 모드로 강제됩니다. 나는 제 플린으로 모든 것을하고있다. 그러나 내가 아니더라도 모든 직업이 똑같은 일을하고 있기 때문에 하나의 유물 (운전 기사 한 명) 만 갖고 싶습니다. 적어도 공정한 스케줄러가 작업 스케쥴을 처리하는 대신에 더 나은 스케줄링을 처리하는지 여부는 흥미로운 테스트 일 것입니다. 게다가, 스파크 워드 프로세서가 말하는 것처럼, 이것은 네트워크 애플 리케이션이 실행되는 방식이며 이상하지는 않다. –
나는 여기서 사용하는 기술을 설명했다 : https://stackoverflow.com/a/47733522/1138523 –