2014-11-07 1 views
0

org.apache.hadoop.fs 패키지 또는 mapreduce를 사용하여 hdfs에 시퀀스 파일을 작성하는 예제를 참조하십시오. 내 질문 :mapreduce 및 org.apache.hadoop.fs를 사용하여 시퀀스 파일을 작성하십시오. 차이점은?

  1. 차이점은 무엇입니까?
  2. 최종 결과는 두 가지 방법으로 HDFS로 작성된 시퀀스 파일이 동일하다는 것을 의미합니까?
  3. 을 사용하여 시퀀스 파일을 작성했지만 결과를 보려면 hadoop fs -text을 사용하려고했지만 각 레코드/블록에 여전히 "키"가 붙어있는 것을 볼 수 있습니까? 시퀀스 파일을 만들기 위해 mapreduce를 사용했다면 똑같을까요? 나는 "키"를 보지 않을 것입니다.
  4. 시퀀스 파일을 HDFS에 쓰는 방법을 결정하는 방법은 무엇입니까?

답변

0

Apache Hadoop Wiki에는 "SequenceFile은 2 진 키/값 쌍으로 구성된 플랫 파일"이라고 나와 있습니다. Wiki는 키가 포함 된 실제 파일 형식을 보여줍니다. SequenceFiles는 "Uncompressed", "Record Compressed"및 "Block Compressed"와 같은 여러 형식을 지원합니다. 또한 사용할 수있는 다양한 압축 코덱이 있습니다. 파일 형식 및 압축 정보가 파일 헤더에 저장되므로 응용 프로그램 (예 : Mapper 및 Reducer 작업)은 파일을 올바르게 처리하는 방법을 쉽게 결정할 수 있습니다.

append() method for the SequenceFile.Writer class

는 또한 맵리 듀스 매퍼 및 감속기 인제 모두가 방출 것을 명심 : 당신이 org.apache.hadoop.io.SequenceFile.Writer 클래스에 append() 방법은 키와 값을 모두 필요로 볼 수 있습니다 아래의 이미지에서

키 - 값 쌍 따라서 SequenceFile에 저장된 키를 사용하면 Hadoop이 이러한 유형의 파일로 매우 효율적으로 작동 할 수 있습니다. 그래서 한마디에

:

  1. SequenceFiles는 항상 "값"외에 "키"를 포함합니다.
  2. 동일한 데이터를 포함하는 두 개의 SequenceFile은 반드시 크기 또는 실제 바이트의 관점에서 완전히 동일하지는 않습니다. 압축은 압축 사용 여부, 압축 유형 및 압축 코덱에 따라 다릅니다.
  3. SequenceFiles를 만들고 HDFS에 추가하는 방법은 주로 달성하려는 목표에 따라 다릅니다. SequenceFiles는 일반적으로 특정 목표를 효율적으로 수행하는 수단이며 최종 결과는 거의 없습니다.
1

시퀀스 파일의 경우 개체를 포함하여 콘텐츠 (예 : 사용자 지정 개체)를 작성합니다. 텍스트 파일은 각 행의 문자열입니다.