본문 바로가기

빅데이터/hive127

[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.
[에러] hive의 INSERT .. SELECT 작업중 No input paths specified in job 에러 하이브에서 작업중 아래의 오류로 인하여 작업이 중단 되는 경우가 있다. cause:java.io.IOException: No input paths specified in job 이럴때는 두가지 경우인것 같다. 1. MR 작업할 위치에 원천 로그 파일이 없을때2. SELECT 문의 WHERE 조건으로 인하여 조회되는 건수가 0건 일때 즉, 입력할(INSERT) 데이터가 없을 때 발생한다. 이럴경우 데이터가 없어도 처리하게 하면, 에러를 내지 않고 처리한다. set hive.merge.mapfiles=false; https://svn.apache.org/repos/asf/hive/tags/release-0.5.0/conf/hive-default.xmlhttps://kidokim509.wordpress.com.. 2016. 6. 29.
[Tip/프로퍼티] hive에서 load 할 파일이 없을 때 발생하는 NullPointerException 회피하기 하이브에서 load 명령을 이용하여 테이블에 데이터를 적재하고 파일을 select 할때 지정한 경로나 지정한 경로에 파일이 없으면 NullPointerException 또는 IndexOutBoundException 오류가 발생한다. 이를 회피 하기 위해서는 다음의 프로퍼티를 설정하면 된다. set hive.merge.mapfiles=false; 하이브 설정 2016. 1. 6.
[Hive] 하이브의 정렬, 집계, 유저 함수, 조인, 서브쿼리, 뷰의 정의 정렬과 집계 하이브의 데이터 정렬은 order by 절로 처리 가능 - 하지만 order by 처리하기 위해서는 모든 처리의 결과를 집계해야 하기 때문에 리듀서의 개수가 1개가 되어야 한다. - 마지막 결과파일의 개수가 1개가 된다. 전체적인 정렬의 결과가 필요 없다면, sort by를 사용하면 된다. - sort by는 리듀서당 정렬된 파일을 생성 어떤 경우에는 특정 로우가 특정 리듀서로 가도록 설계하여 집계연산을 사용하는 것이 좋다. - distributed by가 이 역할을 한다. sort by, distributed by에 사용되는 칼럼이 같다면 둘 다를 동시에 지정하기 위해 약칭으로 cluster by를 사용할 수 있다. select year, temperature from records2 di.. 2015. 9. 14.
[hive] 조회 조건에 정규식 이용하기 하이브 데이터 조회 조건을 정규식을 이용하여 분리하는 방법은 다음과 같다. select 칼럼명 from 테이블명 where 칼럼명 rlike '^[a-zA-Z0-9]*$'; 조회 쿼리에 rlike 를 이용하면 된다. regexp 로 대체하여도 동일한 결과를 출력한다. 정규식은 java 에서 사용하는 정규식과 동일하다. 위의 조회에 사용된 표현식은 처음[^] 부터 끝[$] 까지 영문 대소문자와 숫자 의 반복[*]으로 표현된 문자열만 찾는 쿼리이다. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 2014. 12. 26.