메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


1. 일반 사용자의 Impala Memory 리소스 사용 제약을 위하여 Impala Admission Control 설정 방법

2. 쿼리 수행시 메모리 판단 기준

  2.1) Impala Admission Control에서 설정 가능한 항목 확인

   > Max Memory Limit : 쿼리 실행계획의 "Per-Host Resou rce Estimates" 값으로 체크되어 배제, impalad프로세스에 대한 전체 제한을 설정

   > Maximum Query Memory Limit : 쿼리 실행계획의 "M ax Per-Host Resource Reservation" 값으로 필요 메모리 최소 값체크, 각 호스트의 쿼리당 메모리로 체크

  2.2) Maximum Query Memory Limit 설정에서 쿼리별 필요한 최소 메모리 계산 방법

   > 필요한 최소메모리(A)가 구하고자 하는 값의 100%, Max Per-Host Resource Reservation(B)가 80%, 나머지 20%(20%가 32보다 작으면 32M)

   > A(100%)=B(80%)+Max(32M,(A의 20%))

  2.3) Maximum Query Memory Limit 값 설정을 위한 참조 할 수 있는 메모리 값

   > 참조값1)쿼리 실행계획의 "Max Per-Host Resource Reservation" 값으로 최소 메모리값을 계산하여 참조

    => Impala 데몬 호스트에 필요한 쿼리당 "최소 메모리"입니다.

    => 최소 메모리값을 구하여 설정하면 쿼리는 실행 되지만, 추가로 필요한 메모리양 만큼 디스크를 사용(spill)하여 성능이 저하 될 수 있습니다.

    => Maximum Query Memory Limit 설정값이 "최소 메모리" 값보다 작으면 쿼리는 실패합니다.

   > 참조값2)쿼리 프로파일의 "per Node Peak Memory Usage"값을 참조

    => 각 impala 데몬 호스트에서 사용되는 쿼리당의 "최대 메모리" 사용량입니다.

    => CM > Impala > Queries 에서 "Per Node Peak Memory Usage" 로 확인 가능 합니다.

    => CM > Charts > Chart Builder 에서 select memory_per_node_peak from IMPALA_QUERIES where service_name="impala" 쿼리로도 확인 가능 합니다.

3. 다음과 같이 쿼리 수행시 판단하면 된다. 

  3.1) Impala Admission Control > "Maximum Query Memory Limit" 항목을 이용 하여 Impala Memory 리소스 사용 제약

  3.2) "per Node Peak Memory Usage"값을 참고 하여 Maximum Query Memory Limit 값을 설정

    (각 호스트에서 쿼리에 필요 할 수 있는 "최대 메모리" 사용량으로 설정합니다.)

번호 제목 날짜 조회 수
501 초기 오류(java.lang.NoSuchMethodError)에 따른 후속 작업에서 오류(java.lang.NoClassDefFoundError)가 발생되는 상황(quartz에서 주기적으로 작업시) 2016.08.29 669
500 compile할때와 exclude할때 대상을 표현하는 명칭이 다르므로 주의할것 2016.08.10 668
» Impala Admission Control 설정시 쿼리가 사용하는 메모리 사용량 판단 방법 2023.05.19 667
498 Kafka Offset Monitor로 kafka 상태 모니터링 하기 file 2016.11.08 663
497 동시에 많은 요청이 endpoint로 몰려서java.net.NoRouteToHostException가 발생하는 경우의 처리방법 2016.10.17 663
496 Job이 끝난 log을 볼수 있도록 설정하기 2016.05.30 659
495 Error: Could not find or load main class nodemnager 가 발생할때 해결하는 방법 2015.06.05 652
494 db를 통째로 새로운 이름의 db로 복사하는 방법/절차 2017.11.14 651
493 [HDFS]Encryption Zone에 생성된 테이블 조회시 Failed to open HDFS file hdfs://nameservice1/tmp/zone1/sec_test_file.txt Error(255): Unknown error 255 Root cause: AuthorizationException: User:impala not allowd to do 'DECRYPT_EEK' on 'testkey' 2023.06.29 649
492 Error: java.lang.RuntimeException: java.lang.OutOfMemoryError 오류가 발생하는 경우 2018.09.20 649
491 [Kudu]ERROR: Unable to advance iterator for node with id '2' for Kudu table 'impala::core.pm0_abdasubjct': Network error: recv error from unknown peer: Transport endpoint is not connected (error 107) 2023.03.16 646
490 kudu의 내부 table명 변경하는 방법 2022.11.10 643
489 Container killed by the ApplicationMaster. Container killed on request. Exit code is 143 Container exited with a non-zero exit code 143 TaskAttempt killed because it ran on unusable node 오류시 조치방법 2017.04.06 643
488 [Atlas Server]org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient permissions (user=atlas/node01.gooper.com@GOOPER.COM, scope=default:atlas_janus, params=[table=default:atlas_janus,], action-CREATE)] 2023.05.15 641
487 spark-submit 실행시 "java.lang.OutOfMemoryError: Java heap space"발생시 조치사항 2018.02.01 640
486 [Hive canary]Hive에 Metastore canary red alert및 hive log파일에 Duplicate entry '123456' for key 'NOTIFICATION_LOG_EVENT_ID'가 발생시 조치사항 2023.03.10 637
485 Scala에서 countByWindow를 이용하기(예제) 2018.03.08 630
484 spark-shell실행시 "A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection."오류가 발생하는 경우 해결방법 2016.05.20 627
483 Query 1234:1234 expired due to client inactivity(timeout is 5m)및 invalid query handle 2022.06.10 621
482 hive metadata(hive, impala, kudu 정보가 있음) 테이블에서 db, table, owner, location를 조회하는 쿼리 2020.02.07 618
위로