我可以使用Hadoop进行集群分析吗?我可以将Hadoop挂钩到MongoDB吗?

时间:2014-01-25 03:30:14

标签: hadoop

我是Hadoop的新手,我浏览了几个博客,浏览了几本关于某个主题的书籍。为了指导我进一步学习,我需要回答这两个问题:

  1. 我可以用Map-Reduce做多少钱?从示例中我看到我可以做min(),max(),sum(),count()。你可以很容易地做average()甚至standard_deviation(),但是它呢?如果我想运行一个查询,以便“购买X的客户也购买了Y”(在SQL术语中将连接表添加到自身中),该怎么办?如果我想进行图形分析或聚类分析,那么Haddop的地图减少了什么帮助,或者我仍然非常依赖自己?
  2. 如果我有现有的数据库,让我们说它是大的(1PB)并分发,让我们说它是MongoDB的集群,分片和所有这些。我可以将Haddop挂钩到我现有的MondoDB分片,还是需要复制我的数据(并且在更改时分别保持同步)。后者,如果这是我真正需要做的,听起来像是昂贵的过程,Hadoop中有什么东西可以帮助我做到这一点。 详细的详细答案或链接将非常感激。

1 个答案:

答案 0 :(得分:0)

  1. MapReduce是一种非常通用的计算结构,虽然并不适用于所有情况,但它可以灵活地用于各种各样的问题。有关您所描述内容的示例,您可以参考Mahout:http://mahout.apache.org/users/clustering/clusteringyourdata.html

  2. 使用mongodb连接器,您可以直接访问mongo数据库作为mapreduce inputformat,而无需将数据同步到HDFS:http://docs.mongodb.org/ecosystem/tools/hadoop

  3. 或者mongo本身允许您在mapreduce中编写查询以直接由数据库执行。我建议在与hadoop / hdfs连接之前,以这种方式尽可能多地聚合数据,以减少两个系统之间传输的潜在数据量。