反思 | 分布式框架是必须的吗?

本文讲的是反思 | 分布式框架是必须的吗,【编者的话】本文主要讲述了通过规范化处理流程,可以使用相同的处理流程来处理流式或者批量处理任务,例如Hadoop和Storm,从而提高重用性。

当有人问起该如何处理大数据问题时,他们总是被指引到现存的产品中,例如Hadoop或者Storm。虽然这些产品非常棒,但也引发了一些问题。首先,就我个人的经验来看,为了获得最佳的处理结果,你必须使用这些框架首选的语言或者虚拟机编写你的代码,典型的就是JVM。当语言或者虚拟机不适用时,就意味着你必须重写你的代码来适应这些框架。同样,像Hadoop和Storm这两种框架所做的事情非常不一样,这就给代码的重用增加了更大的困难。如果你想做流式和批量处理分析,你就需要这两种框架。当然,有些方法能够做到这一点,但我不清楚这种方法是否有更多的选择性,或者这种方法是否很难进行维持。

目前,我正在使用一个分布式系统并且它没有使用任何上述技术。这个分布式系统运行的很好,虽然它不完美,但是它的确实现了。这就引发我思考分布式框架是否是必须的。实际上,MapReduce和Streaming框架的真正区别是什么?数据通过不同的处理流程串行化,这仅仅是如何将数据链接到一起以及不同处理流程发出数据频率的问题。

因此,也许我们真正需要的是规范化如何让各种处理流程并存以及如何将它们连结在一起。我相信我们可以通过一些现有的技术来做到这一点。Mesos和Kubernetes可以在一个集群中用来执行处理流程。队列化技术例如Kafka和NSQ能够在不同的处理流程间传递消息。处理流程可以使用不同的语言实现,并且可以通过Docker或者类似产品封装在容器中来管理其依赖。

我个人发现这种方式是比较合适的,这种解决方法聚焦在不同处理流程之间的通信问题。通过制定相关的协议,我相信可以将不同的处理流程解耦合。同样,当需要时分析过程中使用到的技术也能更加容易地置换出来。举个例子来说,Python能够用来塑造一个分析原型,当性能成为更为严重的问题时,它可以使用编译型语言D或者Go进行重写。当相同的处理流程无需修改代码就可以适用于流式处理和批量处理或者MapReduce任务时,我们也能从中获得更好的重用性。

当然,这只是一个粗略的想法,也没有覆盖这些系统的所有案例和各个方面,但我相信这是一个好的开始。我更加希望看到的是有个工程能够更加深入地研究下去,并且能够为这些系统制定一份详细说明书。如果需要,这种方法可以按照详细说明书提供运行库来确保兼容性,也许更重要的是描述在一个兼容性问题的事件中该做什么。

大家有什么想法呢?

原文连接:Are distributed frameworks necessary?(翻译:肖远昊 审校:魏小红)

原文发布时间为:2015-09-23

本文作者:xiaoyh

本文来自合作伙伴DockerOne,了解相关信息可以关注DockerOne。

原文标题:反思 | 分布式框架是必须的吗?

时间: 2024-09-15 18:42:20

反思 | 分布式框架是必须的吗?的相关文章

JEESZ分布式框架--单点登录集成方案

  JEESZ分布式框架单点登录集成方案第一节:单点登录简介 第一步:了解单点登录 SSO主要特点是: SSO应用之间使用Web协议(如HTTPS) ,并且只有一个登录入口. SSO的体系中有下面三种角色: 1) User(多个) 2) Web应用(多个) 3) SSO认证中心(一个) SSO实现包含以下三个原则: 1) 所有的登录都在 SSO 认证中心进行.   2) SSO认证中心通过一些方法来告诉Web应用当前访问用户究竟是不是通过认证的用户.   3) SSO认证中心和所有的 Web 应

淘宝分布式框架fourinone

淘宝分布式框架fourinone 彭渊 •分布式幵行计算•分布式协调•分布式缓存•消息队列•FTTP分布式文件操作•分布式作业调度平台•应用场景:上亿数据排序 淘宝分布式框架fourinone

Gleasy首席架构师薛珂:以开源为基础实现分布式框架及中间件

注:本文首发于CSDN,转载请标明出处. [编者按]本文为在线办公平台 Gleasy的联合创始人.技术团队掌门人薛珂所写,他给我们分享了Gleasy一路走来的技术实战.据悉,发布近三年的Gleasy,已经成功积攒50,000多家企业用户,在应对在海量存储以及高并发前提下的各种基本问题的解决方面深有心得. 与此同时,2015年3月18日,Gleasy将正式发布3.0版"约了",并推出英文版.繁体版,以及启动互联网服务合作伙伴邀约计划. 以下为正文: Gleasy作为云技术服务提供商,主要

WCF分布式开发步步为赢(1):WCF分布式框架基础概念

众所周知,系统间的低耦合一直是大型企业应用系统集成追寻的目标,SOA面向服务架构的出现为我们的如何利用现有企业系统资源进行企业ERP系统设计和实现提供了重要的参考原则.SOA如此炙手可热,各大厂商都推出了自己的中间件产品,比如Oracle Fusion和 SAP NetWeaver,IBM.BEA等企业也推出了自己基于SOA的解决方案.基于J2EE平台的SOA架构设计中的一个重要概念就是EJB企业服务总线,作用是实现各个系统的数据交互.而.NET平台上,WCF就是微软为各个系统的数据交互提供通讯

分布式框架简介SSM组合+ springmvc+mybatis+shiro+restful+bootstrap

摘要: 服务框架:Dubbo.zookeeper.Rest服务 缓存:Redis.ehcache 消息中间件:ActiveMQ 负载均衡:Nginx 分布式文件:FastDF... 开发工具 1.Eclipse IDE:采用Maven项目管理,模块化. 2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表.一对多.树结构.生成后的代码如果不需要注意美观程度,生成后即可用. 技术选型(只列了一部分技术) 1.后端 服务框架:Dubbo.zookeeper.R

使用dubbo分布式框架开发项目

Dubbo概述 •Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案 •Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点 Dubbo背景 Dubbo的简介 •Dubbo是一个分布式服务框架,Dubbo的架构如图所示: l节点角色说明: lProvider: 暴露服务的服务提供方. lConsumer: 调用远程服务的服务消费方. l

多线程分布式框架

问题描述 以前都是做比较弱智的单线程,现在要做多线程还是多台服务器协调控制的有点蒙,忘大神们给点指点--目前单个线程的业务代码都已经完成,但是想做成一个主服务器控制N台服务器,主服务器发送参数给子服务器,子服务器执行,完成后反馈消息给主服务器,每台子服务器运行多个线程.请问有没有现成的框架可以套用呢?对这块一窍不通~~~求助~~~ 解决方案 解决方案二:socket解决方案三:zookeeper.你问题的核心是分布式服务器的通信问题.只要在你原来实现的核心逻辑基础上加上通信控制部分就ok了解决方

JEESZ分布式框架--开发环境部署

环境搭建: 1.环境准备 1.开发工具: Eclipse IDE(建议使用高一点的版本) 2.JDK版本:JDK1.7 3.项目管理: Maven3.1.1 2.安装步骤 1.安装jdk1.7并配置环境变量(相信大家都会做,这里不再做重复的说明) 2.安装maven:maven安装过程就是解压缩的过程(我已经帮大家解压了, 目录:E:\myprj\jeesz-maven\apache-maven-3.1.1),为了方便大家,这边已经提供了相关的安装包,会在打包的目录下共享. 3.mavan配置环

Dubbo分布式服务框架入门(附工程)

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 目录(?)[+] 要想了解Dubbo是什么,我们不防先了解它有什么用.  使用场景:比如我想开发一个网上商城项目,这个网上商城呢,比较复杂,分为pc端web管理后台,微信端销售公众号,那么我们分成四个项目,pc端网站,微信端网站,还有一个后台服务项目,接口服务项目. 对数据库的操作的相关接口放到接口服务项目,这些接口的实现放在后台服务项目,pc端网站和微信端网站都依赖接口服务项目,调用后台数