2017-01-13 3 views
1

I는 두 부분으로 나누어 진 일 가지고스파크 - 실행 중 변경 병렬

  • 첫 부분이 스파크를
  • seoncd 부는 계산 무거운 CPU 집약적 ML 알고리즘
를 사용 HBase와 데이터를 취득 해

많은 수의 집행자/코어가 있으면 HBase 클러스터가 너무 적극적으로 쿼리되므로 생산 불안정이 발생할 수 있습니다. Executor/Cores가 너무 적 으면 ML 계산이 수행하는 데 오랜 시간이 걸립니다.

실행 프로그램 및 코어의 수가 시작시 설정되어 있으므로 작업의 첫 번째 부분에 대한 실행 프로그램 번호를 줄이는 방법이 있는지 알고 싶습니다.

필자는 분명히 Hadoop이이 두 단계 사이에서 원할 때의 디스크 직렬화와 같이 두 개의 개별 작업을 실행하지 않도록하고 싶습니다.

덕분에 당신의 도움

답변

0

위해 나는 dynamic allocation 당신이 찾고있는 것 같다. 스파크 스트리밍과 함께 사용할 수있는이 제품입니다.

데이터 처리와 데이터 처리의 균형을 맞추기 위해 RDD 크기를 약간 재생해야 할 수도 있지만 실제 사용 사례에 따라 실제로 어려울 수 있습니다.

+0

도움 주셔서 감사합니다. 'RDD 크기로 조금만 놀아 라'는 것은 무엇을 의미합니까? 데이터를 10 개의 RDD로 나누고 그것들의 합집합을 만드나요? – ogen

+0

저는 각 단계에서 RDD 파티션을 다시 작성하는 방법을 설명합니다. 이해가 정확하다면 파티션의 수를 줄이고 목적에 맞게 응용 프로그램을 느리게 할 수 있습니다. 이 단계에서는 더 많은 집행자가 필요하며 더 많은 집행자가 파티션을 다시 분할하고 동적 할당이 나머지 작업을 수행 할 수 있습니다. explain()을 사용하여 각 단계에서 항상 원하는대로 작동하는지 확인하십시오. –