khstar
flume에서 hive에 데이터 쌓는 중 에러 발생 본문
flume에서 실시간으로 json데이터를 읽어서 hive에 데이터를 추가하는 작업을 테스트 중입니다.
그 과정에서 flume에 아래와 같은 에러 메시지가 발생하는데 말그대로 transactional이 테이블에 설정되어 있지 않다는 거네요.
caused by: org.apache.hive.hcatalog.streaming.InvalidTable: Invalid table db:kalyan, table:users2: 'transactional' property is not set on Table
hive에서 테이블 생성시
CREATE TABLE IF NOT EXISTS kalyan.users2 (
userid BIGINT,
username STRING,
password STRING,
email STRING,
country STRING,
state STRING,
city STRING,
dt STRING
)
clustered by (userid) into 5 buckets stored as orc
TBLPROPERTIES ("transactional"="true");
을 추가해서 테이블을 생성해주세요.
우선 전 이렇게 해결이 됐습니다.
그리고 테이블 CREATE 쿼리 만드실때 TBLPROPERTIES ("transactional"="true"); 는 가급적 직접 타이핑하세요.
Copy & Paste를 하면 FAILED: ParseException line 2:0 character ' ' not supported here 와 같은 에러를 만날수 있습니다.
아래는 flume에서 hive로 json 스트림을 추가하는 방법에 대해 설명되어 있습니다.
참고 : http://shravannarisettyhadoop.blogspot.com/2017/06/how-to-stream-json-data-into-hive-using.html