gpt4 book ai didi

debugging - Hadoop分布式调试脚本不能与Hadoop 2一起使用

转载 作者:可可西里 更新时间:2023-11-01 16:53:51 26 4
gpt4 key购买 nike

我试图使用分布式调试脚本来调试失败的mr作业,但遇到了机制本身的问题。问题如下。
对于hadoop 0.20.2来说,一切都很好,脚本可以按预期完成工作。
使用hadoop 1.1.1,系统会在hadoop安装目录下搜索脚本,而不是在dc location下。(问题)
使用hadoop 2.6.0,什么都不会发生。系统忽略脚本,好像没有配置任何内容。(问题)
请帮我解决这个问题。
我使用的代码如下。

    JobConf conf = new JobConf(DebugScriptDemoJobOld.class);
conf.setJobName("debugscript demo");

conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(Text.class);

conf.setMapperClass(OldErrorMap.class);
conf.setNumReduceTasks(0);

conf.setInputFormat(TextInputFormat.class);
conf.setOutputFormat(TextOutputFormat.class);

setupFailedTaskScript(conf);

FileInputFormat.setInputPaths(conf, new Path("/input.txt"));
FileOutputFormat.setOutputPath(conf, new Path("/outds"));

JobClient.runJob(conf);

}

private static final String FAILED_MAP_SCRIPT_NAME = "map-fail";
private static final String HDFS_SCRIPT_DIR = "/debug";
private static final String HDFS_FAILED_MAP_SCRIPT = HDFS_SCRIPT_DIR + "/" + FAILED_MAP_SCRIPT_NAME;
private static final String LOCAL_FAILED_MAP_SCRIPT = "/home/kaustabh/Work/" + FAILED_MAP_SCRIPT_NAME;

public static void setupFailedTaskScript(JobConf conf) throws IOException {

FileSystem fs = FileSystem.get(conf);
Path debugDir = new Path(HDFS_SCRIPT_DIR);

if (fs.exists(debugDir)) {
fs.delete(debugDir, true);
}

fs.mkdirs(debugDir);

fs.copyFromLocalFile(new Path(LOCAL_FAILED_MAP_SCRIPT), new Path(HDFS_FAILED_MAP_SCRIPT));

//DistributedCache.createSymlink(conf);

URI fsUri = fs.getUri();
String mapUriStr = fsUri.toString() + HDFS_FAILED_MAP_SCRIPT + "#" + FAILED_MAP_SCRIPT_NAME;
URI mapUri = null;
try {
mapUri = new URI(mapUriStr);
} catch (URISyntaxException use) {
throw new IOException(use);
}
DistributedCache.addCacheFile(mapUri, conf);
DistributedCache.createSymlink(conf);
conf.setMapDebugScript("./" + FAILED_MAP_SCRIPT_NAME);
}

谢谢和问候,
小精灵

最佳答案

您可以使用jubune调试mapreduce,可以对mapper或reducer应用验证,检测哪个控制结构是罪魁祸首,还可以记录不正确的键和值。

关于debugging - Hadoop分布式调试脚本不能与Hadoop 2一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31018585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com