본문 바로가기

HIVE126

[hive] 하이브의 가상 컬럼(virtual column)을 이용하여 파일 내용 삭제 하이브는 0.8.0 버전부터 가상칼럼을 제공한다. - INPUT__FILE__NAME: 파일명- BLOCK__OFFSET__INSIDE__FILE: 파일에서의 offset 이는 다음과 같이 사용하면 된다. SELECT INPUT__FILE__NAME, BLOCK__OFFSET__INSIDE__FILE, column1, column2 FROM table; 가상칼럼을 이용하여 하이브 테이블엥 로드된 파일의 이름을 알 수 있다. AWS는 S3에서의 하이브 delete 명령은 아직 지원하고 있지 않기 때문에,잘 못 입력된 내용을 지우고 싶다면 가상컬럼을 이용하여 파일을 확인하고, 오프셋을 이용하여 위치를 확인한 후 개별적으로 지워야 한다. 2016. 9. 30.
[hadoop][hive] 리듀서 개수 조절하는 순서 하이브 잡을 실행하면 나오는 다음의 설정은하이브를 실행할 때 리듀서 개수를 조절하는 순서이다. In order to change the average load for a reducer (in bytes): set hive.exec.reducers.bytes.per.reducer=In order to limit the maximum number of reducers: set hive.exec.reducers.max=In order to set a constant number of reducers: set mapreduce.job.reduces= hive.exec.reducers.bytes.per.reducerDefault Value: 1,000,000,000 prior to Hive 0.14.0; 256 .. 2016. 9. 6.
[hive][개념] 하이브 서버2(hiverserver2), 비라인(beeline) HiveServer2 (HS2)는 클라이언트가 Hive에 대해 쿼리를 실행할 수있게 해주는 서비스입니다. - HiveServer2는 HiveServer1의 후속 버전입니다. - HS2는 다중 클라이언트 동시성 및 인증을 지원합니다.- JDBC 및 ODBC와 같은 공개 API 클라이언트를보다 잘 지원하도록 설계되었습니다. - HS2는 Thrift 기반 하이브 서비스 (TCP 또는 HTTP)와 웹 UI 용 Jetty 웹 서버를 포함하는 복합 서비스로 실행되는 단일 프로세스입니다. HiveServer2 from Schubert Zhang beeline 은 하이브 서버2를 이용하여 원격에서 하이브 쿼리를 실행하기 위한 도구이다. # beeline 커맨드로 실행, hive 실행 폴더에 존재% bin/beeline.. 2016. 8. 26.
[하이브] 파티션 복구 하기(repair partitions) 하이브는 기본적으로 폴더 구조이기 때문에 다른쪽에서 처리한 데이터나, 기존에 백업해둔 파일을 복사해서 사용할 수도 있다. hadoop fs -put 명령을 이용하여 기존 파티션 위치에 동일하게 복사하면,데이터 조회가 가능하다. 이때 기존에 등록되어 있던 파티션인 경우는 상관없지만,추가되는 경우 파티션을 새로 등록해주어야 한다. ALTER TABLE ADD PARTITION 명령으로 개별적으로 추가해 줄 수도 있지만, 추가해야할 파티션이 많은 경우 다음의 명령을 이용하여 한꺼번에 처리하면 된다. MSCK REPAIR TABLE table_name;ALTER TABLE table_name RECOVER PARTITIONS; 위의 두 명령중 하나를 이용하면 테이블의 로케이션을 검색하여 파티션을 추가해준다. A.. 2016. 7. 11.
[Tip/프로퍼티] hive에서 load 할 파일이 없을 때 발생하는 NullPointerException 회피하기 하이브에서 load 명령을 이용하여 테이블에 데이터를 적재하고 파일을 select 할때 지정한 경로나 지정한 경로에 파일이 없으면 NullPointerException 또는 IndexOutBoundException 오류가 발생한다. 이를 회피 하기 위해서는 다음의 프로퍼티를 설정하면 된다. set hive.merge.mapfiles=false; 하이브 설정 2016. 1. 6.
[hive] 조회 조건에 정규식 이용하기 하이브 데이터 조회 조건을 정규식을 이용하여 분리하는 방법은 다음과 같다. select 칼럼명 from 테이블명 where 칼럼명 rlike '^[a-zA-Z0-9]*$'; 조회 쿼리에 rlike 를 이용하면 된다. regexp 로 대체하여도 동일한 결과를 출력한다. 정규식은 java 에서 사용하는 정규식과 동일하다. 위의 조회에 사용된 표현식은 처음[^] 부터 끝[$] 까지 영문 대소문자와 숫자 의 반복[*]으로 표현된 문자열만 찾는 쿼리이다. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 2014. 12. 26.