https://issues.apache.org/jira/browse/HIVE-7377

ATSHook 은 hadoop-2 의 timeservice 에 쿼리 처리 시간과 같은 정보를 전달해 주는 Hook 으로 Pre/Post/FailHook 으로 등록하여 사용한다. (https://issues.apache.org/jira/browse/HIVE-7076)

hive.exec.pre.hooks=ql.src.java.org.apache.hadoop.hive.ql.hooks.ATSHook

hive.exec.post.hooks=ql.src.java.org.apache.hadoop.hive.ql.hooks.ATSHook

hive.exec.failure.hooks=ql.src.java.org.apache.hadoop.hive.ql.hooks.ATSHook

내부적으로는 쓰레드풀에 ExecutionContext 를 queue 에 넣으면 Executor 들이 여기에서 필요한 정보를 만들어 http 로 전달하는데 만약 timeservice 가 설정 되어 있지 않거나 네트웍이 문제로 정보 전송에 delay 가 생기는 경우 queue 에 계속 ExecutionContext 가 쌓이게 된다. 

ExecutionContext 는 Plan, Task 등등을 포함하는 비교적 큰 객체로, 이 상태가 유지되면 OOM 을 피할 수 없다. 이 패치는 사용자가 queue 크기를 지정할 수 있게 해 주며 쌓인 작업의 갯수가 이를 넘어서는 경우는 제일 오래된(먼저 들어온) 정보를 discard 하여 메모리 사용량을 일정 레벨 이하로 유지하게 해 준다.

신고
Posted by navis94

카테고리

분류 전체보기 (31)
Apache Hive (29)

최근에 달린 댓글

최근에 받은 트랙백

태그목록

달력

«   2017/11   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

티스토리 툴바