참고로, 현재 기준으로 tajo는 0.10 이 정식 릴리즈 상태이다.

보통 새로운 솔루션에 대한건 장점에 대해서 강조하고 단점에 대해서는 잘 언급하지 않는다.


실무에 적용하기위해 이런저런 테스트를 하는데 몇가지 문제를 만났는데,

참고해야할 사항인것 같아 글을 정리해본다.



1. Tajo의 Failover ? 


* 자료링크 : Apache Tajo 프로젝트 소개 및 최신기술 동향 , 손지훈


14년 자료를 보면 HA와 신뢰성 질의 처리가 가능하다고 되어있다. 하지만 실제로 테스트해보면 잘 안된다.

타조 한국사용자 모임의 글을 추적해보면 YARN기반에서 자체구현한 resource manager로 바뀌었다고 하고 (링크)

Out of Memory 에 대한 task failover의 경우 YARN모드에서 지원되었고, 현재는 미구현 상태라고 한다.

다행히 OOM의 문제는 마이너릴리즈에 반영해 주시기로 되었다.


해당 버전이 나오면 아마 안정성 확인을 위해 다시 테스트 해야할것 같긴하지만,

그래도 국내 오픈소스라 그런지 피드백은 확실한것 같다.


 



2. 테스트를 하면 실상은 ... 


MASTER 서버 2대 , WORKER서버 4대로 구성해서, 조금 복잡한 쿼리를 돌린후 WORKER서버 두대를 강제로 kill 했다.

그러자 마스터서버에서는 나머지 살아있는 서버에서 무한 heartbeat를 날린다. ;;;

2015-09-02 14:18:22,748 INFO org.apache.tajo.master.QueryInProgress: Received QueryMaster heartbeat:q_1441101147776_0001,state=QUERY_RUNNING,progress=0.32766667, queryMaster=워커서버1

2015-09-02 14:18:24,748 INFO org.apache.tajo.master.QueryInProgress: Received QueryMaster heartbeat:q_1441101147776_0001,state=QUERY_RUNNING,progress=0.32766667, queryMaster=워커서버1

2015-09-02 14:18:26,748 INFO org.apache.tajo.master.QueryInProgress: Received QueryMaster heartbeat:q_1441101147776_0001,state=QUERY_RUNNING,progress=0.32766667, queryMaster=워커서버1

2015-09-02 14:18:28,749 INFO org.apache.tajo.master.QueryInProgress: Received QueryMaster heartbeat:q_1441101147776_0001,state=QUERY_RUNNING,progress=0.32766667, queryMaster=워커서버1

... 무한 반복 ...



그리고 다른 케이스로는 위에 언급했지만 OOM이 발생해서 좀비화 되더라도 프로세스가 죽지 않았다면  무한 대기를 하게된다.

에이 설마 계속 이런걸까? 싶어서 주말에 돌렸는데 이틀이 지나도 그 맛이간 서버와 연결하려고 시도중이었다. ㅜ


그리고 HA도 수동으로 프로세스를 죽이면 active -> master 변경이 되는건 확인이 되긴했는데 조금 문제가 있다.

가장 애매한 문제는 jdbc드라이버로 연결할때 발생한다.

connection 설정할때 active와 backup서버를 같이 기술 못하는건 일단 뒤로 넘어간다고 치자.


그런데, jdbc드라이버 연결할때, backup master의 IP로 연결하면 ???

" 연결은 되지만, 쿼리를 날리면 무한대기한다. " 는 이상한 동작을 한다.

개인적인 생각이지만 안되는 case에 대한 테스트를 덜 한게 아닐까? 하는 생각이 들었다.



3. 그래도 Tajo에게 기대중 ... 


사실 몇일간 테스트하면서 안정성에서 실망을 하긴 했다.

왜냐면, 실무에 적용하기위해서는 기능이 많은것보다는 적은기능이다도 명확하게 동작하는게 좋다.

(얼마전 발표하러 오셨던분이 Hive를 즐겨쓰는데 그 이유는 느리더라도 결과는 명확하게 나오기 때문이라고 했는데. 격하게 공감한다)


하지만, 장애가 나지 않는 상태에서는 

꽤 훌륭한 퍼포먼스를 보여준다. 그리고 표준SQL 지원이 기본컨셉이기도 하고, 

목적도 DW를 지원하기위해 나왔다는점 그리고 국내 개발진이 주축을 이룬 솔루션이라는점.

이것이 내가 사용하려는곳에 가장 부합하는 솔루션이긴 하다.


나도 개발자로 살면서 이런곳에 도움이 될수 있도록 좀더 힘내야겠다.


데이터를 다루는 작업은 실데이터수준의 충분한 데이터가 있어야 재현되는 문제점도 있다보니... 

나도 내 나름대로 사명(?)을 가지고 테스트와 개선에 도움이 되는 시도를 해봐할텐데..

+ Recent posts