2013-06-23 6 views
0

hadoop을 사용하여 행렬 - 벡터 곱셈을 수행하고 싶습니다. 지금 작은 예제가 있습니다. 행렬의 행을 포함하는 하나의 입력 파일이 항상 배수 벡터와 이어집니다. 그래서 각 map-task는이 단일 파일로부터 하나의 행과 벡터를 얻습니다.hadoop을 이용한 행렬 - 벡터 곱셈 : 다른 파일의 벡터 및 행렬

이제 두 개의 입력 파일을 갖고 싶습니다. 하나의 파일에는 행렬과 벡터가 있어야합니다. 하지만 매퍼가 두 파일에 모두 액세스 할 수 있도록하는 방법은 생각할 수 없습니다.

여기서 가장 좋은 방법은 무엇입니까?

도움 주셔서 감사합니다.

+1

매퍼의 설정 방법에서 벡터를 읽고 곱셈을 할 때 사용할 수 있습니다. – zsxwing

+0

그 방법은 여러 가지가 있습니다. 자세한 내용은 http://stackoverflow.com/questions/11059725/is-it-possible-to-have-multiple-inputs-with-multiple-different-mappers-in-html을 참조하십시오. hadoop – twid

답변

0

가장 쉽고 효율적인 해법은 벡터를 의 메모리 (map() 입력이 아님)에서 직접 메모리로 읽는 것입니다. 아마도 그것은 거대하지 않아서 기억에 맞지 않을 것입니다. 그런 다음 map() 행별로 행렬 만. 각 행을 받으면 벡터로 점을 찍어 출력의 한 요소를 만듭니다. (index,value)을 내 보낸 다음 Reducer에 벡터를 구성하십시오 (필요한 경우).

+0

올바른 위치 지정으로 결과 벡터를 얻을 수있는 방법 매트릭스가 2 HDFS 블록 주위에 큰 크기 인 경우이 두 매퍼에서 동일한 인덱스를 얻습니다. 최종 벡터를 어떻게 만들 수 있습니까? –