저는 Apache와 Yahoo의 DistributedCache 튜토리얼을 읽었습니다. 나는 아직도 혼란 스럽다. 모든 데이터 노드에 복사 할 파일이 있다고 가정합니다. 따라서 작업 동인에 DistributedCache.addCacheFile(new URI(hdfsPath),job)
을 사용하여 파일을 사용 가능하게 만듭니다. 그런 다음 내 맵퍼에 DistributedCache.getLocalCacheFiles(job)
이라고 부릅니다.Hadoop DistributedCache
이제 map()이 실행될 때마다 배열의 요소에 액세스 할 수 있도록이 파일의 내용을 기반으로 데이터 노드에 배열을 만들고 싶습니다. 내가 할 수 있을까? 캐시 된 파일을 읽고 Mapper 클래스 내에서 배열을 만들면 매퍼별로 한 번만 입력하는 대신 매퍼에 대한 각 새 입력에 대한 배열을 만드는 것처럼 보이기 때문에 혼란 스럽습니다. 이 부분은 실제로 어떻게 작동합니까 (즉, 배열을 어디에 만들어야합니까?).
나는 내 자신의 질문에 대한 답을 찾은 것 같다. Mapper가 인스턴스화 될 때 configure() 메소드가 자동으로 호출되는 것처럼 보입니다. 따라서 configure()를 사용하여 배열을 작성해야합니다. 이것은 map() 메서드 외부에 있으므로 한 번만 발생합니다. 나는 그것이 옳다는 것을 희망한다! – occasionalUser