2010-12-07 4 views
3

하나만 사용 가능 Hadoop 작업을 실행하여 키를 기반으로 다른 디렉토리에 데이터를 출력 할 수 있습니까?Hadoop을 사용하여 단일 실행으로 데이터 바운딩

내 경우는 서버 액세스 로그입니다. 나는 그것들을 모두 가지고 있다고 말하지만, 몇 가지 일반적인 URL 패턴을 기반으로 그들을 나눠주고 싶습니다. 예를 들어

,/foo는 시작

  • 뭐든지// 년/월/일 /시/foo는/파일/바 시작
  • 아무것도 가야한다// 년으로 이동한다/월/일 /시/바/파일
  • /년/월/일/시간에 가야 일치하지 않는 건/기타/파일

두 가지 문제에 대한 이해에서 (여기 있습니다 Map Reduce) : 먼저 데이터를 반복하는 것을 선호합니다. 한 번, URL 형식 당 하나의 "grep"작업을 실행하는 대신 일치시키고 싶습니다. 그래도 출력을 어떻게 나누겠습니까? 내가 "foo"로 첫 번째 키를 누르고 "bar"로 두 번째 키를 누르고 "other"로 나머지 키를 누르면 여전히 같은 감속기로 이동하지 않습니까? Hadoop에서 다른 파일로 출력하도록하려면 어떻게해야합니까?

두 번째 문제는 관련이 있습니다 (아마도 동일합니까?), 출력 로그 라인의 타임 스탬프만큼 출력을 중단해야합니다.

나는이 문제를 해결하기위한 코드가 아니라 올바른 용어와 고차원적인 해결책을 찾아야한다. 여러 번 실행해야한다면 괜찮습니다.하지만 가능한 한 시간마다 하나의 "grep"을 실행할 수는 없습니다 (그 시간 동안 파일을 만들기 위해) 다른 방법이 있어야합니까?

답변