2012-02-17 2 views
2

두 개의 HDFS 클러스터가 C1과 C2로 설정되었습니다. 분명히 둘 다 많은 양의 데이터를 저장하지만이 특정 작업의 경우 그 중 하나는 필요한 데이터의 대부분을 갖습니다 (C1이 90 %라고 가정 해 봅시다) 나머지 데이터는 C2에 있습니다. 나는 C1에서 실행될 수 있지만 여전히 C2상의 다른 10 %의 데이터에 액세스 할 수있는 M/R 작업을 작성하려고합니다. Hadoop에는 이러한 종류의 기능이 내장되어 있습니까? 누구든지 전에이 상황에 처해 있습니까? 하나의 hadoop MR 작업을위한 복수의 HDFS 소스

는 내가 일을 알고 몇 가지 아이디어가 있습니다

1) 내가 명시 적으로 필요한 데이터를 distcp 그냥 C1에서 실행하지만 난 깨끗하고 유연한 솔루션을 기대하고 있습니다.

2) HDFSProxy에 대해 조금 봤지만이 문제를 해결할 것으로 보입니다. 성능에 얼마나 많은 영향을 미칠지 예상 할 수 있습니까?

어느 쪽이든 나는 C1의 계산 노드가 데이터를 처리 할 수 ​​있도록 C2에서 C1로 원하는 데이터를 가져와야하는 대가를 치러야 만한다.

나는 모든 포인터가 크게 감사 할 수 있도록 Hadoop에 상당히 익숙하다. 감사!

답변

3

앞으로 다른 사람들이 궁금해 할 경우를 대비하여 나 자신의 질문에 답변하겠습니다.

Hadoop이이 문제에 대한 해결책을 구현할만큼 충분히 훌륭하다는 것이 밝혀졌습니다. 입력이 여러 namenode (즉, hdfs : // namenode1 : 12345/file1 및 hdfs : // namenode2 : 12345/files2)에서 오는 것으로 표시되면 Hadoop은 자동으로 두 번째 클러스터의 파일을 첫 번째 클러스터로 복사하고 실행합니다. 이 명령들이 실행될 때마다 작업이 실행될 클러스터가 결정됩니다.

데이터를 계산하는 대신 작업의 작은 부분이 데이터를 가져 오는 것이 보장되기 때문에 분명히 이상적이지는 않지만 작동합니다.

관련 문제