写点什么

Netflix 发布 Genie3

  • 2017-07-16
  • 本文字数:946 字

    阅读完需:约 3 分钟

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 还支持基于 OAuth2 X.509 公钥证书。

查看英文原文: Netflix Announces Genie 3

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

2017-07-16 18:423710
用户头像
蔡芳芳 InfoQ 总编辑

发布了 850 篇内容, 共 624.6 次阅读, 收获喜欢 2826 次。

关注

评论

发布
暂无评论
发现更多内容

使用递增计数器的线程同步工具 —— 信号量,它的原理是什么样子的?

程序员小航

Java 源码 源码阅读 JUC Semaphore

我的 2020 iOS BAT面试心得:Bigo、字节、快手、伴鱼、百度、微博等

iOSer

ios 面试

架构设计:微服务架构如何划分?这6个标准原则让你一目了然

互联网应用架构

微服务 架构设计

rpc探路(一)

余歌

谈谈力软快速开发平台B/S专业报表工具

Philips

敏捷开发 开发工具

JavaScript原型机制

Clloz

Java 原型

分布式数据库拆分常用之法

华为云开发者联盟

数据库 架构 分布式

java安全编码指南之:输入校验

程序那些事

java安全编码 安全编码规范 java安全编码指南

高难度对话读书笔记

wo是一棵草

站在巨人的肩膀上学习:五位阿里大牛联手撰写的《深入浅出Java多线程》

Java架构之路

Java 编程 面试 并发编程 多线程

当代开发者的好帮手,浅析.NET敏捷开发框架的优势与特点

Learun

敏捷开发 开发工具

智能商业时代的思考(三)数据驱动

刘旭东

大数据 数据驱动 智能商业

大作业2

雪涛公子

Golang 反射性能优化

余歌

性能优化 Go 语言

Java开发连Redis都不会还想跳槽涨薪?先把Redis的知识点吃透再说

Java架构之路

Java redis 编程 程序员 面试

第十一周.命题作业

刘璐

springboot2.3手册:多租户及自动创建数据,这样做

互联网应用架构

springboot mybaitsplus 多租户 自动填充基础信息

实践解读丨Python 面向对象三大特征之多态

华为云开发者联盟

编程 面向对象

(0)skynet序章

休比

从linux源码看socket的阻塞和非阻塞

无毁的湖光

Linux TCP socket Linux Kenel

Java ConcurrentHashMap 高并发安全实现原理解析

vivo互联网技术

Java hashmap 多线程 高并发

Kotlin 插件1.4.10使用报错

三爻

android kotlin

测试工程师在敏捷项目中扮演什么角色?

禅道项目管理

程序员 敏捷开发 测试

RDS、DDS和GaussDB理不清?看这一篇足够了!

华为云开发者联盟

数据库 华为云 RDS

科大讯飞再握一国产核心技术,可高精细拾取30分贝超小音量

Talk A.I.

收藏手册:该不该用Lombok?15个常用注解全解析

互联网应用架构

lombok

拆分链表、图解HTTPS、Zookeeper原理、如何成为技术专家、架构师三板斧 John 易筋 ARTS 打卡 Week 18

John(易筋)

ARTS 打卡计划 图解https ZooKeeper原理 架构师三板斧 拆分链表

Golang框架探索(一)

余歌

Web框架 Go web

收藏手册:Docker安装RabbitMQ,只需3步

互联网应用架构

Docker RabbitMQ

Java新特性:数据类型可以扔掉了?

Java 编程 架构师

LeetCode题解:144. 二叉树的前序遍历,递归,JavaScript,详细注释

Lee Chen

大前端 LeetCode

Netflix发布Genie3_大数据_Dylan Raithel_InfoQ精选文章