如何使用Hadoop mapreduce的集中式资源



人们似乎非常热衷于将现有的应用程序迁移到Hadoop基础设施中,在许多公司或组织中,似乎有一个口头禅:如果你有很多数据,那就使用Hadoop。我想了解现有解决方案对集中式(大(数据的依赖如何影响Hadoop是否是一个好的解决方案的决定。

在许多情况下,您典型的"大数据"应用程序希望尽可能高效快速地处理数十亿件事情,例如文档、消息、文件。我看到了以映射/reduce方式在许多节点之间分配该工作的优势。然而,通常情况下,为了能够处理这些东西,处理函数(映射器(必须在某处查找东西。例如,将查询发送到SQL服务器,在图形数据库中查找某些内容,在巨大的键/值存储中查找数据。此外,每个函数可能需要大量的内存来存储/缓存处理其事物所需的所有数据。

这是违反Hadoop的做事方式,还是通常以这种方式做事?最重要的是,除了将处理工作分散在一堆Hadoop节点上之外,您还需要找到一种方法来并行化或升级您的"中央服务器"(SQL,图形数据库等(,以便它们可以回答来自并行Hadoop节点的所有请求,不是吗?

当被parallized的处理依赖于大型中央数据存储中的快速查找时,转向使用Hadoop的最佳方法是什么?

这就是为什么你有像Cassandra这样的解决方案。当然,您不能只是大规模并行化计算,而是将数据存储保留为单个实体。还需要并行化相关资源。

最新更新