Genie は、Netflix によって開発されたフェデレーテッド ビッグ データ オーケストレーションおよび実行エンジンです。
Genie の価値は、Genie が解決する問題の観点から最もよく説明されます。
ビッグデータ インフラストラクチャは複雑であり、常に進化しています。
データ利用者 (データ サイエンティストまたはその他のアプリケーション) は、単純なクエリを実行するために多くのハードルを飛び越える必要があります。
今日うまくいったものでも、明日はうまくいかないかもしれません。クラスターが移動した、バイナリに互換性がなくなった、などの可能性があります。
このオーバーヘッドとデータ利用者の数を掛け合わせると、膨大な時間の無駄 (そして悲惨な!) が発生します。
データ インフラストラクチャ プロバイダーは、次のようなさまざまな問題に直面しています。
Genie は、これら 2 つの世界の境界に位置し、どちらの側の人々の生活も簡素化するように設計されています。
データ サイエンティストは、「魔法のランプをこすり」、「ジーニー、本番データに対してエンジン 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 Issues を使用してください。