복붙노트

[HADOOP] 하둡의 분산 캐시에 대한 혼란

HADOOP

하둡의 분산 캐시에 대한 혼란

분산 캐시는 실제로 무엇을 의미합니까? 분산 캐시에 파일을 저장하면 모든 데이터 노드에서 사용할 수 있으므로 해당 데이터에 대한 노드 간 통신이 없거나 파일이 모든 노드의 메모리에 있음을 의미합니까? 그렇지 않다면 어떤 수단을 통해 전체 작업을위한 메모리에 파일을 보유 할 수 있습니까? UDF뿐만 아니라 map-reduce에도이 작업을 수행 할 수 있습니까?

(특히 UDF가 하이브 쿼리에 적용될 때 메모리에 보관하고 싶은 구성 데이터가 비교적 작습니다 ...)

고마워, 안부, Dhruv Kapur.

해결법

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

    1.DistributedCache는 Map-Reduce 프레임 워크에서 제공하는 기능으로 응용 프로그램에 필요한 파일을 캐시합니다. 작업을 위해 파일을 캐시하면 hadoop 프레임 워크는 작업을 매핑 / 축소하는 모든 데이터 노드 (메모리가 아니라 파일 시스템)에서 사용할 수있게합니다. 그런 다음 매퍼 또는 감속기 작업에서 로컬 파일로 캐시 파일에 액세스 할 수 있습니다. 이제 캐시 파일을 읽고 코드에서 컬렉션 (예 : 배열, 해시 맵 등)을 쉽게 채울 수 있습니다.

    DistributedCache는 Map-Reduce 프레임 워크에서 제공하는 기능으로 응용 프로그램에 필요한 파일을 캐시합니다. 작업을 위해 파일을 캐시하면 hadoop 프레임 워크는 작업을 매핑 / 축소하는 모든 데이터 노드 (메모리가 아니라 파일 시스템)에서 사용할 수있게합니다. 그런 다음 매퍼 또는 감속기 작업에서 로컬 파일로 캐시 파일에 액세스 할 수 있습니다. 이제 캐시 파일을 읽고 코드에서 컬렉션 (예 : 배열, 해시 맵 등)을 쉽게 채울 수 있습니다.

    https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/filecache/DistributedCache.html을 참조하십시오.

    아직도 질문이 있으면 알려주세요.

    UDF 코드에서 로컬 파일로 캐시 파일을 읽을 수 있습니다. JAVA API를 사용하여 파일을 읽은 후 모든 콜렉션을 채 웁니다 (메모리에 있음).

    추천 URL http://www.lichun.cc/blog/2013/06/use-a-lookup-hashmap-in-hive-script/

    - 어시시

  2. from https://stackoverflow.com/questions/23751702/confusion-about-distributed-cache-in-hadoop by cc-by-sa and MIT license