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

简介:

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

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

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

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

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

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


本文作者:肖远昊

来源:51CTO

相关文章
|
14天前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
33 1
|
1月前
|
数据采集 分布式计算 MaxCompute
MaxCompute 分布式计算框架 MaxFrame 服务正式商业化公告
MaxCompute 分布式计算框架 MaxFrame 服务于北京时间2024年09月27日正式商业化!
56 3
|
1月前
|
负载均衡 监控 Dubbo
分布式框架-dubbo
分布式框架-dubbo
|
14天前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
34 0
|
1月前
|
运维 NoSQL Java
SpringBoot接入轻量级分布式日志框架GrayLog技术分享
在当今的软件开发环境中,日志管理扮演着至关重要的角色,尤其是在微服务架构下,分布式日志的统一收集、分析和展示成为了开发者和运维人员必须面对的问题。GrayLog作为一个轻量级的分布式日志框架,以其简洁、高效和易部署的特性,逐渐受到广大开发者的青睐。本文将详细介绍如何在SpringBoot项目中接入GrayLog,以实现日志的集中管理和分析。
160 1
|
1月前
|
XML 负载均衡 监控
分布式-dubbo-简易版的RPC框架
分布式-dubbo-简易版的RPC框架
|
2月前
|
数据采集 分布式计算 并行计算
Dask与Pandas:无缝迁移至分布式数据框架
【8月更文第29天】Pandas 是 Python 社区中最受欢迎的数据分析库之一,它提供了高效且易于使用的数据结构,如 DataFrame 和 Series,以及大量的数据分析功能。然而,随着数据集规模的增大,单机上的 Pandas 开始显现出性能瓶颈。这时,Dask 就成为了一个很好的解决方案,它能够利用多核 CPU 和多台机器进行分布式计算,从而有效地处理大规模数据集。
103 1
|
1月前
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
49 0
|
2月前
|
Go API 数据库
[go 面试] 分布式事务框架选择与实践
[go 面试] 分布式事务框架选择与实践
|
2月前
|
缓存 分布式计算 Java
详细解读MapReduce框架中的分布式缓存
【8月更文挑战第31天】
30 0

热门文章

最新文章