Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
直接指定Hadoop mapreduce输入键(不是从文件中)_Hadoop - Fatal编程技术网

直接指定Hadoop mapreduce输入键(不是从文件中)

直接指定Hadoop mapreduce输入键(不是从文件中),hadoop,Hadoop,我想使用mapreduce生成一些数据。我想用一个参数N调用这个作业,并用1到N的每个整数调用Map一次 显然,我想要一个映射器…这很简单。但我不知道如何生成输入数据!是否有一个InputFormat我没有看到的地方可以让我直接从集合中提取键+值 是否希望每个映射程序处理从1到N的所有整数?或者,是否要在并行运行的映射程序中分布整数1到N的处理 如果是前者,我相信您需要创建一个自定义的InputFormat。如果是后者,最简单的方法可能是生成一个包含整数1到N的文本文件,每个整数在一行上,并使用

我想使用mapreduce生成一些数据。我想用一个参数N调用这个作业,并用1到N的每个整数调用Map一次


显然,我想要一个
映射器
…这很简单。但我不知道如何生成输入数据!是否有一个
InputFormat
我没有看到的地方可以让我直接从集合中提取键+值

是否希望每个映射程序处理从1到N的所有整数?或者,是否要在并行运行的映射程序中分布整数1到N的处理


如果是前者,我相信您需要创建一个自定义的InputFormat。如果是后者,最简单的方法可能是生成一个包含整数1到N的文本文件,每个整数在一行上,并使用LineInputFormat。

后者;我想到了你的解决方案,它应该是有效的,但它看起来太傻了。为什么我不能以编程方式执行此操作?您可以使用自定义InputFormat以编程方式执行此操作。您必须实现getSplits以返回存储值范围的InputSplit,而RecordReader将返回这些范围内的单个值。有关更多信息,请参阅。