0

我对如何在 hadoop 中检索数据有些困惑。

  1. mapReduce 是为了从 hadoop 集群(HDFS)中检索数据还是仅限于聚合。

  2. Hadoop支持顺序搜索,比方说hadoop并行处理数据,搜索和遍历每个节点的处理有什么不同呢?

  3. 纠正我如果我错了:是否每个节点的块是按顺序读取的,但许多节点在集群中是并行处理的。我的意思是两个作业在两个不同的节点上并行运行,每个作业同时对每个节点的所有相关块进行顺序搜索。例如:Node1:Block A. Block B,Block C Node2:Block D,Block E,Block F 我的假设:Block A-> Block B-> Block C || D座、E座、F座

其中 -> 是顺序的 || 是平行的。

  1. 假设我想在过去 2 年从公司获得最大福利(现金)的四名员工中搜索一名。搜索和检索将如何在这里工作。
4

1 回答 1

1
  1. MapReduce 作业可以从 HDFS 读取数据。其他数据源也是可能的。

  2. 请查看MapReduce 教程并分析 map reduce 工作流程。

  3. 它严格取决于输入数据大小和将在给定节点上并行运行的可用工作程序(map / reduce 任务)的数量。如果每个节点有 3 个工作人员,那么所有三个块(分别为 A、B、C 和 D、E、F)都可以并行处理。块本身中的数据是从磁盘顺序读取的。

就示例而言,您的方法可能类似于以下内容:

  • 映射任务:处理所有员工并在单个数据块中计算员工之间的局部最大收益并输出该最大值(即作为一对[local_max_benefits, employee_id]
  • reduce 任务:迭代 map 任务中的局部最大值,并将全局最大值计算为[local_max_benefits, {employee_id1, ..., employee_idN}].
于 2013-10-23T18:20:04.390 回答