메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


impala admission control에서 해당 pool의 mininum query memory 값이 5G로 설정되고 "insert into db명.table명(a, b) partiton(b) select a, b from db명.table명" 쿼리 수행시 Query Status: "Memory limit exceeded: Failed to allocate memory for Parquet page index"라는 오류가 발생하면서 쿼리가 실패하는 경우는 select하여 Parquet테이블에 insert하면서 partition한개 전체를 한 노드에 모으는 과정(default: SHUFFLE)과 sort가 발생하면서 메모리 제한(5G)에 걸린것이다. 
이때는 /* +NOSHUFFLE */의 hint를 주면 당장의 쿼리를 수행할 수는 있으나 compute stat를 수행하거나 파티션을 세분화하는 등의 작업을 통해서 한 노드에서 메모리를 과도하게 사용하지 않도록 하는 방법을 강구해야 한다. 
(hint사용 예, "insert into db명.table명(a, b) partition(b) /* +NOSHUFFLE */ select a, b from db명.table명")

* query profile에서 다음과 같은 부분이 확인된다. 
Query(004855a129b89197:2172266000000000): memory limit exceeded. Limit=5.00 GB Reservation=4.00 GB ReservationLimit=4.00 GB OtherMemory=1.03 GB Total=5.03 GB Peak=5.03 GB
  Fragment 004855a129b89197:2172266000000008: Reservation=0 OtherMemory=0 Total=0 Peak=523.09 MB
    HDFS_SCAN_NODE (id=0): Reservation=0 OtherMemory=0 Total=0 Peak=518.61 MB
    KrpcDataStreamSender (dst_id=1): Total=0 Peak=1.01 MB
  Fragment 004855a129b89197:217226600000001c: Reservation=4.00 GB OtherMemory=1.03 GB Total=5.03 GB Peak=5.03 GB
    SORT_NODE (id=2): Reservation=4.00 GB OtherMemory=40.00 KB Total=4.00 GB Peak=4.00 GB
    EXCHANGE_NODE (id=1): Reservation=0 OtherMemory=0 Total=0 Peak=21.31 MB
      KrpcDeferredRpcs: Total=0 Peak=4.34 MB
    HdfsTableSink: Total=1.03 GB Peak=1.03 GB
  CodeGen: Total=1.23 KB Peak=669.00 KB
  CodeGen: Total=1.45 KB Peak=247.50 KB

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로