목록개발.오류.정리/Hive (6)
GOOD4ME

Apache hive에서 사용가능한 엔진은 대표적으로 Map-Reduce와 TEZ가 있다. Default로 설정된 엔진은 Map-Reduce이며 이 엔진으로 파티셔닝을 진행할 땐 아무 문제가 발생하지 않았다. 하지만 성능 향상을 위해 TEZ 엔진으로 변경 후 파티셔닝을 진행한 결과, 몇 가지 오류가 발생했다. 물론 yarn log를 확인해서 직접 문제를 해결할 수도 있겠지만, yarn log를 확인하는 게 번거롭거나, yarn log 확인 방법에 익숙하지 않은 사람들을 위해 이번 글을 작성하게 되었다. TEZ 라이브러리 경로 설정 오류 ... Query ID = root_20230307000533_0525f936-82a8-42be-8939-a3468fc5c123 Total jobs = 1 Launchin..

현재 PySpark를 사용하여 다른 데이터베이스에 적재되어있는 데이터를 불러온 후, 전처리하여 HDFS에 parquet 형태로 적재한 뒤, Hive를 사용하여 적재한 parquet을 조회하는 파이프라인을 구축하고있다. 문제가 된 쿼리 PySpark에서 parquet으로 적재할 때, 따로 데이터의 형태를 변환하지 않고 그대로 적재를 했고 Hive에서 parquet 경로를 지정하여 external 테이블 생성 시, 일자 자료형에 date를 기입하여 작업을 진행했고 그 결과는 하단과 같다. Failed with exception java.io.IOException:org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.ClassCastException: or..

MapReduce 분산 데이터 처리 프레임워크인 MapReduce는 임의의 자바 프로그램을 실행시킬 수 있어 비구조화된 데이터를 가공하는데 적합하다 Map은 데이터를 변형하며 Reduce는 Map의 결과 데이터를 집계한다 데이터의 Reduce 작업이 끝나면 중간 결과를 HDFS에 저장한 뒤, 다시 M-R 작업이 이루어지기 때문에, Disk I/O가 발생하여 작업 속도가 저하된다 TEZ TEZ는 MapReduce처럼 분산 데이터 처리 프레임워크이다 미리 실행계획을 계산하여 DAG를 통해 Disk에 저장하는 과정없이 Map 단계의 데이터를 메모리에 저장 후, Reduce에 전달함으로써 작업 속도가 MapReduce에 비해 빠르다. 간단한 작업에 대해서는 처리 속도 향상률이 낮은건 비밀...😂 Hive는 기본..

무엇이 문제인가? TEZ 엔진 기반의 Hive 구동 시, 아래처럼 오류가 발생하는 것을 확인했다. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:661) at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:591) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:747) at org.apache.ha..