mapreduce—未使用hadoop map函数的“key”参数

u59ebvdq  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(726)

我一直在努力学习hadoop。在我看到的示例中(例如单词计数示例),map函数的关键参数根本没有使用。map函数只使用对的值部分。因此,似乎关键参数是不必要的,但它不应该是。我错过了什么?你能给我一个使用关键参数的Map函数的例子吗?
谢谢

bd1hkmkf

bd1hkmkf1#

在wordcount示例中:因为我们要计算文件中每个单词的出现次数。我们采用了以下方法:
在mapper中- Keyoffset 文本文件的。 Value - Line 在文本文件中。
例如。文件.txt

Hi I love Hadoop.

I code in Java.

在这里

Key - 0 ,  value - Hi I love Hadoop.

Key - 17 , value - I code in Java.

(key - 17 is offset from start of file.)

基本上键的偏移量是默认的,我们不需要它,特别是在 Wordcount .
现在后面的逻辑是我猜你会得到这里和更多的可用链接。
以防万一:

Reducer Key
Word Value 是1,这是它的 count.

k4emjkb1

k4emjkb12#

要了解key的用法,您需要了解hadoop中可用的各种输入格式。
textinputformat-纯文本文件的输入格式。文件被分成几行。换行符或回车符用于表示行结束。键是文件中的位置,值是文本行。。
nlineinputformat-nlineinputformat将n行输入拆分为一个拆分。在许多“令人愉快”的并行应用程序中,每个进程/Map器处理相同的输入文件,但计算由不同的参数控制(称为“参数扫描”)。实现这一点的一种方法是指定一组参数(每行一组)作为控制文件的输入(这是map reduce应用程序的输入路径,其中输入数据集是通过jobconf中的config变量指定的)。nlineinputformat可以在这样的应用程序中使用,它分割输入文件,这样在默认情况下,一行作为值提供给一个map任务,key是偏移量。i、 e.(k,v)是(可长写的,文本)。位置提示将覆盖整个Map集群。
keyvalue textinputformat-纯文本文件的输入格式。文件被分成几行。换行符或回车符用于表示行结束。每行用一个字节分隔符分为键和值两部分。如果不存在这样的字节,则键将是整行,值将为空。
sequencefileasbinaryinputformat-inputformat读取键,二进制(原始)格式的SequenceFile中的值。
sequencefileastextinputformat—这个类与sequencefileinputformat类似,只是它生成sequencefileastextrecordreader,后者通过调用tostring()方法将输入键和值转换为字符串形式。

相关问题