2014-06-11 1 views
0

.txt 파일에서 콘텐츠를 수신하고 단어가 양수인지 음수인지 사전을 확인해야하는 정서 분석 도구를 개발 중입니다. FileInputFormat.addInputPath (args [0])를 사용하여 분석 할 단어가 들어있는 .txt 파일을 참조합니다. 사전 (.txt 파일 64KB)의 내용으로 ArrayList를 만들고 Mapper 클래스에 사용되는 클래스 ReadDictionary에 정적 객체를 전달하려고했습니다. Eclipse에서 실행하면 괜찮습니다.하지만 Hadoop에서 실행하려고하면 오류가 발생합니다. 사전 (.txt 파일 64KB)의 내용을 Hadoop (HDFS)에서 실행하는 효율적인 방법으로지도 클래스에 전달하려면 어떻게해야합니까?Hadoop Mapper 클래스의 인수

답변

0

setup 클래스에는 Mapper이 초기화 될 때 호출되는 메서드가 있습니다.

당신은 HDFS에 사전을 저장하거나 로컬 또는 원격으로 어딘가에, 당신은 컨텍스트 매개 변수로 핸들 (경로하는 파일 경로 또는 원격 URL)를 전달할 수 있습니다. setup impl에서는 context 매개 변수를 사용하여 사전을 인스턴스화합니다. 사전 객체는 Mapper의 수명을 통해 메모리에 남아 있습니다.

cleanup 방법으로 필요한 경우 청소할 수 있습니다.

1

org.apache.hadoop.filecache.DistributedCache을 사용하여 사전 파일을 캐시 할 수 있습니다.

DistributedCache는 응용 프로그램에 필요한 파일 (텍스트, 아카이브, jar 등)을 캐시하기 위해 Map-Reduce 프레임 워크에서 제공하는 기능입니다.

프레임 워크는 작업에 대한 작업이 해당 노드에서 실행되기 전에 필요한 파일을 종속 노드에 복사합니다. 효율성은 파일이 작업 당 한 번만 복사되고 슬레이브에서 아카이브되지 않은 아카이브를 캐시 할 수 있다는 사실에서 유래합니다.

여기는 tutorial입니다.

관련 문제