我正在尝试将某些安全功能合并到Hadoop mapreduce中,我想知道这一点。对于mapreduce程序,我如何知道分配哪个映射器。
假设我正在编写wordcount示例并使用5个文件,并且有一簇机器。我怎么知道哪个机器访问哪个文件?
最佳答案
您可以在映射器中使用以下代码:
CombineFileSplit split = (CombineFileSplit)context.getInputSplit();
Path[] paths = split.getPaths();
for (Path path : paths) {
//Source HDFS file path belongs to processing input split
}
但是您应该了解,映射器启动时不会处理文件。一般而言,映射器处理输入拆分,该拆分可能包含多个源HDFS文件。结果,我上面描述的一种方法可以返回多个输入文件。
关于hadoop - 分配哪个映射器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32922236/