Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想用hadoop做矩阵向量乘法。我现在有一个小的工作示例:只有一个输入文件包含矩阵的行,后面总是跟它相乘的向量。因此,每个地图任务都从这个单个文件中获取一行和向量。
现在我想要两个输入文件。一个文件应包含矩阵,另一个文件应包含向量。但我想不出一种让映射器访问这两个文件的hadoop方法。
这里最好的方法是什么?
谢谢你的帮助!
Mapper最简单和最有效的解决方案是直接从 HDFS将向量读入内存(而不是作为map()输入)。大概它并没有太大以至于无法放入内存中。然后,map()仅按行排列矩阵数据。当您收到每一行时,用向量点它以产生输出的一个元素。发出(index,value)然后在Reducer(如果需要)中构造向量。
Mapper
map()
(index,value)
Reducer