分布式部署

Easy Scheduler 1.0.3 发布,分布式工作流任务调度系统

喜夏-厌秋 提交于 2019-11-25 22:44:49
Easy Scheduler Release 1.0.3 Easy Scheduler 1.0.3是1.x系列中的第四个版本。 新特性: [ EasyScheduler-254 ] 流程定义删除和批量删除 [ EasyScheduler-347 ] 任务依赖增加“今日” [ EasyScheduler-273 ]sql任务添加title [ EasyScheduler-247 ]API在线文档 [ EasyScheduler-319 ] 单机容错 [ EasyScheduler-253 ] 项目增加流程定义统计和运行流程实例统计 [ EasyScheduler-292 ] 启用SSL的邮箱发送邮件 [ EasyScheduler-77 ] 定时管理、工作流定义添加删除功能 [ EasyScheduler-380 ] 服务监控功能 [ EasyScheduler-380 ] 项目增加流程定义统计和运行流程实例统计 增强: [ EasyScheduler-192 ] 租户删除前可以考虑校验租户和资源 [ EasyScheduler-376 ] 删除实例时候,没有删除对应zookeeper队列里的任务 [ EasyScheduler-185 ] 项目删除工作流定义还存在 [ EasyScheduler-206 ] 优化部署,完善docker化支持 [ EasyScheduler-381

看完这篇文章你就清楚的知道 ZooKeeper的 概念了

ぃ、小莉子 提交于 2019-11-25 22:44:38
前言 相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 是个什么东西吗?如果别人/面试官让你给他讲讲 ZooKeeper 是个什么东西,你能回答到什么地步呢? 我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 solr 集群的时候,我使用到了 ZooKeeper 作为 solr 集群的管理工具。前几天,总结项目经验的时候,我突然问自己 ZooKeeper 到底是个什么东西?想了半天,脑海中只是简单的能浮现出几句话:“①Zookeeper 可以被用作注册中心。 ②Zookeeper 是 Hadoop 生态系统的一员;③构建 Zookeeper 集群的时候,使用的服务器最好是奇数台。” 可见,我对于 Zookeeper 的理解仅仅是停留在了表面。 所以,通过本文,希望带大家稍微详细的了解一下 ZooKeeper 。如果没有学过 ZooKeeper ,那么本文将会是你进入 ZooKeeper 大门的垫脚砖。如果你已经接触过 ZooKeeper ,那么本文将带你回顾一下 ZooKeeper 的一些基础概念。 最后,本文只涉及 ZooKeeper 的一些概念,并不涉及 ZooKeeper 的使用以及 ZooKeeper 集群的搭建。 网上有介绍 ZooKeeper 的使用以及搭建 ZooKeeper 集群的文章

TensorFlow分布式实践

馋奶兔 提交于 2019-11-25 22:27:52
大数据时代,基于单机的建模很难满足企业不断增长的数据量级的需求,开发者需要使用分布式的开发方式,在集群上进行建模。而单机和分布式的开发代码有一定的区别,本文就将为开发者们介绍,基于TensorFlow进行分布式开发的两种方式,帮助开发者在实践的过程中,更好地选择模块的开发方向。 基于TensorFlow原生的分布式开发 分布式开发会涉及到更新梯度的方式,有同步和异步的两个方案,同步更新的方式在模型的表现上能更快地进行收敛,而异步更新时,迭代的速度则会更加快。两种更新方式的图示如下: 同步更新流程 (图片来源:TensorFlow:Large-Scale Machine Learning on Heterogeneous Distributed Systems) 异步更新流程 (图片来源:TensorFlow:Large-Scale Machine Learning on Heterogeneous Distributed Systems) TensorFlow是基于ps、work 两种服务器进行分布式的开发。ps服务器可以只用于参数的汇总更新,让各个work进行梯度的计算。 基于TensorFlow原生的分布式开发的具体流程如下: 首先指定ps 服务器启动参数 –job_name=ps: python distribute.py --ps_hosts=192.168.100.42

分布式工作流任务调度系统Easy Scheduler正式开源

核能气质少年 提交于 2019-11-25 20:47:10
分布式工作流任务调度系统Easy Scheduler正式开源 1、背景 在多位技术小伙伴的努力下,经过近2年的研发迭代、内部业务剥离及重构,也经历一批种子用户试用一段时间后, EasyScheduler 终于迎来了第一个正式开源发布版本 -- 1.0.0 。 相信做过数据处理的伙伴们对开源的调度系统如oozie、azkaban、airflow应该都不陌生,在使用这些调度系统中可能会有这样的体验:比如配置工作流任务不能可视化、任务的运行状态不能实时在线查看、 任务运行时不能暂停、不能支持参数传递、不能补数、不能多租户使用、调度系统不高可用等等问题所烦扰过。 Easy Scheduler 正是在这种背景下应运而生,其目标就是为使调度更加easy,更可以从其中文名“易调度”看出我们的初衷。 2、设计特点 Easy Scheduler 是一个分布式工作流任务调度系统,主要解决数据研发ETL错综复杂的依赖关系所带来的各种问题。 其主要目标如下: 以DAG图的方式将Task按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态 支持丰富的任务类型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql),Python,Sub_Process、Procedure等 支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警

分布式系统统一登录的实现

筅森魡賤 提交于 2019-11-25 19:04:35
一、 运用Redis缓存将Token存入缓存; 将 session 全部存放到 Redis 中,Redis 全局管理数据,因为独特的 key 过期时间特性,对应 session 的过期特性,也很般配。另外,Redis 比较轻量,性能也很好。 用户在登录的时候如果通过鉴权体系的鉴定,可以生成 Token 数据,以 Token 作为键名,用户登录信息作为值,写入到 Redis 中,设置过期时间,并将 Token 写入 cookie 中。用户下次进行敏感操作的时候,通过拦截器判断用户请求头中 cookie 的 token 字段是否能在 Redis 中查询到数据。如果能查询到,就允许用户进行操作并刷新登录有效期,否则就返回登录 URL,这样一个分布式系统的单点登录系统就实现了 二、配置负载均衡策略时使用源地址哈希法。相同的IP客户端,如果服务器列表不变,将映射到同一个后台服务器进行访问 一致性哈希算法与C++实现 三、Spring Security的session共享 1.构建一个SpringSecurity应用 1.1Spring Boot 版本是 2.0.4.RELEASE,引入security启动器 < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring -

Leaf——美团点评分布式ID生成系统

你。 提交于 2019-11-25 18:54:28
在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。概括下来,那业务系统对ID号的要求有哪些呢? 全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求。 趋势递增:在MySQL InnoDB引擎中使用的是聚集索引,由于多数RDBMS使用B-tree的数据结构来存储索引数据,在主键的选择上面我们应该尽量使用有序的主键保证写入性能。 单调递增:保证下一个ID一定大于上一个ID,例如事务版本号、IM增量消息、排序等特殊需求。 信息安全:如果ID是连续的,恶意用户的扒取工作就非常容易做了,直接按照顺序下载指定URL即可;如果是订单号就更危险了,竞对可以直接知道我们一天的单量。所以在一些应用场景下,会需要ID无规则、不规则。 上述123对应三类不同的场景,3和4需求还是互斥的,无法使用同一个方案满足。 同时除了对ID号码自身的要求,业务还对ID号生成系统的可用性要求极高,想象一下,如果ID生成系统瘫痪,整个美团点评支付、优惠券发券、骑手派单等关键动作都无法执行,这就会带来一场灾难。