hdfs 입출력 예제

이 예제에서는 하나의 개체만 스트림에 기록되지만 원하는 경우 스트림을 닫기 전에 더 많은 개체가 있는 write()를 호출할 수 있습니다. Avro는 Avro 데이터에서 MapReduce 프로그램을 쉽게 실행할 수 있도록 다양한 클래스를 제공합니다. 예를 들어, org.apache.avro.mapred 패키지의 아브로매퍼와 아브로시저(AvroReducer)는 하두프의 (구식) 매퍼 및 감속기 클래스의 전문화입니다. Avro 데이터 파일은 값의 시퀀스일 뿐이므로 입력 및 출력에 대한 키 값 구분을 제거합니다. 그러나 중간 데이터는 여전히 셔플에 대한 키 값 쌍으로 나뉩니다. 아브로의 오브젝트 컨테이너 파일 형식은 Avro 객체의 시퀀스를 저장하는 것입니다. SequenceFile에 설명된 Hadoop의 시퀀스 파일과 디자인에서 매우 유사합니다. 주요 차이점은 Avro 데이터 파일은 언어 간에 이식 가능하도록 설계되었기 때문에 예를 들어 Python에서 파일을 작성하고 C에서 읽을 수 있습니다 (다음 섹션에서 정확히 이 작업을 수행합니다). WritableComparator는 Writable비교할 수 있는 클래스에 대한 RawComparator의 범용 구현입니다.

그것은 두 가지 주요 기능을 제공합니다. 첫째, 스트림에서 비교할 개체를 역직렬화하고 개체 compare() 메서드를 호출하는 원시 compare() 메서드의 기본 구현을 제공합니다. 둘째, Raw비교원 인스턴스(Writable 구현이 등록된)에 대한 팩터리 역할을 합니다. 예를 들어 IntWritable에 대한 비교기를 얻으려면 NullWritable은 0 길이 직렬화가 있으므로 특별한 유형의 쓰기 가능입니다. 스트림에서 바이트를 쓰거나 읽지 않습니다. 자리 표시자로 사용됩니다. 예를 들어 MapReduce에서 키 또는 값을 NullWritable로 선언할 수 있습니다.이 위치를 사용할 필요가 없는 경우 상수 빈 값을 효과적으로 저장 합니다. NullWritable 키 값 쌍 반대로 값의 목록을 저장 하려는 경우 SequenceFile에서 키로 유용할 수도 있습니다. 변경할 수 없는 단일 톤이며 NullWritable.get()를 호출하여 인스턴스를 검색할 수 있습니다. 나는 Hadoop어떤 계산 작업을 수행 할 수 없습니다 처음부터 말을해야한다. 일반적으로 응용 프로그램은 MapReduce 패러다임에 맞게 완전히 다시 생각해야 하며 생산성이 아닐 수 있습니다(알고리즘 디자인에 권장읽기 참조). 또한 데이터가 충분히 크지 않은 경우 작업을 분할하고 조정하기 위한 오버로드가 단일 컴퓨터에서 실행되는 것보다 높을 수 있기 때문에 병렬로 계산하는 것이 생산성이 아닐 수 있습니다.

Hadoop은 I/O 경계가 있는 경우에 가장 잘 작동합니다: 처리는 임의의 디스크 액세스보다 훨씬 적은 시간이 소요되며 데이터를 순차적으로 읽을 수 있습니다. 예를 들어, 큰 트윗 컬렉션의 경우입니다. Checksums는 계산하는 데 매우 저렴합니다(Java에서는 기본 코드에서 구현됨) 일반적으로 파일을 읽거나 쓰는 시간에 몇 퍼센트의 오버헤드를 추가합니다. 대부분의 응용 프로그램에서 는 데이터 무결성에 대해 지불할 수 있는 가격입니다. 그러나 일반적으로 기본 파일 시스템이 checksums를 기본적으로 지원하는 경우 체크섬을 사용하지 않도록 설정할 수 있습니다. 이 작업은 로컬 파일 시스템 대신 RawLocalFileSystem을 사용하여 수행됩니다. 응용 프로그램에서 전역적으로 이 작업을 수행하려면 속성 fs.file.impl을 값 org.apache.hadoop.fs.RawLocalFileSystem에 설정하여 파일 URI에 대한 구현을 다시 매핑하는 것으로 충분합니다. 또는 RawLocalFileSystem 인스턴스를 직접 만들 수 있습니다., 일부 읽기에 대 한 검사 확인을 사용 하지 않도록 설정 하려는 경우 유용할 수 있습니다.: setVerifyChecksum에 false를 전달 하 여 checksums의 확인을 비활성화 할 수 있습니다. )을 사용하여 파일을 읽기 위해 open() 메서드를 사용하기 전에 FileSystem의 메서드를 사용합니다. -ignoreCrc 옵션을 사용 하 여 셸에서 동일한 효과 -get 또는 해당 -copyToLocal 명령을 사용 하 여 가능 합니다. 이 기능은 검사하려는 손상된 파일이 있는 경우 수행할 작업을 결정할 수 있도록 하는 경우에 유용합니다.

Posted in Bez kategorii