메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

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


Apache Kudu에서 동일한 이름의 테이블을 반복적으로 DROP → CREATE → INSERT하는 로직을 2분 간격으로 10회 수행할 때 발생할 수 있는 주요 이슈는 다음과 같습니다:


1. 메타데이터 동기화 문제 (Impala-Kudu 간 불일치)

  • 증상:
    DROP TABLE 후 즉시 CREATE TABLE을 수행하면, Impala의 메타스토어가 Kudu의 변경 사항을 즉시 인식하지 못해 INSERT 시 "Table not found" 오류 발생.

  • 원인:
    Impala는 메타데이터를 기본적으로 캐싱하며, Kudu 테이블 삭제/생성 시 자동으로 갱신되지 않음.

  • 해결 방안:
    CREATE TABLE 후 Impala에서 INVALIDATE METADATA [테이블명] 명령어로 메타데이터 강제 갱신.


2. 테이블릿(Tablet) 관리 오버헤드

  • 증상:
    테이블릿 생성/삭제 반복으로 Kudu 마스터 서버의 CPU/메모리 사용량 급증.
    (특히, 파티셔닝이 잘못된 테이블의 경우 단일 테이블릿에 쓰기가 집중되어 핫스팟 발생)

  • 원인:

    • 테이블릿은 물리적 저장 단위로, 생성 시 분산 및 복제 프로세스가 동반됨.

    • 반복적인 생성/삭제로 인해 백그라운드 쓰레드(maintenance_manager)가 과부하 상태에 빠짐.

  • 해결 방안:

    • 파티셔닝 전략 개선 (예: HASH + RANGE 혼용).

    • Kudu 설정 조정 (--maintenance_manager_num_threads 증가).


3. WAL(Write Ahead Log) 누적 및 디스크 I/O 병목

  • 증상:
    삽입 작업 시 지연이 점차 증가하거나, INSERT 실패 로그 발생.

  • 원인:

    • Kudu는 모든 쓰기 작업을 WAL에 기록 후 메모리(MemRowSet)에 저장.

    • 반복적인 테이블 삭제/생성으로 WAL 파일이 즉시 정리되지 않아 디스크 공간 부족 발생 가능.

    • 단일 디스크에 WAL이 저장되는 경우 I/O 경합 심화.

  • 해결 방안:

    • WAL 전용 디스크 할당 (--fs_wal_dir 설정).

    • 주기적인 로그 정리 스크립트 추가.


4. 메모리 누수(Memory Leak) 및 GC 과부하

  • 증상:
    Kudu 서버의 Heap 메모리 사용량이 반복 작업 후 지속적으로 증가.
    GC(Garbage Collection) 로그에서 Full GC 빈도 증가.

  • 원인:

    • 테이블릿 메타데이터, 쓰기 버퍼 등이 완전히 해제되지 않고 누적됨.

    • Java 기반 Kudu 마스터 서버의 GC 정책 미최적화.

  • 해결 방안:

    • JVM 힙 크기 조정 (--memory_limit_hard_bytes).

    • 주기적인 Kudu 서버 재시작으로 메모리 초기화.


5. 동시성 충돌(Concurrency Issues)

  • 증상:
    동일 테이블에 대한 DROP/CREATE 작업 중 "Table already exists" 또는 "Tablet not found" 오류.

  • 원인:

    • Kudu의 DDL 작업은 완전한 원자성(atomicity)을 보장하지 않음.

    • 작업 간 간격(2분)이 Kudu의 내부 상태 갱신 주기보다 짧은 경우.

  • 해결 방안:

    • 동시성 제어를 위한 락(lock) 메커니즘 도입 (예: ZooKeeper 분산 락).

    • 작업 실패 시 재시도 로직 추가.


6. 디스크 공간 부족

  • 증상:
    No space left on device 오류로 인해 테이블 생성 실패.

  • 원인:

    • DROP TABLE이 논리적 삭제만 수행하고 물리적 데이터 파일을 즉시 삭제하지 않음.

    • Kudu의 백그라운드 컴팩션 작업이 느린 경우.

  • 해결 방안:

    • kudu fs clean 명령어로 잔여 데이터 수동 삭제.

    • 디스크 모니터링 도구를 활용한 사전 예방.


권장 최적화 전략

  1. 테이블 재사용:
    가능하면 TRUNCATE TABLE로 데이터만 삭제하고 테이블 구조를 재활용.
    (단, Kudu는 TRUNCATE를 직접 지원하지 않으므로 INSERT OVERWRITE 또는 파티션 드롭으로 대체)

  2. 비동기 처리:
    DDL 작업과 데이터 삽입을 분리하여 배치 처리.

  3. 모니터링:
    Kudu 웹 UI(http://kudu-master:8051)에서 Tablet Server 상태 및 메모리 사용량 실시간 확인.

  4. 테스트 환경 검증:
    실제 데이터 볼륨과 동일한 조건에서 성능 테스트 수행.

반복적인 DDL 작업은 Kudu 클러스터에 부하를 유발하므로, 가능한 한 테이블을 재생성하지 않는 아키텍처를 고려하는 것이 좋습니다.

번호 제목 날짜 조회 수
» Apache Kudu에서 동일한 이름의 테이블을 반복적으로 DROP → CREATE → INSERT하는 로직을 2분 간격으로 10회 수행할 때 발생할 수 있는 주요 이슈 2025.01.26 312
746 운영계 하둡클러스터에 노드 4대를 EdgeNode로 추가하는 방법/절차 2025.01.12 408
745 Oracle 10g 혹은 12c 를 19c로 Upgrade시 Cloudera Cluster작업에 필요한 작업 2025.01.12 415
744 beeline을 이용한 impala JDBC 테스트 방법(Kerberos 설정된 상태임) 2024.11.29 541
743 외부에서 ImpalaJDBC42.jar를 통해서 Impala에 접속시 sessions정보 2024.11.26 642
742 [Kerberos]Kerberos authentication cache를 FILE로 지정해도 KCM으로 저장되는 경우 조치방법 2024.11.03 777
741 How to Install Magento 2.4.7 on Ubuntu 24.04 2024.09.04 2128
740 [CDP7.1.7]Hive Replication수행시 Target Cluster에서 Specified catalog.database.table does not exist 오류 2024.05.08 2317
739 [Impala] alter table구문수행시 "WARNINGS: Impala does not have READ_WRITE access to path 'hdfs://nameservice1/DATA/Temp/DB/source/table01_ccd'" 발생시 조치 2024.04.26 791
738 [CDP7.1.7] oozie sqoop action으로 import혹은 export수행시 발생한 오류에 대한 자세한 로그 확인 하는 방법 2024.04.19 814
737 [CDP7.1.7]Hive Replication수행중 Specified catalog.database.table does not exist : hive.db명.table명 오류 발생시 조치방법 2024.04.05 2172
736 [Active Directory] AD Kerberos보안 설정 변경 방법 (Maximum lifetime for user ticket, Maximum lifetime for user ticket renewal) 2024.03.12 2153
735 [CDP7.1.7]BDR작업후 오류로 Diagnostic Data를 수집하는 동안 "No content to map due to end-of-input at [Source: (String)""; line: 1, column: 0]" 오류 발생시 조치 2024.02.20 2706
734 [CDP7.1.7, Replication]Encryption Zone내 HDFS파일을 비Encryption Zone으로 HDFS Replication시 User hdfs가 아닌 hadoop으로 수행하는 방법 2024.01.15 790
733 [CDP7.1.7]Oozie job에서 ERROR: Kudu error(s) reported, first error: Timed out: Failed to write batch of 774 ops to tablet 8003f9a064bf4be5890a178439b2ba91가 발생하면서 쿼리가 실패하는 경우 2024.01.05 2494
732 [CDP7.1.7][Replication]Table does not match version in getMetastore(). Table view original text mismatch 2024.01.02 2076
731 [CDP7.1.7, Hive Replication]Hive Replication진행중 "The following columns have types incompatible with the existing columns in their respective positions " 오류 2023.12.27 2334
730 [CDP7.1.7]impala-shell을 이용하여 kudu table에 insert/update수행시 발생하는 오류(Transport endpoint is not connected (error 107)) 발생시 확인할 내용 2023.11.30 2979
729 [CDP7.1.7]impala-shell수행시 간헐적으로 "-k requires a valid kerberos ticket but no valid kerberos ticket found." 오류 2023.11.16 2474
728 [CDP7.1.7]Encryption Zone내부/외부 간 데이터 이동(mv,cp)및 CTAS, INSERT SQL시 오류(can't be moved into an encryption zone, can't be moved from an encryption zone) 2023.11.14 2482
위로