# Impala
쿼리엔진 마이그레이션 후 데이터 정합성 비교하는 법
쿼리엔진 마이그레이션 후 데이터 정합성 비교 기존 우리 데이터 파이프라인은 Spark SQL을 통해 배치 작업을 수행하였다. 2023 연초 기존 자체 배포판 Hadoop에서 Cloudera의 배포판으로 넘어가면서 배치 작업들을 Impala로 전환하였다. Impala와 Spark 모두 Hadoop 환경에서 쓸 수 있는 쿼리 엔진이며 SQL에 기반하여 쿼리를 작성할 수 있지만 세세한 부분이 조금씩 달랐다. Spark에서 사용하던 힌트, 함수들이 Impala에서는 지원이 안 되거나 대체 되는 기능으로 바꾸어 주어야 했던 것들이 있다. 가장 큰 차이는 Spark에서 지원하던 암시적 데이터 타입 변환을 Impala가 지원하지 않는 것이었다. 원천 DB로부터 데이터를 받아와 시간을 제외하고 전부 String으로 저장하는 영역이 있는데 이후 타입을 원천과 맞춘 뒷단으로 넘어갈 때 기존에는 암시적으로 신경쓰지 않던 명시적 형변환을 해주기 위해 CAST 함수를 쿼리에 추가

hive.Metadata.HiveException: MetaException
상황 프로세스는 전체 기동중이지만 impala-shell 접속 x, beeline 접속 x Dbeaver를 통한 impala 접속 x > Unable to connect to hostname:26000 카탈로그 데몬과도 통신을 못하는 상황. 정리 TTransportException: Could not connect any of (ip, 21050) impala daemon과 hiveserver 연결 안되는 상태. TTransportException: Could not connect any of (ip, 21000) impala shell 접속 불가 Unable to connect to ip:26000 impala catalog

impala error - could not connect to any of {{192.168.56.101, 21050}}
에러내용: could not connect to any of {192.168.56.101, 21050}} 상황 : impala job이 101번 서버(다운된 서버)로 submit 되는 상황 특정한 impala daemon ip가 아닌,vip나 haproxy를 이용하여 impala deamon에 대해 로드밸런싱이 가능하지만, job이 다수의 호스트를 향해 제출되어, 각각의 호스트가 코디네이터 역할을 수행하는 경우 아래와 같은 주의가 필요하다. • 많은 수의 호스트가 코디네이터 역할을 하면 각 호스트가 메타데이터 업데이트를 위해 Statestored데몬과 통신하기 때문에 불필요한 네트워크 오버헤드 또는 시간 초과 오류가 발생할 수 있음 • 코디네이터 호스트는 테이블 파티션,데이터 파일에 대한 메타데이터 캐시를 위한 큰 JVM 힙이 필요함. • 여러 코디네이터들이 각각 테이블을 생성하고 드랍한 경우 해당 데몬에서만 변경된 테이블 정보를 가지고 있어,다른 데몬에서 메타데이

impala scratch directories error
Could not create files in any configured scratch directories (--scratch_dirs=) on backend hostname:22000, 0 of scratch is currently in use by this Impala Daemon ( 0 by this query ). 고객사 디스크가 깨져서.. 복구 후 해당 에러 발생 scratch directory 임팔라 작업에서, 대규모 정렬,조인,집계,분석 쿼리 실행 시의 중간 단계의 파일이 /tmp/impala-scratch 디렉토리에 쓰인다.이 파일들은 해당 작업이 끝나면 제거된다. 다중 동시 쿼리 작업시의 중간 파일들은 서로 다른 이름으로 scratch 디렉토리에 쓰이게 되며, 해당 디렉토리 정보는 impalad 실행 파일에서 설정할 수 있다. 원인 scratchdirs가 없어서 발생한 에러.디스크 교체 작업 후 기존에 설정된 scratchdirs인 /h
Impala 빌드 참고사항
Impala 빌드 시 hive 오류 관련 Impala를 받아와서 tar.gz 압축 해제 후 빌드를 실행하는데 빌드는 정상적으로 되지만 Apache Hive와 연동이 되지 않는다. 이유는 impala는 기본적으로 Cloudera Hive를 사용하며 Cloudera Hive 3.x에서는 Apache Hive 4.x 에서 사용하는 일부 기능을 사용하기 때문에 Cloudera Hive 3.x버전에서 빌드 후 Apache Hive 3.x에서 사용할 경우 hive metastore연결 오류가 발생한다. 해결방법은 다음과 같다. 참조: https://cwiki.apache.org/confluence/display/IMPALA/Building+Impala 20220920 추가 내용 Impala Authorization 사용 참고사항 Impala 4.1.0 버전에서는 기본적으로 USER, GROUP, ROLE을 통한 권한 관리를 지원함. 다만 ROLE을 이용한 권한
Apache Impala
Hadoop 기반 데이터를 SQL를 이용해 실시간 질의할 수 있게 해주는 시스템 기존 Hive를 이용하여 동일한 기능을 사용할 수 있지만, Hive 경우 MapReduce 프레임워크를 이용하기에 속도적으로 큰 차이를 보인다. Impala는 실시간 데이터 접근을 위해 임팔라 자체 고유 분산 처리엔진을 사용하여 처리한다. Apache Impala 구조 Impalad Impalad는 impala daemon으로 실제 쿼리를 수행하는 역할을 담당합니다. Impalad는 그림과 같이 Query Compiler, Query Coordinator, Query Executor로 이루어져 있습니다. Compiler는 말그대로 client에서 요청받은 SQL 질의를 Compile 한 후 어떻게 처리할

Impala 사용을 위한 HDFS 권한 설정
오류 내용 Impala 4.1.0 버전을 설치 완료한 상태에서 Impala 테스트를 위해 실행한 CREATE TABLE이 다음 오류를 뱉으며 정상 실행되지 않았다. Impala 계정은 hadoop 그룹에 속해있었으며 refreshUserToGroupsMappings 명령어를 통해 리눅스 사용자 그룹과 매핑을 다시한 상태에서도 해당 오류를 출력했다. 해결 방법 해결 방법은 생각보다 간단했다. 다음과 같이 hdfs acl을 변경함으로서 해결됐다. hive의 경우 database 생성시 hive 저장 위치에 새로운 디렉토리가 생성되기 때문에 default 명령어를 통해 새롭게 추가되는 파일 및 디렉토리에 대해서도 ACL 설정이 가능하게 해야 적용된다. 출처: htt

하둡 에코시스템
1. 빅데이터 기술 기초 다지기 아파치 하둡(Apache Hadoop) : 높은 확장성과 신뢰성을 보유한 분산 스토리지와 분산 처리 기능을 제공하기 위해 다양한 소프트웨어를 밀접하게 통합한 에코시스템. 대표적으로 분산 파일 시스템 HDFS(Hadoop Distributed File System)과 분산 서버 클러스터 환경에서 프로세스를 실행하는 YARN(Yet Another Resource Negotiator)가 있다. 클러스터(Cluster)란? 저장이나 연산 등 하나 이상의 기능을 제공하기 위해 협력하는 서버의 조합. 마스터(Master)와 워커(Worker)가 존재 마스터: 워커