2013-05-30 1 views
2

S3에 파일을 업로드하는 프로세스가 있습니다. 사실 그것은 간접적입니다. Amazon Elastic MapReduce (EMR)를 사용하고 Hadoop은 여러 다른 작업 노드에서 파일을 S3에 커밋합니다. 그런 다음 Hadoop 작업이 성공적으로 완료되면 Hadoop의 FileSystem.createNewFile()을 사용하여 마스터 노드에서 일부 파일을 생성합니다.S3는 업로드시 어떻게 타임 스탬프를 할당합니까?

이러한 다양한 시스템에서 생성 된 파일에는 S3에 타임 스탬프가 있습니다. 태스크 노드에서 커밋 된 파일의 타임 스탬프가 마스터 노드에서 생성 된 파일보다 먼저 있다고 가정합니다.

나는 그것이 때로는 사실이 아니라고 생각하지만 왜?

무엇이 타임 스탬프를 S3 파일에 할당합니까? Amazon EMR Hadoop 클라이언트 또는 일부 S3 시스템입니까?

로컬 시계가 30 분 다른 S3에 두 대의 컴퓨터가 업로드되는 경우 타임 스탬프가 30 분 간격으로 표시됩니까?

답변

1

최종 수정 값을 직접 설정할 수 없습니다. S3는 그들을 결정 :

https://forums.aws.amazon.com/thread.jspa?messageID=209241

+0

아마도 S3 서버 일 수도 있지만 모든 파일마다 다를 수 있습니다. – dfrankow

+0

귀하의 의견을 이해할 수 있다면 그렇습니다. 당신은 당신이 치는 서버 또는 그 서버의 정확한 클럭 값을 제어 할 수 없습니다. – sethwm

1

S3의 유일한 타임 스탬프는 "마지막으로 수정 된"메타 데이터 인 것으로 보입니다. 마지막으로 수정 한 날짜/시간은 S3 시스템 자체에서 업데이트되며 파일이 S3로 완전히 업로드 된 시간을 반영합니다 (S3는 불완전한 전송을 표시하지 않습니다).

따라서 어떤 노드 파일을 업로드 할 때 S3의 "마지막으로 수정 된"타임 스탬프는 S3에 나열 할 때 일관되게 동일해야합니다.

+0

내가 그것을 나열 할 때이 동일하지만, 내가 주문 (A)에 두 개의 파일을 업로드 할 때 여러 있기 때문에, B는, 때때로 타임 스탬프, 그래서 주문 B, A를 보여 S3에 관여 된 기계, 클라이언트 또는 서버가 타임 스탬프를 결정하는지 궁금합니다. – dfrankow