2012-05-25 3 views
3

돼지를 사용하여 분석을 위해 주기적으로 (매시간) 응용 프로그램 로그를 Cassandra에로드하고 싶습니다.cassandra에 로그 파일을로드하는 스택

일반적으로 어떻게 이루어 집니까? 이것에 초점을 둔 프로젝트가 있습니까?

데이터를 대량로드하는 데 일반적으로 사용되는 mumakil이 있습니다. 그 주위에 cron 작업을 작성할 수는 있었지만, 내가 쓸어내는 작업보다 더 강력한 작업을 원했습니다.

또한 선호하는 경우 다른 형식 (예 : syslog 또는 Cassandra)으로 데이터를 저장하도록 응용 프로그램을 수정하려고합니다. 이 경우 카산드라를 사용할 수 없으면 데이터 손실에 대해 걱정할 것입니다.

답변

0

이 프로젝트는 이러한 목적으로 설계되었으므로 Flume을 사용하여 HDFS로로드하는 것을 고려해야합니다. 그런 다음 구조화되지 않은/반 구조화 된 로그 데이터에 대해 Pig를 직접 사용할 수 있습니다.

1

Flume을 사용하도록 설정 한 경우 사용자 정의 Flume 싱크 (단단하지 않은)를 작성해야합니다. 모델 번호는 https://github.com/geminitech/logprocessing입니다.

돼지를 사용하려면 HDFS (또는 S3)를 사용해야하는 다른 포스터에 동의합니다. Hadoop은 블록이 거대한 블록 스토리지에서 잘 작동하도록 설계되었습니다. 이렇게하면 디스크 검색 및 네트워크 IO를 많이하지 않아도되는 끔찍한 IO 성능을 방지 할 수 있습니다. Cassandra와 함께 Pig를 사용할 수는 있지만 Cassandra 데이터 모델에 문제가있을 것이며 성능이 훨씬 떨어질 것입니다.

그러나 실제로 카산드라를 사용하고 Flume에서 죽은 것이 아니라면 카프카와 스톰을 사용하는 것이 좋습니다.

스톰와 카산드라에로드 로그 파일에 대한 내 워크 플로우는 다음과 같습니다

  1. 카프카는
  2. 로그가 폭풍 카프카
  3. 로그 줄을 사용하여 폭풍 클러스터를 입력 (예 :의 log4j 어 펜더와) 로그를 수집 (스톰 볼트를 쓰는 것은 매우 쉽습니다) 사용자 정의 스톰 볼트를 사용하여 카산드라에 삽입됩니다. 이미 사용할 수있는 폭풍 - 카산드라 볼트가 있습니다.
관련 문제