Genie는 Netflix가 개발한 통합 빅데이터 조정 및 실행 엔진입니다.
Genie의 가치는 그것이 해결하는 문제의 측면에서 가장 잘 설명됩니다.
빅데이터 인프라는 복잡하고 끊임없이 진화하고 있습니다.
데이터 소비자(데이터 과학자 또는 기타 애플리케이션)는 간단한 쿼리를 실행하기 위해 많은 장애물을 뛰어넘어야 합니다.
오늘 효과가 있는 것이 내일은 효과가 없을 수도 있습니다. 클러스터가 이동되었거나 바이너리가 더 이상 호환되지 않을 수 있습니다.
이 오버헤드에 데이터 소비자 수를 곱하면 많은 시간이 낭비됩니다(슬픔도 있습니다!).
데이터 인프라 제공업체는 다음과 같은 다양한 문제에 직면해 있습니다.
Genie는 이 두 세계의 경계에 위치하여 양쪽 사람들의 삶을 단순화하도록 설계되었습니다.
데이터 과학자는 "요술 램프를 문지르고" "Genie, 프로덕션 데이터에 대해 엔진 SparkSQL을 사용하여 'Q' 쿼리를 실행하세요"라고만 말할 수 있습니다. Genie는 모든 핵심적인 세부사항을 처리합니다. 필요한 바이너리와 구성을 동적으로 어셈블하고, 작업을 실행하고, 모니터링하고, 사용자에게 완료를 알리고, 출력 데이터를 즉시 및 향후 사용에 사용할 수 있도록 만듭니다.
빅 데이터 인프라 제공업체는 리소스(클러스터, 바이너리 등)를 사용할 수 있게 만들고 사용자가 걱정할 필요가 없는 마법 논리(주어진 쿼리를 어느 클러스터로 라우팅해야 합니까?)를 연결함으로써 Genie와 협력합니다. 특정 쿼리를 어떤 버전의 Spark로 실행해야 합니까? 이 사용자가 이 데이터에 액세스할 수 있습니까? 또한 모든 작업의 세부 정보는 향후 감사 또는 디버깅을 위해 기록됩니다.
Genie는 처음부터 매우 유연하고 사용자 정의가 가능하도록 설계되었습니다. 자세한 내용은 공식 문서를 참조하세요.
Genie 빌드는 여기 Travis CI에서 실행됩니다.
나뭇가지 | 짓다 | 적용 범위(coveralls.io) |
---|---|---|
마스터(4.2.x) | ||
4.1.x | ||
4.0.x |
genie-app
독립적인 Genie 서비스 서버입니다.
genie-agent-app
자체 포함된 Genie CLI 작업 실행기.
genie-client
Genie 클라이언트는 REST API를 통해 서비스와 상호 작용합니다.
genie-web
기본 서버 라이브러리를 다시 래핑하여 서버 구성 요소를 주입하고 재정의할 수 있습니다.
genie-agent
기본 에이전트 라이브러리를 다시 래핑하여 구성 요소를 주입하고 재정의할 수 있습니다.
genie-common
, genie-common-internal
, genie-common-external
서버, 에이전트 및 클라이언트 모듈이 공유하는 내부 구성 요소 라이브러리입니다.
genie-proto
서버와 에이전트가 공유하는 Protobuf 메시지 및 gRPC 서비스 정의입니다. 이는 다른 클라이언트가 사용하기 위한 공개 API가 아닙니다.
genie-docs
, genie-demo
문서 및 데모 애플리케이션.
genie-test
, genie-test-web
다른 모듈에서 공유하는 클래스 및 유틸리티를 테스트합니다.
genie-ui
작업, 클러스터, 명령을 검색하고 시각화하는 JavaScript UI입니다.
genie-swagger
Spring Fox를 통한 Swagger 자동 구성. 활성화할 서버의 최종 배포 아티팩트에 추가합니다.
Genie는 Maven Central 및 Docker Hub에 게시합니다.
예제는 설명서의 데모 섹션을 참조하세요. Genie 설정에 대한 더 자세한 지침을 보려면 설정 섹션을 참조하세요.
Genie Python 클라이언트는 다른 저장소에서 호스팅됩니다.
Genie 아키텍처, 사용 사례, API 문서, 데모, 배포 및 사용자 정의 가이드 등에 대한 자세한 설명을 보려면 Genie 문서를 방문하세요.
질문이나 제안 사항이 있는 Genie 개발자에게 연락하려면 GitHub 문제를 사용하세요.