Tech 16

Apache Hive 쿼리 오류 해결 방안

대부분의 Hive 쿼리는 초기에는 잘 실행되다가 누적 데이터가 증가하면서 여러가지 오류가 발생을 합니다. 아래 오류 외에도 많겠지만, 업무를 진행하며 가장 많이 맞닥뜨리는 오류 4가지를 추렸습니다. java.lang.OutOfMemoryError: Java heap space 오류 MapJoinMemoryExhaustionError 오류 AllocatorOutOfMemoryException: entire cache is fragmented and locked or, an internal issue 리소스 할당을 못받고 대기하는 경우 그럼, 각 오류별 해결 방법에 대해서 알아보겠습니다. 1. java.lang.OutOfMemoryError: Java heap space 오류 ERROR : Vertex fa..

Tech 2022.06.27

Git GUI 소스트리(SourceTree) 활용 - Custom Action 기능

개발에 있어서 코드 형상 관리는 필수입니다. 형상관리툴은 Git, SVN 등이 있습니다만, 최근에는 Git을 많이 사용하고 있습니다. Git은 기본적으로 CLI 형태로 사용을 하게 되는데요, 매번 CLI를 입력해야 되고, 수많은 명령어와 옵션들을 모두 다 기억하기는 쉽지 않습니다. 그래서 IntelliJ, Eclipse, VS Code 등 IDE에서는 Git을 편리하게 쓸 수 있는 메뉴를 별도로 제공하고 있으며 Git GUI 클라이언트들도 있습니다. 대표적인 Git GUI 툴은 아래와 같습니다. GitHub : GitHub Desktop Atlassian : SourceTree TortoiseGit (Windows 버전만 제공) 저희는 Git으로 형상 관리를 하고 있으며 저장소는 BitBucket을 사용..

Tech 2022.06.13

Parquet 파일 구조와 관련 설정 값 이해하기

Parquet는 아파치 하둡 에코 시스템에서 사용하는 칼럼 기반의 데이터 저장 형식입니다. 여러 인코딩과 압축을 지원함으로써 다양한 프로젝트에서 인기리에 사용 중입니다. Parquet을 효과적으로 사용하는 데에는 많은 요소들을 살펴봐야 하지만, 이 번 글에서는 파일 구조와 관련된 설정값을 같이 보면서 Parquet을 보다 심층적으로 이해하는 시간을 가져보도록 하겠습니다. Parquet의 파일 구조 Parquet은 Header, Blocks, Footer. 이 세 형식을 가집니다. Header와 Footer는 Meta 정보이며, 각 1개씩만 존재합니다. Blocks는 List 형식이며 여기에 실제 N 개의 데이터가 저장됩니다. 이를 정리해 보면 아래와 같습니다. Header(Metadata) : Parqu..

Tech 2022.05.23

Apache Hive 를 이용한 온라인 행동 데이터 ETL

TG360 Technologies는 다양한 비식별 기반 데이터를 수집하여, 최고도의 빅데이터 기술, ML/AI 기반의 분석 알고리즘을 기반으로 새롭게 만들어진 데이터를 제공하고 있습니다. 데이터를 제공하기 전에, 정리하고 변환해야 합니다. Hive 를 이용한 ETL (추출, 변환, 적재) 작업은 데이터를 준비하고 제공 가능한 형태로 데이터를 적재하는데 사용됩니다. 1. Hive 란 하둡에서 동작하는 데이터 웨어하우스 인프라 구조로서 데이터 요약, 질의 및 분석 기능을 제공합니다. Apache Hive 데이터 웨어하우스 소프트웨어는 SQL을 사용하여 분산 스토리지에 있는 대규모 데이터 세트를 읽고, 쓰고, 관리하는 것을 용이하게 합니다. Hive 연결하기 위해 명령어 도구 및 JDBC 드라이버가 제공됩니다..

Tech 2022.05.10

RabbitMQ - SAC(Single Active Consumer)

개요 비동기 작업에서 큐를 사용하려면 중간에 메시지 브로커라는 개념이 존재하는데, 이러한 메시지 브로커에는 RabbitMQ, Kafka등이 있습니다. 해당 포스트는 표준 MQ프로토콜인 AMQP를 구현한 RabbitMQ 3.8과 함께 제공되는 특수한 기능인 SAC에 대해 다룰 것입니다. SAC에 대해 간략히 정리하면 다음과 같습니다. 대기열에서 SAC를 활성화하면 대기열은 더 이상 경쟁 consumer를 허용하지 않습니다. 하나의 SAC 사용 대기열에는 한번에 메시지를 적극적으로 소비하는 consumer가 하나만 있을 수 있습니다. 첫 번째 consumer가 Active 상태가 되면, 추가 consumer는 대기 상태에 있습니다. Active Consumer가 실패하거나 종료되면 다른 consumer가 ..

Tech 2022.04.06

Google Privacy Sandbox

2022년 2월 17일 구글에서 "안드로이드 앱 추적 제한" 발표가 있었습니다. 이미 발표되었던 크롬 브라우저에서의 3사 쿠키 제한의 연장선으로 안드로이드 운영체제의 사용자 개인정보 및 타겟 광고 처리방식을 변경할 것으로 충분히 에상할 수 있는데요, 이에 따라 2021년 4월 배포한 애플 iOS의 "앱 추적 투명성(ATT)" 정책으로 큰 타격을 입고 있는 Ad-Tech 및 소셜미디어 업체(ex. 메타 등)의 타격은 더 커질 것으로 보입니다. 하지만 구글은 애플과 다르게 기존 광고 생태계의 영향을 줄이면서도 사용자 개인 정보를 강화할 수 있는 방식을 찾아가고자 하며, 이를 위해 다수의 업체들과 협업을 하겠다고 밝혔습니다. 그럼 우리는 어떻게 대응해야 할 것인가?" 하는 물음에 답하기 위해 구글이 말하고자 ..

Tech 2022.03.07