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 Issues