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

简介:

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

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

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

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

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

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


本文作者:肖远昊

来源:51CTO

相关文章
|
7天前
|
存储 人工智能 PyTorch
基于PyTorch/XLA的高效分布式训练框架
基于PyTorch/XLA的高效分布式训练框架
17 2
|
24天前
|
人工智能 算法 PyTorch
TorchAcc:基于 TorchXLA 的分布式训练框架
阿里云研究员、阿里云人工智能平台 PAI 技术负责人--林伟在GTC 2024 大会 China AI Day 线上中文演讲专场上介绍了TorchAcc,这是一个基于 PyTorch/XLA 的大模型分布式训练框架。
|
1月前
|
SQL 弹性计算 分布式计算
TiDB计算层详解:分布式计算框架与查询优化机制
【2月更文挑战第26天】本文将深入剖析TiDB的计算层,详细解析其分布式计算框架和查询优化机制。通过了解计算层的核心组件和工作原理,我们可以更好地理解TiDB如何高效处理SQL查询和计算任务。本文将从计算层的架构、任务分发、查询优化等方面展开介绍,帮助读者全面掌握TiDB计算层的关键技术和优势。
|
2月前
|
消息中间件 Kafka Apache
Apache Flink 是一个开源的分布式流处理框架
Apache Flink 是一个开源的分布式流处理框架
478 5
|
20天前
|
消息中间件 算法 Java
【亿级数据专题】「分布式服务框架」 盘点本年度我们探索服务的保障容量的三大关键方案实现
【亿级数据专题】「分布式服务框架」 盘点本年度我们探索服务的保障容量的三大关键方案实现
181 0
|
2月前
|
监控 负载均衡 Dubbo
Dubbo 框架揭秘:分布式架构的精髓与魔法【一】
Dubbo 框架揭秘:分布式架构的精髓与魔法【一】
161 0
|
1月前
|
NoSQL Java Redis
分布式锁框架Lock4j简单使用
最近项目中使用到了Lock4j的分布式锁组件,小编今天就带大家学习一下该框架,以及如何在我们项目中进行集成使用。
|
30天前
|
运维 监控 Java
推荐一款好用的Java分布式任务调度框架!
推荐一款好用的Java分布式任务调度框架!
164 0
|
3月前
|
存储 安全 JavaScript
【分布式技术专题】「授权认证体系」深度解析OAuth2.0协议的原理和流程框架实现指南(授权流程和模式)
在传统的客户端-服务器身份验证模式中,客户端请求服务器上访问受限的资源(受保护的资源)时,需要使用资源所有者的凭据在服务器上进行身份验证。资源所有者为了给第三方应用提供受限资源的访问权限,需要与第三方共享它的凭据。这就导致一些问题和局限:
368 2
【分布式技术专题】「授权认证体系」深度解析OAuth2.0协议的原理和流程框架实现指南(授权流程和模式)
|
5月前
|
SQL NoSQL 关系型数据库
分布式系列教程(21) -分布式事务解决方案(框架篇)
分布式系列教程(21) -分布式事务解决方案(框架篇)
63 0

热门文章

最新文章