我听说过许多帮助人们处理数据的工具/框架(大数据环境)。
一种称为 Hadoop,另一种称为 noSQL 概念。处理点有什么区别?
它们是互补的吗?
我听说过许多帮助人们处理数据的工具/框架(大数据环境)。
一种称为 Hadoop,另一种称为 noSQL 概念。处理点有什么区别?
它们是互补的吗?
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