Hadoop和noSQL有什么区别

数据挖掘 nosql 工具 加工 apache-hadoop
2021-10-03 01:36:07

我听说过许多帮助人们处理数据的工具/框架(大数据环境)。

一种称为 Hadoop,另一种称为 noSQL 概念。处理点有什么区别?

它们是互补的吗?

2个回答

Hadoop 不是数据库,hadoop 是一个完整的生态系统。

hadoop 生态系统

大多数人在谈论 hadoop 时会提到mapreduce作业。mapreduce 作业将大数据集拆分为一些小数据块,并将它们分布在一组节点上以继续进行。最后,来自每个节点的结果将再次组合为一个数据集。


假设您将一组<String, Integer>城市内某些社区的人口加载到 hadoop 中,并且您希望获得每个城市整个社区的平均人口(图 1)。

图1

    [new york, 40394]
    [new york, 134]
    [la, 44]
    [la, 647]
    ...

现在 hadoop 将首先使用键映射每个值(图 2)

图 2

[new york, [40394,134]]
[la, [44,647]]
...

在映射之后,它将每个键的值减少到一个新值(在这个例子中是每个键的值集的平均值)(图 3)

图 3

[new york, [20264]]
[la, [346]]
...

现在 hadoop 将完成所有工作。您现在可以将结果加载到 HDFS(hadoop 分布式文件系统)或任何 DBMS 或文件中。

这只是hadoop 可以做的一个非常基本简单的例子。您可以在 hadoop 中运行更复杂的任务。

正如您在问题中已经提到的,hadoop 和 noSQL 是互补的。我知道一些设置,即来自传感器的数十亿数据集存储在 HBase 中,然后通过 hadoop 最终存储在 DBMS 中。

NoSQL 是一种存储不需要某种关系的数据的方法。其设计的简单性和水平扩展能力,它们存储数据的一种方式是key : value配对设计。这适用于类似于 Hadoop 的处理。NoSQL 数据库的使用实际上取决于一个问题的类型。

这是一个很好的维基百科链接NoSQL

Hadoop 是一个旨在存储和处理大量数据的系统。它是一个分布式文件系统dfs。这样做的原因是其设计的核心是假设硬件故障是常见的,因此制作同一条信息的多个副本并将其传播到多台机器和机架上,所以如果一台出现故障,没问题,我们还有两本。这也是来自维基百科的 Hadoop 的一个很好的链接,在我看来,你会看到它不仅仅是存储,还有处理: Hadoop