我正在尝试使用map reduce实现最短路径,这是我的输入文件键值
Source Node <Destination node,Weight>
1 <2,3>
1 <3,1>
2 <2,1>
2 <3,4>
等等。我知道在提交到集群的bash脚本中,在运行时输入文件是使用类似于以下内容从hdfs中提取的
$HADOOP_HOME/bin/HADOOP--config$HADOOP-CONF_DIR jar Assignment3.jar InputMatrix.txt
。但我不明白映射器是如何获得
键和值的,我需要对输入文件进行标记以获得键和权重吗,我
正在考虑获得权重的最小关联值,所以我的reduce得到了这样的值[1,<2,3>,1,<3,1>],所以它循环相关的权重来获得我的最小值,在这种情况下,
对于键1是1。但我不明白在运行时如何使映射器可以使用键,以及如何进行解析来获得键(在上面的输入文件中,键
由制表符分隔("\t"),而它们自己的值是","分隔的
取决于输入格式,但如果您使用标准输入格式(TextInputFormat),它会逐行处理。映射任务的输入是:文件中的偏移量,输入文件的行就是值。您可以在制表符上拆分文件。另一种选择是使用键值输入格式。