복붙노트

[HADOOP] 돼지 UDF는 웹 로그에서 시간 차이를 계산

HADOOP

돼지 UDF는 웹 로그에서 시간 차이를 계산

웹 로그의 시간 차이를 계산하는 돼지 UDF이 있습니까?

나는 아래 형식의 웹 로그는 한 가정 :

10.171.100.10 - - [12/Jan/2012:14:39:46 +0530] "GET /amazon/navigator/index.php
 HTTP/1.1" 200 402 "someurl/page1" "Mozilla/4.0 (
compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 3.0.4506
.2152; MS-RTC LM 8; .NET CLR 3.5.30729; .NET CLR 2.0.50727)"
10.171.100.10 - - [12/Jan/2012:14:41:47 +0530] "GET /amazon/header.php HTTP/1.1
" 200 4376 "someurl/page2" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 3.0.450
6.2152; MS-RTC LM 8; .NET CLR 3.5.30729; .NET CLR 2.0.50727)"
10.171.100.10 - - [12/Jan/2012:14:44:15 +0530] "GET /amazon/navigator/navigator
.php HTTP/1.1" 200 912 "someurl/page3" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET
 CLR 3.0.4506.2152; MS-RTC LM 8; .NET CLR 3.5.30729; .NET CLR 2.0.50727)"

14 : 39 : 46 (웹 로그에서 1 항목) IP 10.171.100.10을 가진 사용자는 12 / 월 / 2012 somurl / PAGE1을 방문했다. 14 : 41 : 47 다음에 사용자가 12 / 월 / 2012 someurl / 페이지 2를 찾았다. 따라서, 사용자는 2mts 1 초에 PAGE1에 머물렀다. 마찬가지로 사용자 2mts 28 초 (- : 41.47 14 14.44 15)에 대한 페이지 2에 머물렀다. 내가 그것을 비교하는 아무것도 나는 사용자가 PAGE3에 체재하는 시간을 걱정하지 않는다. 출력은 할 수 있습니다 :

10.171.100.10 someurl/page1 121 sec 
10.171.100.10 someurl/page2 148 sec etc ..

웹 로그 라인의 수백만이되고 IP의는 반드시 정렬 된 순서로되지 않습니다. 돼지 UDF의 또는 다른 기술을 사용하여 그것에 대해 이동하는 방법에 대한 어떤 제안?

해결법

  1. ==============================

    1.순서가 변수 때문에 매우 신뢰할 나는 기본적으로 일부 콘텐츠를 생성하기 위해 다음과 같은 행에서 콘텐츠를 사용하는 어떤 기능을 모른다.

    순서가 변수 때문에 매우 신뢰할 나는 기본적으로 일부 콘텐츠를 생성하기 위해 다음과 같은 행에서 콘텐츠를 사용하는 어떤 기능을 모른다.

    당신은 당신의 자신의 UDF를 작성해야합니다. (당신이 라인의 수십억이있는 경우) 계산을 최적화하기 위해, 당신은 수 있도록 IP에 의해 각각의 IP (또는 IP 그룹)에 맵리 듀스 작업을 시작하기 전에 데이터 집합 IP와 날짜에 의해 GROUP하기 위해 할 수있는 모든 특정 IP에 대응하는 행이 동일한 노드에 의해 처리된다.

    사용자가 아직 활성 때 사용자가 반환 : 또한, 나는 당신이 페이지에 소요되는 시간을 계산하는 데 사용할 규칙에 대해 조금 더 생각하기를 권합니다? 당신은 매우 긴 시간 범위로 끝날 수 있습니다.

  2. from https://stackoverflow.com/questions/14929780/pig-udf-to-calculate-time-difference-in-weblogs by cc-by-sa and MIT license