Answers:
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数据库的使用实际上取决于所要解决的问题的类型。
这是一个不错的Wikipedia链接NoSQL
Hadoop是一个旨在存储和处理大量数据的系统。它是一个分布式文件系统dfs。这样做的原因是其设计的核心是假设硬件故障是常见的,因此会复制同一条信息,并将其分布在多台机器和机架上,因此,如果出现故障,没问题,我们还有两个副本。这也是Wikipedia中Hadoop的重要链接,您会发现,在我看来,它不仅是存储,还包括处理: Hadoop