문제

나는 최근에 놀이를했다 Hadoop MapReduce 작업의 일정, 관리 및보고에 깊은 인상을 받았습니다. 새로운 작업의 배포와 실행을 매우 원활하게 만들어 개발자가 작업 구현에 집중할 수 있도록하는 것으로 보입니다.

MapReduce 문제로 쉽게 표현되지 않는 작업의 분산 실행을 위해 Java 도메인에 어떤 것이 있는지 궁금합니다. 예를 들어:

  • 작업 조정 및 동기화가 필요한 작업. 예를 들어, 순차적 인 작업 실행이 포함될 수 있지만 동시에 일부 작업을 실행하는 것이 가능합니다.

                   .-- B --.
            .--A --|       |--.
            |      '-- C --'  |
    Start --|                 |-- Done
            |                 |
            '--D -------------'
    
  • 배포하고 싶지만 이미지 변환/크기 조정을위한 출력을 제공하지 않는 CPU 집중 작업.

그러한 분산 컴퓨팅 환경을 제공하는 Java 프레임 워크/플랫폼이 있습니까? 아니면 Hadoop을 사용하여 이런 종류의 일을 허용/달성 할 수 있습니까? 그렇다면 이러한 종류의 작업에 대한 패턴/지침이 있습니까?

도움이 되었습니까?

해결책

나는 그 이후로 발견했다 스프링 배치 그리고 스프링 배치 통합 내 요구 사항의 많은 부분을 다루는 것으로 보입니다. 내가 어떻게 진행되는지 알려 드리겠습니다.

다른 팁

보세요 석영. 원격 작업 관리 및 작업을 실행하기 위해 여러 기계를 클러스터링하는 것과 같은 것들을 지원한다고 생각합니다.

CPU 집중 작업을위한 워크 플로 엔진을 찾고 있다고 생각합니다 (또한 "과학 워크 플로", 예를 들어 http://www.extreme.indiana.edu/swf-survey). 그러나 나는 당신이 얼마나 분포되어 있는지 잘 모르겠습니다. 일반적으로 모든 워크 플로 엔진에는 "단일 고장 지점"이 있습니다.

나는 상당히 몇 가지 문제가 맵-유도 문제로 표현 될 수 있다고 생각합니다.

구조에 맞게 수정할 수없는 문제의 경우 Java를 사용하여 직접 설정하는 것을 볼 수 있습니다. ExecutorService. 그러나 하나의 JVM으로 제한되며 상당히 낮은 수준이 될 것입니다. 그러나 쉽게 조정 및 동기화를 허용합니다.

사전 스케줄러 요구 사항, 특히 작업 조정으로 언급 한 복잡한 워크 플로에 맞는 것 같습니다. 오픈 소스와 Java 기반입니다. 당신은 그것을 사용하여 모든 것을 실행할 수 있습니다, Hadoop 작업, 스크립트, Java 코드, ...

면책 조항 : 나는 회사 그 뒤에

노력하다 레디슨 뼈대. 실행 및 일정이 쉬운 API를 제공합니다 java.util.concurrent.Callable 그리고 java.lang.Runnable 작업. 다음은 분산에 대한 문서입니다 집행자 서비스 그리고 스케줄러 서비스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top