Amazon EMR 한글 깨짐

ssyyyoon·2024년 3월 24일

pymongo 한글깨짐
Amazon EMR stdout 한글 깨짐

요약

Amazon EMR stdout 웹 뷰에서 utf-8 인코딩이 되어있지 않아 한글이 깨지는 현상이 발생함. 데이터 웨어하우스 Redshift로 옮겼을 때 올바르게 인코딩되어 로드됨.

배경

Amazon EMR로 pymongo와 pyspark를 구동하여 EC2의 Airflow로 스케쥴링 할 시 Amazon EMR stdout에서 한글이 깨져서 보이는 현상이 발생함.

프로세스

Airflow DAG -> mongodb -> pymongo+pyspark -> ETL -> Load S3 -> Copy Redshift

어디서 한글이 깨지는 지 확인
1. mongo -> pymongo
2. pymongo -> pysaprk

  1. pymongo에서 깨지는 것으로 판단하고 관련 자료 리서치를 진행했으나 mongoDB는 애초에 utf-8로 인코딩되어 있어 깨지지 않음을 확인함.
  2. EMR pythoon 환경을 확인했으나 utf-8 설치 확인, 한글출력 확인.
  3. airflow 문제로 판단하여 아래 사항 확인
    1. Airflow 컨테이너 locale 패키지 설치 + 환경 설정(링크)
    2. airflow.cfg에 ?charset=utf8 추가하기(링크)
    3. airflow mongo connector 확인(1번과 동일)
  4. 문제를 발견하지 못함.
  5. 다른 데이터 파이프라인를 작업했는데 Redshift에서는 정상적으로 보이는 것으로 확인함.
  6. (이미지) Amazon EMR Application Driver log files 창 문제로 판단함.

특정 케이스에서는 인코딩이 정상적으로 동작하는 것을 발견함.

profile
데이터 분석가로 일하고 있습니다.

0개의 댓글