[HADOOP] 분산 캐시를 통해 매퍼에서 파일을 액세스
HADOOP분산 캐시를 통해 매퍼에서 파일을 액세스
내 매퍼에서 분산 파일의 내용을 액세스하려는. 다음은 분산 캐시에 대한 파일의 이름을 생성 내가 작성한 코드입니다. 나 파일의 내용에 접근 도와주세요
public class DistCacheExampleMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, Text >
{
Text a = new Text();
Path[] dates = new Path[0];
public void configure(JobConf conf) {
try {
dates = DistributedCache.getLocalCacheFiles(conf);
String astr = dates.toString();
a = new Text(astr);
} catch (IOException ioe) {
System.err.println("Caught exception while getting cached files: " +
StringUtils.stringifyException(ioe));
}
}
@Override
public void map(LongWritable key, Text value, OutputCollector<Text, Text> output,
Reporter reporter) throws IOException {
String line = value.toString();
for(Path cacheFile: dates){
output.collect(new Text(line), new Text(cacheFile.getName()));
}
}
}
해결법
-
==============================
1.대신 구성 () 메소드이 시도 :
대신 구성 () 메소드이 시도 :
List<String []> lines; Path[] files = new Path[0]; public void configure(JobConf conf) { lines = new ArrayList<>(); BufferedReader SW; try { files = DistributedCache.getLocalCacheFiles(conf); SW = new BufferedReader(new FileReader(files[0].toString())); String line; while ((line = SW.readLine()) != null) { lines.add(line.split(",")); //now, each lines entry is a String array, with each element being a column } SW.close(); } catch (IOException ioe) { System.err.println("Caught exception while getting cached files: " + StringUtils.stringifyException(ioe)); } }
이 방법을 사용하면 변수 라인에서 분산 캐시에서 (이 경우 첫 번째 파일) 파일의 내용을해야합니다. 각 라인 항목 ','로 분리 된 문자열 배열을 나타냅니다. 따라서 첫 번째 행의 첫 번째 열 (1) [2] 등 lines.get (0) [0], 두 번째 행의 세 번째 행이다 lines.get
from https://stackoverflow.com/questions/21882583/accesing-file-in-mapper-through-distributed-cache by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 너무 많은 작은 파일 HDFS 싱크 수로 (0) | 2019.10.07 |
---|---|
[HADOOP] HBase를 회복 (0) | 2019.10.07 |
[HADOOP] 카프카는 연결 - HDFS와 ExtractTopic 변환 싱크 커넥터가 NullPointerException이 발생합니다 (0) | 2019.10.06 |
[HADOOP] 스파크 스트리밍 빈 파티션에 대한 쓰기 파일을 피하십시오 (0) | 2019.10.06 |
[HADOOP] HDFS -du 결과를 이해하는 방법 (0) | 2019.10.06 |