最佳答案
1)沿数据节点复制数据。在大多数配置中,您希望任务节点也成为数据节点。是的,它是物理存储的。
2)Hadoop用户,例如输入拆分中的bufferedreaders,如果使用标准阅读器,则逐行“流式处理”数据。还有其他读者,您也可以实现自己的读者
3)如果您要处理一个文件的10行,有几种方法可以处理。一种方法是将文件设置为不可拆分。这样就可以确保整个CSV由一个映射器处理。您可以自己拆分文件,以使很多映射器都能正常工作。我能想到的其他方法要复杂得多,或者在区块边界存在问题。我认为加载整个文件不是最好的主意,因为将来您的.csv变得更大时,您的方法必定会失败。
如果您的工作是仅 map 工作,则可以添加化简阶段并为那10行计算一个特殊键(例如它们与特殊问题有关,等等),并在化简器中获取所有相关行。不幸的是,我对您的工作了解得不够多,更具体
如果您不熟悉hadoop,那link可能会帮助您进入它
关于database - 对Hadoop DFS和MapReduce的一些疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13954176/