문제

나는 알고 싶어하는(있을 알고)에 대한 nutch 및 알고리즘(기 때문에 그것과 관련해 프로젝트)에 사용하는 것을 가져올,분류,...(일반적으로 크롤링).
내가 읽기 소재 그러나 그것의 작은 이해하기 어렵습니다.
사람이 있습을 설명할 수 있는 내가 이것을 완전하고 그리고 이해하기 쉬운 방법이 있을까?
미리 감사드립니다.

도움이 되었습니까?

해결책

짧은 대답

한마디로 말하면,그들은 에 의해 개발되었 webcrawler 설계를 매우 효율적으로 크롤링에서 웹에 많은 컴퓨터 환경(지할 수 있는 단일 컴퓨터에서 실행됩니다.).

시작할 수 있습 크롤하지 않고 웹을 실제로 필요로 하는 방법을 알고 그들이 구현됩니다.

페이지를 참조하는 방법을 설명합니다 그것이 구현됩니다.

기술 뒤에

그들의 사용 작업 사이의 갭을 연결하는 플랫폼은 오픈 소스 소 java 프로젝트 설계에 따라 동일한 라인의 MapReduce.MapReduce 은 기술을 사용하여 Google 크롤링과성 web.

나에 참석하여 강의에 MapReduce/Hadoop,그리고 불행하게도,내가 알지 못하는 경우에는 사람할 수있는이 시간에 그것을 설명에서 완전하고 이해하기 쉬운 방법은(그들은 종류의 쪽).

살펴보기 MapReduce.

기본적인 아이디어를 보내는 작업을 마스터 노드 마스터를 나누기까지 작동 조각으로 보내고 그것(지도 그것은)다양한 작업자 노드(다른 컴퓨터 또는 스레드)수행 할당된 하위 작업,그리고 전송 하위 결과에 다시 마스터입니다.

일단 마스터 노드를 가져옵니다 모든 하위 결과(또는 일부의 하위 결과)그 시작을 결합한 그들(그들을 줄일)최종 대답이다.

이 모든 작업을 동시에 수행하고,각 컴퓨터는 권리를 부여의 금액을 유지하기 위해 노력은 그것을 점령했습니다.

크롤링 방법

로 구성되어 있는 4 채용 정보:

  1. 구문 분석
  2. 업데이트를 데이터베이스

*성

의 목록을 시작 웹 페이지 포함할 페이지 시작에서 크롤링:는"Webtable".

마스터 노드를 전송한 모든 페이지에서는 목록의 노예들이(그러나는 경우에 두 개의 페이지와 동일한 도메인들을 노예).

슬레이브는 할당 된 웹 페이지(s):

  1. 이미 생성된?그렇다면,그것을 건너.
  2. 을 정규화 URL 이후"http://www.google.com/"및"http://www.google.com/../"실제로 같은 웹 페이지입니다.
  3. 환 초기 점수와 함께 웹 페이지로 돌아 마스터입니다.

(Master 파티션은 웹페이지를 보낼 때 그것은 그것의 노예는 그들은 모두 마무리에 같은 시간)

마스터 지금 선택 n(어쩌면 사용자를 시작으로 10 초기 페이지),그리고 자국으로 그들을에서 선택 webtable.

*가

마스터 보면서 각 URL 에 webtable,지도는 있었다는 표시로 노예를 처니다.

노예들이 가져 각 URL 에서 인터넷으로 빠른 속도로 인터넷 연결이 그들에게,그들은 큐에 대한 각각의 도메인에 있습니다.

그들은 URL 을 반환합과 함께 HTML text 웹 페이지의습니다.

*구문 분석

마스터에서 보이는 각각 웹 페이지에 webtable 는 경우,그것으로 표시되고,그 전송을 노예를 구문 분석합니다.

슬레이브를 먼저 확인합니었다면 이 분석에는 다른 노예,그렇다면 건너뜁니다.

그렇지 않으면,구문 분석 웹 페이지에 저장한 결과를 webtable.

*데이터베이스의 업데이트

마스터에서 보이는 각각 웹 페이지에 webtable 보내고,구문 분석된 행하는 그는 노예입니다.

노예들이 받게 이러한 구문 분석된 Url 을 계산에 대한 점수를 그들의 수를 기반으로 링크를 멀리 페이지에서(텍스트 근처 사람들의 링크),및 전송 Url 고의 점수를 확인(정렬 점수에 의해가 되면 다시기 때문에 마스터의 분할).

마스터 계산 및 업데이트 웹 페이지의 점수에 따라 숫자의 해당 페이지에 대한 링크에서 다른 것들입니다.

마스터 저장이 모든 데이터베이스에 있습니다.

반복

때 페이지 구문 분석,링크 이 웹페이지 추가되었으로 webtable.할 수 있는 반복 이 과정에서 그냥 페이지에 보지 않은 아직 계속 확장 많이 방문한 페이지입니다.결국 당신은 당신의 대부분을 도달할 것입한 후 인터넷을 충분히 반복의 위 네 단계가 있습니다.

결론

MapReduce 멋진 시스템입니다.

많은 노력이 적용되었을 효율적으로 가능합니다.

그들은 처리할 수 있는 컴퓨터를 나누는 중에 작업의 재배치는 작업을 다른 노예입니다.처리할 수 있음 일부 노예들보다 더 빠르게 다른 사람입니다.

마스터 결정할 수 있습을 하는 노예들의 작업이 자신의 컴퓨터에서 보내는 대신 그것을 밖으로 노예는 경우는 것이 더 효율적입니다.통신 네트워크는 믿을 수 없을만큼 고급합니다.

MapReduce 를 작성할 수 있습니다 간단한 코드:

을 정의 매퍼,선택적인 파티션,그리고 흡진기입니다.

다음 MapReduce 어떻게 최고의하는 모든 컴퓨터 리소스에 액세스할 수 있는 경우에도,그것은 하나의 컴퓨터와 인터넷 연결 속도,또는 kila-클러스터입니다.(아마도가 클러스).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top