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

简介:

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

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

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

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

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

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


本文作者:肖远昊

来源:51CTO

相关文章
|
12天前
|
数据采集 分布式计算 并行计算
Dask与Pandas:无缝迁移至分布式数据框架
【8月更文第29天】Pandas 是 Python 社区中最受欢迎的数据分析库之一,它提供了高效且易于使用的数据结构,如 DataFrame 和 Series,以及大量的数据分析功能。然而,随着数据集规模的增大,单机上的 Pandas 开始显现出性能瓶颈。这时,Dask 就成为了一个很好的解决方案,它能够利用多核 CPU 和多台机器进行分布式计算,从而有效地处理大规模数据集。
37 1
|
7天前
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
21 0
|
10天前
|
缓存 分布式计算 Java
详细解读MapReduce框架中的分布式缓存
【8月更文挑战第31天】
11 0
|
1月前
|
Go API 数据库
[go 面试] 分布式事务框架选择与实践
[go 面试] 分布式事务框架选择与实践
|
14天前
|
机器学习/深度学习 编译器 PyTorch
自研分布式训练框架EPL问题之吸引社区参与共建如何解决
自研分布式训练框架EPL问题之吸引社区参与共建如何解决
|
14天前
|
并行计算 算法 调度
自研分布式训练框架EPL问题之提高GPU利用率如何解决
自研分布式训练框架EPL问题之提高GPU利用率如何解决
|
14天前
|
算法 异构计算
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
|
14天前
|
自然语言处理 Java
自研分布式训练框架EPL问题之实现显存的极致优化如何解决
自研分布式训练框架EPL问题之实现显存的极致优化如何解决
|
14天前
|
存储 异构计算
自研分布式训练框架EPL问题之通过strategy annotation实现流水并行如何解决
自研分布式训练框架EPL问题之通过strategy annotation实现流水并行如何解决
|
14天前
|
机器学习/深度学习 分布式计算 TensorFlow
自研分布式训练框架EPL问题之降低分布式训练的使用门槛如何解决
自研分布式训练框架EPL问题之降低分布式训练的使用门槛如何解决
下一篇
DDNS