복붙노트

[HADOOP] 하이브 동시 매퍼를 4 개 이상으로 늘리는 방법은 무엇입니까?

HADOOP

하이브 동시 매퍼를 4 개 이상으로 늘리는 방법은 무엇입니까?

하이브의 테이블 쿼리에서 간단한 select count (*)를 실행하면 큰 클러스터의 두 노드 만 매핑에 사용됩니다. 전체 클러스터를 사용하고 싶습니다.

hdfs 및 Hive 1.2.1 (IBM-12)을 실행하는 약간 큰 클러스터 (수십 개의 노드마다 200GB RAM 이상)를 사용하고 있습니다.

나는 수십억 줄의 테이블을 가지고있다. 내가 간단한 것을 할 때

select count(*) from mytable;

하이브는 수백 개의 맵 작업을 생성하지만 동시에 4 개만 실행됩니다.

이것은 내 클러스터가 쿼리 중에 유휴 상태로 낭비되는 것입니다. 나는 사용중인 노드에 ssh'ing을 시도했으며 CPU 또는 메모리를 완전히 활용하지 못하고있다. 우리 클러스터는 Infiniband 네트워킹과 Isilon 파일 저장 장치에 의해 뒷받침됩니다.

우리는 mapreduce를 엔진으로 사용하고 있습니다. 내가 찾을 수있는 자원에 대한 제한을 제거하려고했지만 두 노드 만 사용 중임을 알리지 않습니다 (4 개의 동시 매퍼).

yarn.nodemanager.resource.memory-mb     188928  MB
yarn.scheduler.minimum-allocation-mb    20992   MB
yarn.scheduler.maximum-allocation-mb    188928  MB
yarn.app.mapreduce.am.resource.mb       20992   MB
mapreduce.map.memory.mb                 20992   MB
mapreduce.reduce.memory.mb              20992   MB

우리는 41 개의 노드에서 실행 중입니다. 내 계산에 따라 41 * 188928 / 20992 = 369지도 / 축소 작업을 수행 할 수 있어야합니다. 대신 나는 4 점을 얻는다.

yarn.nodemanager.resource.cpu-vcores       24
yarn.scheduler.minimum-allocation-vcores   1
yarn.scheduler.maximum-allocation-vcores   24
yarn.app.mapreduce.am.resource.cpu-vcores  1
mapreduce.map.cpu.vcores                   1
mapreduce.reduce.cpu.vcores                1

tez를 사용하면 성능이 향상 될 것 같지만 리소스 사용이 제한적인 이유 (그리고 ATM을 설치하지 않은 이유)에 관심이 있습니다.

해결법

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

    1.병렬 작업 실행은 원사의 메모리 설정에 따라 다릅니다. 예를 들어 네 개의 데이터 노드가 있고 원사 메모리 속성이 아래 정의 된 경우

    병렬 작업 실행은 원사의 메모리 설정에 따라 다릅니다. 예를 들어 네 개의 데이터 노드가 있고 원사 메모리 속성이 아래 정의 된 경우

    yarn.nodemanager.resource.memory-mb 1 GB
    yarn.scheduler.minimum-allocation-mb    1 GB
    yarn.scheduler.maximum-allocation-mb    1 GB
    yarn.app.mapreduce.am.resource.mb   1 GB
    mapreduce.map.memory.mb 1 GB
    mapreduce.reduce.memory.mb  1 GB
    

    이 설정에 따라 4 개의 데이터 노드가 있으므로 총 yarn.nodemanager.resource.memory-mb는 컨테이너를 시작할 때 사용할 수있는 4GB가됩니다 컨테이너가 1GB 메모리를 차지할 수 있으므로 특정 시점에서 컨테이너 4 개를 실행할 수 있음을 의미하므로 응용 프로그램 마스터가 하나를 사용하므로 매퍼 또는 감속기 작업을 최대 3 개까지 가질 수 있습니다. 응용 프로그램은 특정 시점에서 실행할 수 있습니다 마스터, 매퍼 및 감속기 각각은 1GB 메모리를 사용합니다.

    그래서 당신은지도 / 감소 작업의 수를 늘리기 위해 yarn.nodemanager.resource.memory-mb를 늘릴 필요가있다.

    추신 - 여기서 우리는 시작할 수있는 최대 작업을 취하고 있습니다.

  2. from https://stackoverflow.com/questions/43370134/how-to-increase-hive-concurrent-mappers-to-more-than-4 by cc-by-sa and MIT license