143.4. 분할 전략

현재 버전의 Hadoop에서 추가 모드로 파일을 여는 것은 매우 신뢰할 수 없으므로 비활성화되어 있습니다. 따라서 현재는 새 파일만 만들 수 있습니다. Camel HDFS 엔드포인트는 다음과 같은 방법으로 이 문제를 해결하려고 합니다.

  • split strategy 옵션이 정의된 경우 구성된 UuidGenerator를 사용하여 hdfs 경로가 디렉터리로 사용되며 파일이 생성됩니다.
  • 분할 조건이 충족될 때마다 새 파일이 생성됩니다.
    splitStrategy 옵션은 다음 구문을 사용하여 문자열로 정의됩니다.
    splitStrategy=<ST>:<value>,<ST>:<value>,*

여기서 <ST>는 다음과 같습니다.

  • BYTES 새 파일이 생성되고 기록된 바이트 수가 <value>보다 클 때 이전 파일이 닫힙니다.
  • MESSAGES 새 파일이 생성되고 작성된 메시지의 수가 <value>보다 클 때 이전 파일이 닫힙니다.
  • IDLE a new file is created, and the old is closed when no writing happened in the last <value> 밀리초

참고

현재 이 전략을 사용하려면 IDLE 값을 설정하거나 HdfsConstants.HDFS_CLOSE 헤더를 false로 설정해야 합니다. BYTES/MESSAGES 구성을 사용하면 파일이 각 메시지와 함께 닫힙니다.

예를 들면 다음과 같습니다.

hdfs://localhost/tmp/simple-file?splitStrategy=IDLE:1000,BYTES:5

즉, 1초 이상 유휴 상태일 때 또는 5바이트 이상의 바이트가 작성된 경우 새 파일이 생성됩니다. 따라서 hadoop fs -ls /tmp/simple-file 을 실행하면 여러 파일이 생성되었는지 확인할 수 있습니다.