gpt4 book ai didi

python - MapReduce 中的数据如何在数据节点之间分区和分布?

转载 作者:可可西里 更新时间:2023-11-01 17:01:16 24 4
gpt4 key购买 nike

我是 MapReduce 的新手,我的任务是处理大数据(记录行)。我应该使用的一件事是我的映射器中特定记录的行号,然后 reducer 根据映射器处理行号信息。

例如,假设现在我有一个非常大的input.txt,每一行看起来是这样的:

1. Melo, apple, orange
2. orange, perl
3. apple, banana, car
...
10000. Apple
...

如果我想根据苹果的出现行数来计算苹果的出现,然后计算这些不同水果之间的关系,比如:

Apple => orange

我可以将键/值对中的值设为行号列表吗?但是由于我不知道如何为不同的数据节点分区数据,因此原始输入文件的行号信息将会丢失。我不知道数据是如何在数据节点之间分布的,是基于第一条记录的偏移量吗?还是分区数据的大小?

我已经查阅了几个教程,但我仍然对 mapreduce 的确切工作流程感到困惑。此外,我打算使用 Amazon elastic mapreduce 并使用 Python。

也许我在这次讨论中谈论的是同样的事情,但据我所知,当时或讨论期间没有解决方案。对吗?

http://lucene.472066.n3.nabble.com/current-line-number-as-key-td2958080.html

谢谢!

最佳答案

您的问题包含很多内容,因此我将处理我理解的部分。开始了:

I don't know how the data is distributed among the datanodes, is it based on the offset from the first record? Or the size of the partitioned data?

数据完全根据文件大小分布。 HDFS 不知道您的记录边界,只会将文件分成指定大小(默认 64MB)的 block 。然后在集群的 DataNode 之间共享这些 block 。

I have looked up several tutorials and I am still confused about the exact workflow of mapreduce. In addition, I'm planning to use Amazon elastic mapreduce and use Python.

目前有两个主要版本的 Hadoop。 1.x 系列又名 MapReduce v1 和 2.x 系列又名 YARN。作为一名程序员,您将以类似的方式与它们进行交互,但在幕后,工作的完成方式存在一些差异。这是混淆的常见原因。特别是,由于大多数教程都是针对 MapReduce v1 的。

Maybe I'm talking about same thing in this discussion, but as far as I know, there's no solution at that time or during that discussion. Is it right?

所以这是你的数据集:

1. Melo, apple, orange
2. orange, perl
3. apple, banana, car
...
10000. Apple
...

您有一个行号、一个空格,然后是逗号分隔值。因此,您的问题似乎与您在问题中链接到的问题截然不同。还是我不理解数据?

关于python - MapReduce 中的数据如何在数据节点之间分区和分布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23796858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com