2010-08-16 3 views
7

대용량의 데이터를 수집하는 야간/시간별 데이터 요약 및 통계를 수행하는 많은 Python ETL 스크립트를 교체하려고합니다. 내가 달성하고 싶은 무엇방대한 야간/시간별 하이브/MySQL 데이터 처리를위한 스프링 배치

  • 견고성이다 - 실패한 작업/단계가 자동으로 다시 시작해야합니다. 어떤 경우에는 대신 복구 단계를 실행하고 싶습니다.
  • 프레임 워크가 충돌에서 복구 할 수 있어야합니다. 나는 여기에 약간의 끈기가 필요하다고 생각한다.
  • 모니터링 - 작업/단계의 진행 상태를 모니터링 할 수 있어야하며 성능과 관련하여 기록 및 통계를 확인할 수 있어야합니다.
  • 추적 가능성 - 실행 상태를 이해할 수 있어야합니다.
  • 수동 개입 - API/UI/명령 줄에서 작업을 시작/중지/일시 중지 할 수 있습니다.
  • 단순함 - 대체품을 소개 할 때 제 동료가 화를 잘 내고 싶지 않습니다 ... 간단하고 이해하기 쉬운 API가 있어야합니다.

현재 스크립트는 다음을 수행 : 많은 기계에서

  • 수집 텍스트 로그 및 Hadoop DFS로 밀어 넣습니다. 앞으로이 단계에서 Flume을 사용할 수 있습니다 (http://www.cloudera.com/blog/2010/07/whats-new-in-cdh3b2-flume/ 참조).
  • 데이터에 대해 Hive 요약 쿼리를 ​​수행하고 새 하이브 테이블/파티션에 삽입 (덮어 쓰기)합니다.
  • 새 요약 데이터를 파일로 추출하고 MySql 테이블에로드 (병합)하십시오. 이것은 나중에 온라인 보고서에 필요한 데이터입니다.
  • 새로 추가 된 MySql 데이터 (MySql 테이블에서)에 대한 추가 조인을 수행하고 데이터를 업데이트하십시오.

제 아이디어는 스크립트를 스프링 배치로 바꾸는 것입니다. 나는 또한 Scriptella을 들여다 보았다. 그러나이 경우에는 너무 간단하다고 나는 믿는다.

스프링 - 일괄 처리 (주로 오래된 게시물)에서 나쁜 인상을 봤기 때문에 여기에 몇 가지 입력을 얻으려고합니다. 나는 스프링 - 배치 (spring-batch)와 하이브 통합 (Hive integration)에 대해서도 많이 보지 못했으며, 이는 번거로운 일이다.

+0

이 스크립트는 죄에서 태어났습니다.나도 알아, 나는 그들을 썼다 : – Yossale

+0

당신의 유산을 위해 너를 때리기 @yossale –

+0

나는 그것을 고쳐야 만하는 사람이 아니다. .. :) – Yossale

답변

3

하둡 생태계에 머 무르려면 Oozie을 확인하여 워크 플로를 자동화하는 것이 좋습니다. 우리 (Cloudera)는 당신이 시작할 때 사용할 수있는 packaged version of Oozie를 제공합니다. 자세한 내용은 최근 blog post을 참조하십시오. 나는 꽤 계단식 사용했는데 꽤 인상적 발견

+0

고맙습니다. Jeff. Oozie는 Hive 및 MySql과 통합됩니까? –

+1

예. CDH로 패키지 된 Oozie 버전에는 Hive 및 Sqoop 작업이 있습니다. Sqoop을 사용하면 MySQL을 사용하여 가져 오기 및 내보내기를 수행 할 수 있습니다. MySQL에 저장된 데이터에 대해 쿼리를 실행하려면 Java 동작 (http://yahoo.github.com/oozie/releases/2.2.0/WorkflowFunctionalSpec.html#a3.2.7_Java_Action)과 JDBC 드라이버를 사용하여 쿼리를 제출할 수 있습니다 . –

+0

10X 다시, 나는 그것을 조사 할 것입니다. –

1

JasperETL 또는 Talend을 사용하지 않는 이유는 무엇입니까? 그 일에 맞는 도구처럼 보입니다.

+0

이 도구들은 유효하지만, 나는 더 많은 프로그래밍 방식을 연구하고있다. 해결책. 우리는 실제로 전에 Talend를 사용하고 있었고 몇 가지 규모의 문제에 부딪쳤습니다. 또 다른 문제는 개발자가 그래픽 툴을별로 좋아하지 않는다는 것입니다. 아이콘은 복잡성을 너무 많이 숨기고 ETL 플로우를 이해하는 것은 대부분의 개발자에게 큰 효과가있는 것으로 나타났습니다. –

1

:

Cascading

그것은 M/R 추상화 계층이며, 하둡에서 실행됩니다.

+0

@sethcall을 참조 해 주셔서 감사합니다. 결국 Oozie보다 훨씬 유연한 스프링 배치를 사용했습니다. –

+1

두 가지 소프트볼 질문 : 학습 곡선을 받아 들일 만 했습니까? 그것을 사용하는 것이 생산성이 있다고 느꼈습니까? (계단식 + hadoop, 초보자를위한, 심각하게 고려하지 않고 뛰어 들어 아무것도 없기 때문에 부탁드립니다. 그것은 고체 기술이고, 매우 복잡한 문제를 잘 해결하지만, 수하물로) – sethcall

+0

나는 오랜 시간 동안 봄을 사용 해왔다. 학습 곡선은 문제가되지 않았습니다. 우리는 Spring이 쉽게 해결할 수있는 기존 시스템 및 코드 기반과의 통합에 더욱 관심이 있습니다. 나는 정말로 참고를 바르게 평가한다. 나도 몰랐어. :) –

관련 문제