[HADOOP] 저장 및 하둡 작업의 복잡한 쓰기 가능한 값을 읽어
HADOOP저장 및 하둡 작업의 복잡한 쓰기 가능한 값을 읽어
나는 다른지도-감소 작업의 입력에 1지도-감소 작업의 출력에서 (쓰기 가능을 구현하는) 복잡한 값을 이동해야합니다. 첫번째 작업의 결과를 파일로 저장. 파일은 텍스트 데이터 또는 (기본 출력 \ 입력 형식과) BytesWritable를 저장할 수 있습니다. 그래서 난 내 기록 가능 BytesWritable하고 그것에서 또는 텍스트로 변환하는 간단한 방법이 필요합니다. 이 존재합니까? 어떤 다른 방법은이 작업을 수행하려면? 많은 감사
해결법
-
==============================
1.사용자 IRW이 올바른지, SequenceFileOutputFormat를 사용합니다. SequenceFile는 쓰기 가능을 텍스트로 변환하지 않고이 정확한 문제를 해결합니다. 작업을 설정할 때 사용중인 쓰기 가능한 하위 클래스를 설정하는 job.setOutputKeyClass 및 job.setOutputValueClass을 사용합니다 :
사용자 IRW이 올바른지, SequenceFileOutputFormat를 사용합니다. SequenceFile는 쓰기 가능을 텍스트로 변환하지 않고이 정확한 문제를 해결합니다. 작업을 설정할 때 사용중인 쓰기 가능한 하위 클래스를 설정하는 job.setOutputKeyClass 및 job.setOutputValueClass을 사용합니다 :
job.setOutputKeyClass(MyWritable1.class); job.setOutputValueClass(MyWritable2.class); job.setOutputFormatClass(SequenceFileOutputFormat.class);
이것은 당신의 Writables를 저장하기 위해 하둡 SequenceFile 형식을 사용합니다. 그런 다음 다음 작업에 SequenceFileInputFormat을 사용합니다 :
job.setInputFormatClass(SequenceFileInputFormat.class);
그런 다음이 작업의 매퍼의 입력 키와 값은 원래 이전 작업의 출력으로 지정된 두 개의 쓰기 가능 클래스가 될 것입니다.
당신의 복잡한 쓰기 가능한 하위 클래스가 올바르게 구현하는 것이 중요합니다, 참고. 당신이 빈 생성자가 있어야한다는 사실을 넘어, 쓰기 및 readFields의 방법은 클래스의 모든 쓰기 가능한 필드도 작성하고 자신의 정보를 읽을 수 있도록 구현해야합니다.
from https://stackoverflow.com/questions/19376074/save-and-read-complicated-writable-value-in-hadoop-job by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 어떻게 R을 통해 HDFS에 액세스 할 수? (0) | 2019.10.08 |
---|---|
[HADOOP] 감속기로 GZIP을 사용하여 손상된 데이터를 생성 (0) | 2019.10.08 |
[HADOOP] 하둡의 기본 정렬을 무시하는 방법 (0) | 2019.10.07 |
[HADOOP] 피닉스 JDBC 작동, 예외없이와 붙어하지 않습니다 (0) | 2019.10.07 |
[HADOOP] 지도 출력 파일을 줄이기 : 파트 R- * 및 파트 - * (0) | 2019.10.07 |