hadoop
-
Hive Table 생성 시 Multi-character delimiter 적용 방법프로그래밍/hive 2017. 12. 28. 11:35
Hive Table 생성 시 Multi-character delimiter 적용 방법Hive 에서 table을 만들 때 그냥 row format delimited fields terminated by '___' 이런 식으로 하면 !!그냥 '_' 캐릭터 하나로 인식한다. 여러개의 문자를 한꺼번에 인식하지 않는 다는 말이다.그럴 때는create table testtale ( logflag string, tst string, isp string, device string, model string, os_ver string, app_ver string, ukey string, ad_id string, dpx string, dpy string,logtype string, log string, curadm stri..
-
Hive MIN/MAX STRUCT 쿼리 사용프로그래밍/hive 2017. 12. 25. 17:27
### Hive Min/Max Struct ### 업무중 관련 데이터를 하면서 추가 적인 정보 요청으로 쿼리 고민에 빠지게 되었다.'나는 점수가 몇점인데 나랑 속한 데이터 중에 가장 큰 점수를 가지고 있는 놈의 이름은 무엇인가' SUBQuery 를 사용하면 쉽게 해결 할 수 있는 문제이지만 좀더 간결한 방식을 원해서 그리고 지원 할 것이라 생각되어 검색해 보았다.찾아 보니 **MIN/MAX STRUCT**라는 Function이 Hive 0.6.0에서 부터 지원되고 있었다.그러나 hive 관련 문서에서는 본적이 없다..흠.. 사용 방법은 이러하다 select kind, admcode_gu, max(struct(rv_rate, pid)).col1 as rv_rate , max(struct(rv_rate,pi..
-
Hive CLI 기본 셋팅프로그래밍/hive 2017. 12. 25. 17:20
요즘도 Hive 기본 CLI를 사용하고 있는 사람이 있르지 모르겠지만.... 부득이 하게 가끔 하이브 기본 CLI를 사용해야 할때가 있다. 그럴 때 데이터 조회 시 테이블 header나 현재 db명이 안나오면 좀 불편한 경우가 있다 그럴 땐 CLI에서 SET hive.cli.print.current.db = true(hive 현재 db명 표시)SET hive.cli.print.header = true(table 조회 시 최 상단에 테이블 header 표시) 영구 등록hive-site.xml에 등록하면 된다.
-
DataNode Java Heap Warning프로그래밍/hadoop 2016. 8. 24. 11:55
HDP 버젼을 2.4로 업데이트 이후 DATANODE JAVA HEAP WARNING을 자주 보게 되었다. 기존까지 별 문제 없다가 업데이트 이후 자주 보이고 있다. 결국은 GC 문제로 추정되는데 WARNING이 발생하더라도 나중에는 사라지게 된다. DATANODE의 JAVA HEAP의 크기를 증가 시켜 줘도 똑 같은 현상이 발생하는 걸 보면 확실히 GC의 문제이다. 이 GC가 너무 자주 동작해도 문제고 너무 동작하지 않아서 FULL GC가 돌게 되어도 문제다. 어느 것이든 성능 이슈가 발생하게 된다. 일단 나의 이론이 맞는지 증명해 보기 위한 간단한 테스트! "jcmd GC.run" 명령으로 해당 DATANODE에 강제적으로 full garbage collect를 동작하게 해주면 위의 경고는 조금 후 ..
-
Hive 성능 향상 방안프로그래밍/hive 2016. 8. 18. 00:07
일반적으로 알려진 Hive 성능을 높이기 위한 방안 알려진 방안 HDP를 사용할 경우[Tez Engine 사용] (현재 사용중)MR(Map Reduce)는 여전히 대용량 배치 작업에 사용되고 있지만 이제 구 시대의 기술이 되어 버렸죠. Tez 엔진을 사용하면 2배 이상의 성능 향상이 가능 함 [ORC File 사용] (현재 사용중)일반적인 TEXT FILE 형태로 HIVE Table에 데이터를 넣는 것 보다 ORC File 형태로 입력하면 좀더 나은 성능을 얻을 수 있다. 일반적으로 Hive Table을 생성 할때“CREATE TABLE TESTTABLE (value string, key string) STORED AS ORC” 만들고“insert OR Load Data”를 사용하여 TABLE에 입력하면..
-
Hive Command Line CLI History 보기프로그래밍/hive 2016. 6. 7. 13:34
Hive를 사용하다 보면 나는 주로 CLI Shell을 주로 이용하게 된다. 쿼리 검증을 하기 위해서 shell에서 작업을 많이 하는데... 가끔 내가 사용 했던 쿼리를 다시 사용해야 할 때가 있다. 그럴때 shell에서 화살표 위 아래로 움직이면 과거 쿼리를 불러 올 수 있는데.. 이게 꽤 옛날 쿼리라면 찾기가 참 어렵다. history 명령도 있는 것도 아니고.. 그럴때 어떻해야 하나~ 확인해 보니 내가 Cli shell에서 사용했던 쿼리가 기록에 남아 있다. =>$HOME/.hivehistory 란 곳에 10,000 Line 까지 기록이 된다고 한다. 그래서 오래된 쿼리를 다시 찾기 위해서는 그 파일을 열고!! 확인해 보면 나의 삽질이 어떻게 진행되고 있는 지 한눈에 확인해 볼수 있다!!
-
Hive GenericUDTF 사용프로그래밍/hive 2016. 5. 13. 15:14
Hive에서 일반적인 UDF는 사용하기 쉽다. Hive UDF는 [INPUT] : ONE ROW -> [OUTPUT] ONE ROW 이런 결과 값이 나온다. 하지만 필요에 의해 [INPUT] : ONE ROW -> [OUTPUT] MULTI ROW 값이 필요하게 되었다. 찾아보니 GenericUDTF를 사용 하면 된다. import java.util.ArrayList;import java.util.List; import org.apache.hadoop.hive.ql.exec.UDFArgumentException;import org.apache.hadoop.hive.ql.metadata.HiveException;import org.apache.hadoop.hive.ql.udf.generic.GenericU..
-
HDP Hiveserver2 JAVA heap Error프로그래밍/hive 2016. 3. 30. 19:40
HDP 버젼을 운용 중 발생 중인 문제점.. Hiveserver2에서 3주 정도 지나면 Java Heap Memory Error를 뱉는다.. 여기에 설치된 Hive 버젼은 1.2.1.2.3 에러 메시지는 다음과 같다. Java.lang.OutOfMemoryError: Java heap space 2016-03-04 10:45:23,530 WARN [HiveServer2-Handler-Pool: Thread-675783]: thrift.ThriftCLIService (ThriftCLIService.java:FetchResults(681)) - Error fetching results: java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap sp..