BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Netflix发布Genie3

| 作者 Dylan Raithel 关注 9 他的粉丝 ,译者 蔡芳芳 关注 4 他的粉丝 发布于 2017年7月17日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Genie是一个分布式的RESTful架构的任务编排引擎,用于Netflix的数据平台。Genie有两个主要使用场景:第一个是创建和提交自定义的数据处理任务请求,其次是设置本地环境来开发和测试在Genie集群上运行的新应用程序和任务。

Netflix宣布Genie3支持几项新特性,包括对较早的任务执行引擎进行重新设计、增强安全功能、增加依赖关系缓存,同时API也有更新。

Genie引擎的早期版本不支持领导选举,导致工作节点不必要地执行相同的任务。现在,通过Zookeeper或手动配置属性设置单个节点的IP地址即可支持集群领导选举。早期版本中所有任务的单一运行脚本运行时间过长,无法满足安全隔离的要求,并降低了在项目扩张阶段项目维护者引入代码更改时隔离风险的能力。Genie3引入新的方法,使用改进的数据模型来保证运行时间并实现了配置的模块化、描述性和版本化。

在Genie3中,任务由若干抽象过程组成,以确保可扩展性。应用程序的运行时间和可执行命令可以通过其API进行配置。Genie独立于特定运行时配置或待处理数据,生成Spark、Hadoop、Pig、Hive、PrestoDB和Sqoop等类型的应用程序运行脚本。作为开发人员,本地模式工作流能够为不同运行时生成运行脚本,同时还集成了REPL和stdout的底层实现以支持测试和开发。

Genie3的API组件覆盖了Genie的全部功能。

集群API、命令API、应用API和作业API提供了操作Genie3所需的语义。集群API负责管理Genie的逻辑worker集群,不包括基础架构本身。集群API还协助管理集群相关的元数据、启动时worker集群的基准状态、可用于集群的命令和基准包的安装。从这一点来看它与Puppet或Chef类似,只是它专注于Genie应用程序命令在运行时所需的工作集群的特定安装包和配置。这样可以使应用程序在启动时更加灵活、不受限制,否则应用程序就需要在启动时下载并安装依赖包。

命令API的语义在底层应用程序上运行,并且必须指向特定应用程序,但允许定义自己的启动和运行时配置。

作业API允许Genie用户调度或执行一组命令,并跟踪有关作业执行状态的数据。Genie3附带了用于MySql、PostgreSQL和HSQLDB的JDBC驱动程序,用于支持Genie及其API的存储配置。

Genie 3还支持基于OAuth2X.509公钥证书。

查看英文原文:Netflix Announces Genie 3

感谢张卫滨对本文的审校。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT