我正在尝试使用MultipleOutputFormat.generateFileNameForKeyValue()。
我的想法是为每个密钥创建目录。
这是代码:
static class MyMultipleTextOutputFormat extends MultipleTextOutputFormat<Text, Text> {
@Override
protected String generateFileNameForKeyValue(Text key, Text value, String name) {
arr = key.toString().split("_");
return arr[0]+"/"+name;
}
}
此代码仅在发出的记录很少时才有效。如果我针对我的实际输入运行代码,它只会在减速器上挂起大约70%。
这里可能存在什么问题 - 处理少量密钥,而不是处理许多密钥。