![]() |
1
5
如果要在许多系统上扩展处理问题,必须做两件事:
所以,如果你是从一个关系模型开始,那么主要的障碍是你有关系。拥有这些关系在关系数据库中是一项巨大的资产,但在。。。当试图扩大规模时。 从关系部分到独立部分的最简单方法是跳转并将数据反规范化为包含所有内容的记录,并集中在要处理的部分。然后,您可以将它们分布在一个巨大的集群上,并在处理完成后使用结果。
回到你的问题: #你在ETL场景中使用过Hadoop吗? 是的,输入是Apache日志文件,加载和转换包括解析、规范化和过滤这些日志行。结果不能放入一个正常的关系数据库! #MapReduce概念是分布式计算的普遍答案吗?还有其他同样好的选择吗? MapReduce是一个非常简单的处理模型,对于任何能够分割成许多100%独立的小部分的处理问题都非常有用。MapReduce模型非常简单,据我所知,任何可以分割成独立部分的问题都可以写成MapReduce的一系列步骤。
我不知道此时此刻有一个更好的模型来实现。 #我的理解是MapReduce应用于大型数据集的排序/分析/分组/计数/聚合等,我的理解是否正确? 是的,这是最常见的应用程序。 |
![]() |
2
1
MapReduce是“一些”类问题的“一个”解决方案。它并不能解决所有的分布式系统问题——把大型的TPS系统想象成银行、电信或电信信号系统——那么MR可能是无效的。但对于非实时数据处理,MR的性能非常出色,您可能会认为这是一种大规模的ETL。 |
![]() |
3
1
我个人的理解是,MapReduce对于大量“非结构化”数据特别有用;也就是说,它对于强制使用某种结构(基本上,有效地对大型非结构化数据集提供“一阶”操作)非常有用。然而,对于非常大且相对“紧密绑定”的数据集(即不同数据元素之间的强关联),这(在我的理解中)不是一个很好的解决方案。 |