2014-06-19 3 views
2

저는 flume과 함께 hdfs에 많은 양의 데이터를 수집하고 있습니다 (페타 바이트 단위의 데이터). flume이 분산 아키텍처를 어떻게 사용하고 있는지 알고 싶습니다. 나는 200 대가 넘는 서버를 보유하고 있으며, 데이터 소스 (일명 데이터 소스)를 가져올 곳과 hdfs에서 싱크대를 설치했습니다. (hadoop은이 서버에서 serengeti를 통해 실행됩니다). flume이 클러스터를 통해 배포되는지 또는 클러스터를 잘못 설치했는지는 확실하지 않습니다. 나는 flume installation과이 게시물에 대한 apache 사용자 가이드를 따랐다. 어떻게 flume이 배포됩니까?

http://flume.apache.org/FlumeUserGuide.html#setup

How to install and configure apache flume?

나는 초보자는 수로와 it..Any의 도움을 크게 감상 할 수에 대한 자세한 내용을 이해하려고 노력하는입니다. 감사!!

답변

1

나는 Cloudera의 구체적인 권장 사항 대신 Apache Flume 자체에 대해 말할 것입니다.

배포했지만 배포하기로 결정했습니다. 자체 토폴로지를 결정하고 구현하십시오.

당신은 Flume을 내구성있는 파이프라고 생각해야합니다. 소스 (숫자에서 선택할 수 있음), 채널 (숫자에서 선택할 수 있음) 및 싱크 (다시 숫자에서 선택할 수 있음)가 있습니다. 하나의 에이전트에서 Avro 싱크를 사용하여 다른 Avro 소스에 연결하는 것이 일반적입니다.

Flume을 설치하여 Apache 웹 서버 로그를 수집한다고 가정합니다. 공통 아키텍처는 Flume을 각 Apache 웹 서버 시스템에 설치하는 것입니다. 아파치 로그를 얻으려면 스풀링 디렉토리 소스를 사용하고 syslog를 얻으려면 syslog 소스를 사용하십시오. 스피드를 위해서 그리고 내구성을 희생하면서 서버에 영향을 미치지 않도록 메모리 채널을 사용하고 Avro 싱크를 사용하십시오.

Flume로드 밸런싱을 통해 Avro 싱크가 2 개 이상의 콜렉터에 연결됩니다. 콜렉터는 Avro 소스, 파일 채널 및 원하는 것 (elasticsearch ?, hdfs?)을 싱크대로 사용합니다. 최종 출력물을 처리하기 위해 다른 계층의 에이전트를 추가 할 수도 있습니다.

1

최신 버전에서 Apache Flume은 더 이상 마스터 - 슬레이브 아키텍처를 따르지 않습니다. Flume 1.x 이후에는 사용되지 않습니다.

더 이상 마스터가 아니며 사육사 종속성이 없습니다. Flume은 이제 간단한 파일 기반 구성 시스템으로 실행됩니다.

크기를 조정하려면 여러 물리적 노드에 설치하고 자체 토폴로지를 실행해야합니다. 단일 노드가 고려됩니다.

  1. 두 수로 에이전트가 시작에 JMS 데이터를 얻기 위해 실행 : 나는 두 가지 배포 옵션이 있습니다, 우리가 초당 2000 XML 이벤트를 제공하는 JMS 서버에 훅 말, 그리고 그 데이터를 얻을이 Fulme 에이전트를 필요 같은 물리적 노드.
  2. 두 개의 실제 노드에서 JMS 데이터를 가져 오기 위해 두 개의 Flume 에이전트가 시작되어 실행 중입니다.
+0

파일 채널을 실행하고 있다면, 모든 * 배치에 대해'fsync'가 있다는 것을 알아 두십시오. 자기 HDD가있는 동일한 노드에서 두 개의 에이전트를 실행하는 경우 두 채널이 디스크에 서면으로 서로 경쟁하게되며 느려질 것입니다. – Sarge

+0

두 개의 flume 에이전트가 두 개의 물리적 노드에서 실행되는 두 번째 경우에는 조정이 어떻게 이루어 집니까? 그것은 JMS 대신 kafka 브로커라고 가정합니다.그런 다음 에이전트가 모든 주제 메시지가 소비 된 것과 관련하여 조정자가 어떻게 조정하여 두 에이전트가 동일한 메시지를 싱크대로 두 번 보내지 않도록 할 것입니다. –

관련 문제