gimmesilver's blog

Agbird.egloos.com

포토로그



1초가 하둡을 죽였다. 데이터분석

관련 링크:

 평소 일상과 관계없는 잡식에 관심 있는 사람은 알겠지만 지난 일요일(7월 1일)에 윤초가 적용되었다. 윤초에 대해서는 예전에 '1초의 길이가 짧아졌다.(http://agbird.egloos.com/5212213)' 라는 글에서도 언급했었는데 국제 표준 시간과 지구 자전 주기의 오차를 보정하기 위한 용도로 필요에 따라 1초를 추가하는 것이다.

 이 1초를 어떤 식으로 추가하느냐 하면 표준시 기준으로 23시 59분 59초 후에 23시 59분 60초라고 하고 0시 0분 0초가 되도록 한다. 이게 일상에서는 거의 상관없는 일이지만 시간 동기화가 중요한 전자 시스템에서는 매우 중요한 문제이다(아마 일상에서 가장 관련 깊은 전자기기는 핸드폰일 것이다).

 암튼 이 윤초가 시스템 관점에선 처리하기가 참 까다로운 것이 윤년처럼 미리 정해진 계산식대로 처리되는 것이 아니라 불규칙하게 적용되기 때문에 윤초가 적용된다는 정보를 미리 전달받거나 혹은 별도로 다른 시스템과 동기화가 필요하다. 그리고 바로 이 동기화 부분에서 윤초가 적용된 지난 주말에 여러 시스템에서 문제가 일어났었다. 

 위 링크를 보면 나와 있지만 리눅스 커널에서 윤초 동기화를 위해 NTP서버 메시지를 처리하는 부분에 불규칙한 버그가 발생하는 문제가 있으며 그 외에도 자바나 MySQL 쪽에서 비슷한 문제가 있었다고 한다. reddit.com 에서는 내부에서 쓰던 카산드라 클러스터가 뻗었다고 하고 그 외에도 여러 리눅스 서버에서 문제가 생겼다는 트윗이 많이 올라왔다고 한다.

우리 회사에서도 데이터 분석용 하둡 클러스터 중 하나가 7월 1일 오전에 갑자기 task tracker 노드가 job tracker와 통신이 안되고 떨어져 나가는 문제가 발생했었다.
 네트워크 문제도 아니고 장비도 특별히 이상이 있는 것도 아니었는데 노드들이 뚝뚝 떨어져 나가고 MapReduce job은 중간에 멈추고 해서 굉장히 당황스러웠는데 클러스터 운영팀에서 하둡 클러스터 서버들을 전부 shutdown 했다가 올리니 괜찮아지긴 했지만 원인 파악이 안돼 운영팀 팀장님이나 나나 굉장히 찝찝했었다. 

 그러다가 마침 장애가 발생하기 시작한 시점이 윤초가 적용된 시간인 오전 9시(표준시로 0시) 근처였던 것에 의심을 품은 운영팀 팀장님이 내게 혹시 하둡이 시간 동기화 문제가 발생할 수 있는지 문의했었고 그 과정에서 구글링해보니 위에 관련 링크에 있는 글들을 찾을 수 있었다.
 우리 회사 클러스터의 경우 리눅스 커널 때문이었는지 자바 때문이었는지 불분명하긴 하지만 리눅스 커널의 경우 2.6.29 이전 버전에서만 발생하는 문제이고 우리 시스템은 2.6.32 였기 때문에 커널보다는 자바 문제인 것으로 추측된다.

 예전 회사에 있을 때는 북미 쪽 네트워크 분석 시스템을 만들면서 서머타임 때문에 한번 고생한 적이 있었는데 설마 윤초 때문에 문제를 겪을 줄은 미처 몰랐다. 역시 시간 동기화와 관련된 부분은 정말 미묘한 문제가 아닌가 싶다.

 한편 우리 회사 로그 시스템은 이 윤초를 어떻게 처리했을까 궁금해서 확인해 보니 08시 59분 60초로 찍히는 로그가 없는 것으로 봐서 가볍게 무시한 듯 싶다. 아마 시간 동기화를 하는 시점에서 1초가 지연됐을테니 로그를 1초 단위로 확인해 보면 동기화 시점에 로그가 평균치보다 많이 쌓였을테지 싶다.

덧글

  • 똥그러니 2012/07/05 13:19 # 삭제 답글

    퍼가도 될까요?ㅎㅎ;
  • 정아 2012/07/06 08:27 # 삭제 답글

    은조님 다음 메일 확인 안하시나요? 멀리 독일에서 메일 보내도 답이 없으시네요... 일이 많이 바쁘시리라 사려됩니다... ^^ 다음 메일로 보낸 문의 사항 답변 부탁드려요.
  • gimmesilver 2012/07/06 10:07 #

    제가 한메일은 거의 확인을 안해서...암튼 답장 드렸습니다. 먼 타지에서 멘붕에 빠져 고생이 많으십니다...
    근데 메일 제목이 '이 팀장님 안녕하세요.' 라니...모르고 그냥 봤으면 스펨인줄 알고 그냥 지웠을 뻔 했네요.
  • 정아 2012/07/06 13:09 # 삭제 답글

    제 양쪽에서 늘 한국업체분들이 앉아 계시는터라 사적인 메일 작성하는것을 보면 싫어하실것으로 사료되어
    호칭을 일부러 그렇게 사용했습니다.. 실제로 두번째 메일을 작성 당시... "뭐하세요..?" 하고 제 노트북 화면ㅡ을 쳐다보셔서.. 암... 식겁했다는..





    '
댓글 입력 영역