2011-09-23 5 views
3

저는 Apache Hadoop을 처음 사용 했으므로 앞으로 더 많은 기능을 살펴볼 수 있기를 기대합니다. 기본적인 단어 수를 계산 한 후에 나는 약간의 분담금을 높이고 싶었습니다. 그래서 저는 Hadoop In Action book을 통해이 문제에 관해 이야기를 나누었습니다. "웹 서버 로그 파일 가져 오기 에 MapReduce 프로그램을 작성하여 각 IP 주소의 방문수를 집계하십시오. MapReduce 프로그램을 작성하여 방문수로 상위 K 개의 IP 주소를 찾으십시오.이 빈번한 방문자는 합법적 인 ISP 일 수 있습니다 (많은 사용자가 공유하는) 프록시 또는 은 (서버 로그가 광고 네트워크에있는 경우) 스크래퍼 및 사기꾼 일 수 있습니다. " 아무도 내가 어떻게 시작해야하는지에 관해 나를 도와 줄 수 있습니까? hadoop은 kickc 시작에 대한 기본적인 예로서 단어 수를 제공하기 때문에 실제로는 우리 자신의 코드를 작성하기가 어렵습니다. 도움을 주신 모든 분들께 감사드립니다. 감사.mapreduce를 사용하는 이상 탐지

답변

2

각 IP 주소의 방문수를 집계하는 MapReduce 프로그램을 작성하십시오.

단어 수는 이보다 크게 다르지 않습니다. wordcount 예제에서지도는 "192.168.0.1"을 추출한 후지도가 출력하는 IP 주소 ("192.168.0.1", 1)에서 입력에서 "단어"를 추출한 후 ("word", 1) 로그 파일에서 IP 주소를 입력합니다.

방문의 측면에서 최고 K IP 주소를 찾는 또 다른 맵리 듀스 프로그램을 작성.

을 처음 맵리 듀스 작업의 완료 후 것은 많이있을 것입니다 이런 내용의 감속기 수를 기준으로 출력 파일

<visits> <ip address>

이 모든 파일은 getmerge 옵션을 사용하여 병합해야합니다. getmerge 옵션은 파일을 병합하고 파일을 로컬에서 가져옵니다.

그런 다음 로컬 파일은 방문수 인 첫 번째 열을 기준으로 sort 명령을 사용하여 정렬해야합니다.

그런 다음 head 명령을 사용하면 방문수로 상위 n 개의 IP 주소를 얻는 첫 번째 n 줄을 가져올 수 있습니다.

두 번째 MR 작업에 더 나은 방법이있을 수 있습니다.

+0

정말 고마워요. 첫 번째지도 제작에 대한 귀하의 설명을 완전히 이해했지만, 두 번째지도 작업을 조금 더 설명하면 좋을 것입니다. . – Pavan

+1

이 답변을 업데이트했습니다. –

+0

나는 확실히 시도 할 것이고 결과를 알려줄 것이다. 고맙습니다 . – Pavan