2012-07-25 3 views
1

mapreduce 작업을 작성 중이며 메모리의 매퍼로 전달하려는 입력이 있습니다.hadoop - 입력 형식으로 메모리의 데이터를 어떻게 사용할 수 있습니까?

매퍼에 입력을 전달하는 일반적인 방법은 Hdfs-sequencefileinputformat 또는 Textfileinputformat을 사용하는 것입니다. 이 inputformats는 fdfs에있는 파일을 가져 와서 매퍼에로드하고 분할합니다.

간단하게 전달할 수있는 방법을 찾을 수 없으며, List of elemnts를 mappers에 알릴 수 있습니다. 나는이 요소들을 디스크에 wrtite하고 fileinputformat을 사용해야 만한다.

모든 솔루션?

나는 Java offcourse에서 코드를 작성하고있다.

감사합니다.

답변

0

입력 형식은 디스크 또는 파일 시스템에서 데이터를로드 할 필요가 없습니다. HBase 또는 (http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/mapred/TableInputFormat.html)과 같은 다른 시스템에서 데이터를 읽는 입력 형식도 있습니다. 여기서 데이터가 디스크. 클러스터의 모든 노드에서 일부 API를 통해 사용할 수 있음을 암시합니다.
그래서 자신의 논리에 데이터를 분할하는 입력 형식을 구현해야합니다 (파일이 없으면 사용자의 작업 임). 데이터를 레코드
으로 잘라 내야합니다. 메모리 데이터 소스는 클러스터의 모든 노드에서 분산되어 실행되어야합니다. 또한 프로세스에서 Mapper 프로세스로 데이터를 전달하기위한 효율적인 IPC 메커니즘이 필요합니다.
나는이 특별한 요구 사항으로 이어지는 귀하의 사례가 무엇인지 알고 기쁜 일이 될 것입니다.

+0

나는 파일 시스템에서 경로를 얻고 경로 아래의 모든 파일 목록을 반환하는 간단한 코드를 가지고있다. 더 나은 결과를 얻으려면 클러스터에서이 코드를 실행하고 싶습니다. 그래서 나는 매퍼에서이 코드를 원하고 감속기를 수집하고 싶습니다. 각 매퍼에게 실행 경로를 입력으로 제공하려고합니다. 메모리에 루트 경로 목록이 있으며이를 내 매퍼에 입력으로 전달하려고합니다. 이것은 사용 사례입니다. 어쩌면 맵 축소에서 이렇게하는 더 좋은 방법이 있습니다. – user1251654

관련 문제