복붙노트

[HADOOP] 이 기사의 맥락에서“데이터의 로컬 캐싱”은 무엇을 의미합니까?

HADOOP

이 기사의 맥락에서“데이터의 로컬 캐싱”은 무엇을 의미합니까?

다음 본문에서 —— 순차적으로 읽을 수있는 큰 파일은 로컬 캐싱에 적합하지 않다고 언급합니다. 그러나 나는 여기서 로컬이 무엇을 의미하는지 이해하지 못합니다 ...

내 의견으로는 두 가지 가정이 있습니다. 하나는 클라이언트가 HDFS에서 데이터를 캐시하고 다른 하나는 로컬 노드에서 데이터 노드 캐시 hdfs 데이터 또는 클라이언트가 빠르게 액세스 할 수있는 메모리입니다. 더 설명 할 사람이 있습니까? 고마워

그러나 HDFS는 확장 성이 뛰어나지 만 고성능 디자인으로 인해 특정 종류의 응용 프로그램; NFS만큼 범용 적이 지 않습니다. 큰있다 HDFS와 관련하여 이루어진 추가 결정 및 절충의 수 특히:

HDFS를 사용하는 응용 프로그램은 다음에서 긴 순차적 스트리밍 읽기를 수행한다고 가정합니다. 파일. HDFS는 스트리밍 읽기 성능을 제공하도록 최적화되어 있습니다. 이것은 ~의 비용으로 온다 파일에서 임의의 위치에 대한 임의 탐색 시간.

데이터는 HDFS에 한 번 기록 된 후 여러 번 읽 힙니다. 파일 업데이트 이미 닫힌 후에는 지원되지 않습니다. (하둡으로의 확장은 파일 끝에 새로운 데이터를 추가하기위한 지원; 그것은 포함 될 예정이다 하둡 0.19이지만 아직 사용할 수 없습니다.)

파일 크기가 크고 읽기의 순차적 특성으로 인해 시스템은 데이터의 로컬 캐싱 메커니즘을 제공하지 않습니다. 캐싱 오버 헤드가 충분히 큽니다. 그 데이터는 단순히 HDFS 소스에서 다시 읽어야합니다.

개별 머신은 영구적으로 또는 영구적으로 자주 실패한다고 가정합니다. 간헐적으로. 클러스터는 몇 가지의 완전한 실패를 견딜 수 있어야합니다 여러 대의 기계가 동시에 발생하는 경우 (예 : 랙이 모두 고장난 경우). 손실 된 시스템 수에 비례하여 성능이 저하 될 수 있지만 전체가 지나치게 느려지거나 정보가 손실되어서는 안됩니다. 데이터 복제 전략은이 문제를 해결합니다.

해결법

  1. ==============================

    1.실제 Mapreduce 작업은 아마도 HDFS에서 GB (10 / 100 / 1000s)의 데이터를 처리 할 것입니다.

    실제 Mapreduce 작업은 아마도 HDFS에서 GB (10 / 100 / 1000s)의 데이터를 처리 할 것입니다.

    따라서 하나의 매퍼 인스턴스는 아마도 순차 특성상 공정한 양의 데이터 (일반적으로 구성에 따라 64 / 128 / 256MB는 64 / 128 / 256MB입니다)를 처리 할 것입니다 (시작부터 파일 / 블록 전체를 읽습니다) 끝으로.

    또한 동일한 컴퓨터에서 실행되는 다른 매퍼 인스턴스가 즉각적으로 언제든지 해당 데이터 블록을 다시 처리하기를 원하지 않을 가능성이 높으므로 여러 매퍼 인스턴스가 하나의 TaskTracker에서이 매퍼와 함께 데이터를 처리하기를 원할 것입니다. 데이터의 실제 물리적 위치에 대해 '로컬'인 공정한 소수, 즉 데이터 블록의 복제본도 매퍼 인스턴스가 실행중인 동일한 시스템에 존재합니다).

    이 모든 것을 염두에두고 HDFS에서 읽은 데이터를 캐싱해도 많은 이점을 얻지 못할 수 있습니다. 다른 블록을 쿼리하기 전에 해당 데이터에서 캐시 적중을 얻지 못하고 결국 캐시에서 데이터를 대체하게 될 것입니다.

  2. from https://stackoverflow.com/questions/10099816/what-does-local-caching-of-data-mean-in-the-context-of-this-article by cc-by-sa and MIT license