hadoop 스트리밍에서 파일을 감속기의 로컬 디스크에 쓸 수 있습니까?hadoop 스트리밍에서 감속기의 로컬 디스크에 파일을 쓸 수 있습니까?
예를 들어, C++로 감속기, 나는 코드
ofstream fout(***);
fout << "asdf";
이 메이크업 감각 않으면? 그리고 fout
에 의해 생성 된 파일은 어디에 있습니까?
hadoop 스트리밍에서 파일을 감속기의 로컬 디스크에 쓸 수 있습니까?hadoop 스트리밍에서 감속기의 로컬 디스크에 파일을 쓸 수 있습니까?
예를 들어, C++로 감속기, 나는 코드
ofstream fout(***);
fout << "asdf";
이 메이크업 감각 않으면? 그리고 fout
에 의해 생성 된 파일은 어디에 있습니까?
하둡 스트리밍은 Hadoop OutputFormatters
(예 : TextOutputFormat
)을 사용합니다. 따라서 기본 제공 형식이 아닌 특정 출력 동작을 얻는 한 가지 방법은 사용자 지정 출력 형식을 작성하고 getRecordWriter(TaskAttemptContext context)
메서드를 재정의하는 것입니다.
로컬 디스크에 직접 쓰기 작업을 수행 할 수 있는지 확실하지 않습니다. 괜찮을 수도 있습니다. 당신은 그것을 줄 필요가있을 것입니다. 이 문제의 주된 문제점은 클러스터에서 어떤 노드가 감속기를 실행할 지 모르고 HDFS가 제공하는 많은 신뢰성이 느슨하다는 것입니다.
fs.default가 hdfs-site.xml의 fs.default가 file : ///가 아닌 경우, reducer는 로컬 fs에 직접 쓸 수 없습니다. 기본적으로 감속기는 hdfs-site.xml에서 제공되는 파일 시스템에 출력을 저장합니다.