HDFS에서 "스트리밍 데이터 액세스"란 무엇을 의미합니까?

HDFS에서 "스트리밍 데이터 액세스"란 무엇을 의미합니까?

HDFS 아키텍처 페이지에 따르면 HDFS는 "스트리밍 데이터 액세스"를 위해 설계되었습니다. 이것이 정확히 무엇을 의미하는지 잘 모르겠지만 탐색과 같은 작업이 비활성화되었거나 최적이 아닌 성능을 가지고 있음을 의미한다고 추측합니다. 이것이 맞을까요?

브라우저 클라이언트로 스트리밍해야 하는 오디오/비디오 파일을 저장하기 위해 HDFS를 사용하는 데 관심이 있습니다. 대부분의 스트림은 시작부터 끝까지 진행되지만 일부 스트림은 탐색 횟수가 많을 수 있습니다.

어쩌면 이 작업을 더 잘 수행할 수 있는 다른 파일 시스템이 있을까요?

답변1

스트리밍은 데이터가 버스트나 웨이브로 들어오는 것과는 반대로 데이터를 전송할 때 특정 임계값보다 높은 일정한 비트 전송률을 제공할 수 있음을 의미합니다.

HDFS가 스트리밍용으로 배치된 경우에도 검색을 계속 지원할 수 있으며, 일정한 스트림을 위해 데이터를 캐시해야 하는 약간의 오버헤드가 있습니다.

물론 시스템 및 네트워크 부하에 따라 검색 시간이 조금 더 걸릴 수 있습니다.

답변2

HDFS는 64MB와 같은 큰 블록에 데이터를 저장합니다. 데이터를 하드 드라이브에 순차적으로 배치하여 하드 드라이브가 데이터를 읽기 위해 수행해야 하는 탐색 횟수를 줄이는 것이 아이디어입니다.

또한 HDFS는 사용자 공간 파일 시스템이므로 모든 블록(및 해당 복제본)이 클러스터 전체에 저장되는 메모리 내 디렉터리를 포함하는 단일 중앙 이름 노드가 있습니다. 파일은 크기가 클 것으로 예상되며(예: 1GB 이상) 여러 블록으로 분할됩니다. 파일을 읽기 위해 코드는 네임 노드에 블록 목록을 요청한 다음 블록을 순차적으로 읽습니다.

이러한 대규모 데이터 블록에 대해 드라이브가 유지할 수 있는 최대 I/O 속도를 유지함으로써 데이터는 하드 드라이브에서 "스트리밍"됩니다.

답변3

스트리밍 데이터의 경우Hadoop: 최종 가이드, 3판:

HDFS는 가장 효율적인 데이터 처리 패턴은 한 번 쓰고 여러 번 읽는 패턴이라는 아이디어를 바탕으로 구축되었습니다. 데이터 세트는 일반적으로 소스에서 생성되거나 복사된 후 시간이 지남에 따라 해당 데이터 세트에 대해 다양한 분석이 수행됩니다. 각 분석에는 데이터 세트의 전부는 아니더라도 많은 부분이 포함되므로 전체 데이터 세트를 읽는 시간이 첫 번째 레코드를 읽는 데 걸리는 대기 시간보다 더 중요합니다.

관련 정보