hadoop - map 简化和RDBMS

标签 hadoop mapreduce

我正在阅读hadoop权威指南,它写的是Map Reduce,它适合于更新数据库的较大部分,它使用Sort&Merge来重建数据库,具体取决于传输时间。

另外,RDBMS还适合仅更新大型数据库的较小部分,它使用的B树受到查找时间的限制

谁能详细说明这两种说法的真正含义?

最佳答案

我不确定这本书是什么意思,但是如果您仍然有原始数据,通常您会做一个简化 map 的工作来重建整个数据库/任何东西。

hadoop真正的好处是它是分布式的,因此性能并不是真正的问题,因为您可以添加更多机器。

让我们举个例子,您需要重建一个具有10亿行的复杂表。使用RDBMS,您只能垂直扩展,因此,您将更多地取决于CPU的功能以及算法的速度。您将使用一些SQL命令来完成此操作。您将需要选择一些数据,对其进行处理,进行填充等。因此,您很可能会受到搜索时间的限制。

使用hadoop map reduce,您可以只添加更多机器,因此性能不是问题。假设您使用10000个映射器,这意味着该任务将被划分为10000个映射器容器,并且由于hadoop的性质,所有这些容器通常已经在本地将其硬盘上的数据存储了。每个映射器的输出始终是其本地硬盘驱动器上的键值结构格式。这些数据由映射器使用键进行排序。

现在的问题是,他们需要将数据组合在一起,因此所有这些数据都将被发送到 reducer 。这是通过网络发生的,如果拥有大数据,通常是最慢的部分。精简器将接收所有数据,并将它们合并分类以进行进一步处理。最后,您可以将一个文件上传到数据库中。

如果您有大量数据,则从映射器到化简器的传输通常花费最长时间,而网络通常是您的瓶颈。也许这取决于传输时间。

关于hadoop - map 简化和RDBMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33448268/

相关文章:

hadoop - 使用mapreduce解析多个XML文件数据

hadoop - pig :错误1045:无法推断出COUNT的匹配函数,因为它们是多个或都不适合。请使用显式强制转换

hadoop - 如何在 Bluemix 中创建空间

java - Hbase 扫描与 Mapreduce 的动态计算

java - map 减少工作失败

java - 如何在hadoop2中处理多个(100个)输入文件,其中每个文件的大小小于10MB?

java - 如何修改此 Mapreduce 代码以更改实体的命名空间?

java - 使用Hadoop库序列化Java对象

hadoop - 配置单元中的 IndexOutOfBoundsException 索引

hadoop - Hadoop 1.03和Nutch 1.5问题