문제

MapReduce 접근 방식을 사용하여 연속 데이터 스트림 (HTTP를 통해 액세스)을 분석하고자하므로 Apache Hadoop을 조사했습니다. 불행히도, Hadoop은 새로운 데이터가 도착하자마자 새로운 데이터를 끄는 대신 고정 크기의 입력 파일로 작업을 시작할 것으로 예상됩니다. 이것이 사실입니까, 아니면 내가 뭔가를 놓치고 있습니까? 열린 소켓에서 데이터를 읽는 데 작동하는 다른 MapReduce 도구가 있습니까? 확장 성이 여기서 문제이므로 MapReducer가 지저분한 병렬화를 처리하도록 선호합니다.

나는 함께 놀았다 계단식 HTTP를 통해 액세스 한 정적 파일에서 작업을 실행할 수 있었지만 실제로는 내 문제를 해결하지 못합니다. Curl을 중간 단계로 사용하여 Hadoop 파일 시스템 어딘가에 데이터를 덤프하고 새로운 데이터 덩어리가 준비 될 때마다 새로운 작업을 시작하기 위해 Watchdog를 작성할 수 있지만 더러운 해킹입니다. 이것을하는 더 우아한 방법이 있어야합니다. 어떤 아이디어?

도움이 되었습니까?

해결책

당신이 설명하는 핵은 다소 일을하는 표준 방법입니다. Hadoop은 근본적으로 배치 지향 시스템입니다 (한 가지, 데이터가 끝나지 않으면 감속기가 시작할 수 없으므로 시작해야합니다. 지도 단계가 완료되었습니다).

로그를 회전 시키십시오. 회전하면 hdfs에 덤프하십시오. Watchdog 프로세스 (아마도 Zookeeper를 사용하여 배포 된 배포 된 것)가 덤핑 접지를 모니터링하고 새로운 처리 작업을 시작하십시오. 오버 헤드를 보증 할만 큼 충분히 큰 입력에서 작업이 실행되도록해야합니다.

HBase는 Hadoop 생태계에서 큰 복제품으로 연속적인 인서트 스트림을 허용하기 때문에 흥미로울 수 있습니다. 그러나 여전히 배치 모드에서 분석 쿼리를 실행해야합니다.

다른 팁

는 어때 http://s4.io/. 스트리밍 데이터를 처리하기 위해 만들어졌습니다.

업데이트

신제품이 상승하고 있습니다. 폭풍 - 분산 및 결함 내성 실시간 계산 : 스트림 처리, 연속 계산, 분산 RPC 등

Esper CEP를 살펴 봐야한다고 생각합니다. http://esper.codehaus.org/ ).

야후 S4 http://s4.io/

지도 감소와 같은 실시간 스트림 컴퓨팅을 제공합니다.

트위터 폭풍 필요한 것입니다. 시도해 볼 수 있습니다!

여기에 여러 옵션이 있습니다. Kafka와 Storm + (Hadoop 또는 NOSQL)의 조합을 솔루션으로 제안합니다. 우리는 이미 OpenSource 도구를 사용하여 빅 데이터 플랫폼을 구축했으며 매우 잘 작동합니다.

유스 케이스는 hadoop을 사용하여 웹 크롤러를 작성하는 문제와 유사하게 들립니다. HTTP를 통해 원격 페이지를 가져 오기 위해 열린 소켓의 데이터 스트림 (천천히).

그렇다면 참조하십시오 웹 페이지를 가져 오는 것이 Map-Reduce에 잘 매핑되지 않는 이유. 그리고 당신은 확인하고 싶을 수도 있습니다 Fetcherbuffer Bixo의 클래스는 이러한 유형의 문제를 해결하기 위해 감속기 (계단식을 통해)에서 나사산 접근법을 구현합니다.

스트림 마이닝에서 사용을위한 Hadoop의 주요 문제는 먼저 디스크 인 HFD를 사용하고 디스크 작업이 대기 시간을 가져 와서 스트림에서 데이터 누락을 초래한다는 사실입니다. 둘째, 파이프 라인이 평행하지 않다는 것입니다. Map-Reduce는 일반적으로 스트림 데이터와 같이 인스턴스가 아닌 데이터 배치에서 작동합니다.

최근에 HDF를 우회하여 첫 번째 문제를 해결하고 객체 데이터베이스에서 메모리 계산을 수행하는 M3에 대한 기사를 읽었습니다. 그리고 두 번째 문제의 경우, 그들은 더 이상 배치에서 수행되지 않는 점진 학습자를 사용하고 있습니다. 확인할 가치가 있습니다 M3 : Main-Memory Mapreduce에서 스트림 처리. 이 M3의 소스 코드 또는 API를 어디서나 찾을 수 없었습니다. 누군가가 발견하면 여기에서 링크를 공유하십시오.

또한 Hadoop Online은 M3과 동일한 문제를 해결하기 위해 ATMPS가 다음과 같은 프로토 타입입니다. Hadoop 온라인

하지만, 아파치 스톰 이 문제의 핵심 솔루션이지만 충분하지 않습니다. 당신은 맵-레디스의 euqivalent가 필요합니다. 여기에 라이브러리가 필요한 이유가 있습니다. 사모아 실제로 Mahout가 부족한 온라인 학습을위한 훌륭한 알고리즘이 있습니다.

시장에서 몇 가지 성숙한 스트림 처리 프레임 워크 및 제품을 사용할 수 있습니다. 오픈 소스 프레임 워크는 예를 들어 Apache Storm 또는 Apache Spark (Hadoop 위에서 실행할 수 있음)입니다. IBM Infosphere 스트림 또는 TIBCO 스트림베이스와 같은 제품을 사용할 수도 있습니다.

스트림 처리 및 이러한 모든 프레임 워크 및 제품을 자세히 설명하는이 InfoQ 기사를 살펴보십시오. Hadoop과 함께 실시간 스트림 처리 / 스트리밍 분석. 이 기사 외에도 이것이 Hadoop에게 보완적인 방법을 설명합니다.

그건 그렇고 : Oracle 또는 TIBCO와 같은 많은 소프트웨어 공급 업체는이 스트림 처리 / 스트리밍 분석 분석을 호출합니다.

아파치 스파크 스트리밍을 시도해야합니다. 그것은 당신의 목적을 위해 잘 작동해야합니다.

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