Hive Service를 실행해서. thrfit 기반의 jdbc driver 으로 테스트를 진행했다.
http://knight76.tistory.com/1771
단점을 정리한다.
1. hive sql을 실행하고 난 후 정상적으로 종료 시그널을 Hive Service 로부터 받지 못하면 영원히 block된다.
이를 위해서 두가지 해결 방법이 있는듯 하다
(1) DriverManager에서 login timeout을 지정하는 법
(statement의 setQueryTimeout, jdbc driver url단의 timeout 은 안되는 것 같았음)
(2) (내가 한 방식) Timer를 이용해서 체크.
class HiveConnectCheckTimerTask extends java.util.TimerTask { private int minute = 0; // 실패에 대한 작업.. |
가끔씩 hive 데몬 자체가 문제가 되는 경우가 있어서 hive servier 연결이 안될 때가 존재한다. 그 때를 위해서 감지를 위해서 필요하다.
(정확히 말하면, hive jdbc와 hive service daemon은 establised, hive service daemon과 hive 간의 연결에 문제)
2. hive 는 하나의 쿼리만 처리한다. 따라서 여러 개의 처리를 실행시키면 일렬로 줄 서 있는 느낌으로 잡을 처리해야 한다. (해결책은 hjve 인스턴스를 여러 개를 띄우면 된다.)
3. like 검색 또는 긴 string 비교시에는 속도가 너무 걸린다.
(hbase, hdfs 단에서 검색할 수 있는 먼가의 솔루션이 조만간에 나올 것 같은 느낌이 들 정도임.)
4. hive에서 sql문을 실행하다가 job tracker에서 먹통된다. (최신 버전)
job tracker가 통신 실패로 인해서 계속 hang됨. 웹 페이지도 동작 안된다.
( IPC Server listener/IPC Server Responer thread에서 select 하는 코드에서 runnbale 떠 있다.. )
* 대안 (생각중)
요즘에 나온 물건중 shark 라는 녀석이 있다. PPT만 봤을 때는 상당히 좋아보였다. 지켜보고 있다.
UB 버클리의 amplab에서 진행하는 오픈소스인데. 상당히 괜찮은 아이디어들도 있고. 속도도 빨라서. 테스트해볼 예정..
https://github.com/mesos/spark
'scribbling' 카테고리의 다른 글
SmartPhone Push Notification API & APEC (스마트폰 푸쉬 스펙 및 API) References (0) | 2012.11.02 |
---|---|
Redis 2.6 출시 (0) | 2012.10.25 |
Java + Scala 개발 환경 구축 (1) | 2012.10.19 |
clip cygwin 명령어 (0) | 2012.10.17 |
Javaone 2012 자료 (0) | 2012.10.16 |