我一直在努力学习hadoop。在我看到的示例中(例如单词计数示例),map函数的关键参数根本没有使用。map函数只使用对的值部分。因此,似乎关键参数是不必要的,但它不应该是。我错过了什么?你能给我一个使用关键参数的Map函数的例子吗?谢谢
bd1hkmkf1#
在wordcount示例中:因为我们要计算文件中每个单词的出现次数。我们采用了以下方法:在mapper中- Key 是 offset 文本文件的。 Value - Line 在文本文件中。例如。文件.txt
Key
offset
Value
Line
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.
Wordcount
count.
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()方法将输入键和值转换为字符串形式。
2条答案
按热度按时间bd1hkmkf1#
在wordcount示例中:因为我们要计算文件中每个单词的出现次数。我们采用了以下方法:
在mapper中-
Key
是offset
文本文件的。Value
-Line
在文本文件中。例如。文件.txt
在这里
基本上键的偏移量是默认的,我们不需要它,特别是在
Wordcount
.现在后面的逻辑是我猜你会得到这里和更多的可用链接。
以防万一:
在
Reducer
Key
是Word
Value
是1,这是它的count.
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()方法将输入键和值转换为字符串形式。