[HADOOP] 하둡 2.X에서 DistributedCache
HADOOP하둡 2.X에서 DistributedCache
나는이 문제를 해결 일하는 사람들을 발견, 하둡에서 DistributedCache에서이 문제를 새로운 API를 2.x으로 가지고 있지만, 그것은 내 문제의 예를 해결하지 않습니다
내가 DistributedCache에서 데이터를 검색하는 것을 시도는 NullPointerException을 가지고 있기 때문에이 솔루션은 나와 함께 작동하지 않습니다
다음과 같이 내 구성은 다음과 같습니다
public int run(String[] arg) throws Exception {
Configuration conf = this.getConf();
Job job= new Job(conf,"job Name");
...
job.addCacheFile(new URI(arg[1]);
protected void setup(Context context)
throws IOException, InterruptedException {
Configuration conf = context.getConfiguration();
URI[] cacheFiles = context.getCacheFiles();
BufferedReader dtardr = new BufferedReader(new FileReader(cacheFiles[0].toString()));
그것은이 NullPointerException이 발생 버퍼링 리더 context.getCacheFiles 때문에 happenning 작성을 개시 할 때 여기 (); 항상 NULL을 반환한다. 어떻게 (HDFS, 또는 로컬 파일 시스템)이 문제를 해결하기 위해, 어디는 캐시 파일이 저장됩니다
해결법
-
==============================
1.당신은 하둡의 로컬 JobRunner를 사용하는 경우 (단일 자바 프로세스로, 모드를 비는 분산), 다음 로컬 데이터 디렉토리가 생성되지 않습니다; getLocalCacheFiles () 또는 getCacheFiles는 () 호출은 당신이 분산 또는 의사 분산 모드에서 작업을 실행하고 있는지 확인 results.Can의 빈 세트를 반환합니다.
당신은 하둡의 로컬 JobRunner를 사용하는 경우 (단일 자바 프로세스로, 모드를 비는 분산), 다음 로컬 데이터 디렉토리가 생성되지 않습니다; getLocalCacheFiles () 또는 getCacheFiles는 () 호출은 당신이 분산 또는 의사 분산 모드에서 작업을 실행하고 있는지 확인 results.Can의 빈 세트를 반환합니다.
하둡 프레임 작업은 작업의 각 작업의 로컬 작업 디렉토리에 분산 캐시에 설정 파일을 복사합니다. 각 작업자 시스템의 로컬 파일 시스템에 위치 캐시 된 모든 파일의 복사본이 있습니다. (그들은 mapred.local.dir의 하위 디렉토리에있을 것입니다.)
당신은 DistributedCache에 대한 자세한 이해를 위해이 링크를 참조 할 수 있습니다.
from https://stackoverflow.com/questions/20497968/distributedcache-in-hadoop-2-x by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 입력으로 이미지와 맵리 듀스 작업을 만듭니다 (0) | 2019.10.06 |
---|---|
[HADOOP] 어떻게 데이터 노드에 블록 배치 정책을 선택하려면? (0) | 2019.10.06 |
[HADOOP] 하둡 FS 저것 집어 넣어 명령을 사용할 때 왜 맵리 듀스가 실행되지 않습니다? (0) | 2019.10.06 |
[HADOOP] 아파치 하둡 일반적인 실패 하둡을 구축하는 동안 (0) | 2019.10.06 |
[HADOOP] HDFS는 : java.io.FileNotFoundException : 파일이 존재하지 않습니다 name._COPYING를 (0) | 2019.10.06 |