我正在尝试在Hadoop mapreduce中加入某些安全功能,我想知道这一点。对于mapreduce程序,我如何知道哪个映射器被分配。
假设我正在编写wordcount示例并使用5个文件,并且有一组计算机。如何知道哪台机器访问了哪个文件?
答案 0 :(得分:0)
您可以在映射器中使用以下代码:
CombineFileSplit split = (CombineFileSplit)context.getInputSplit();
Path[] paths = split.getPaths();
for (Path path : paths) {
//Source HDFS file path belongs to processing input split
}
但你应该明白,当mapper启动时,它不会处理文件。一般而言,映射器进程输入拆分可能包含多个源HDFS文件。因此,我上面描述的方法可以返回多个输入文件。