设置:
我有一份地图缩减的工作。在mapper类(它显然是在集群上运行的(中,我有一个类似这样的代码:
try {
.
.
.
} catch (<some exception>) {
// Do some stuff
}
我想更改的内容:
在catch{}子句中,我想将日志从集群复制到本地文件系统
问题:
如果我从命令行进行检查,我可以在节点的目录中看到日志文件。但当我尝试使用org.apache.hoop.fs.FileSystem.copyToLocalFile(boolean delSrc,Path src,Path dst(复制它时,它说该文件不存在。
有人能告诉我我做错了什么吗?我是Hadoop的新手,所以可能我错过了一些显而易见的东西。如果需要,请问我任何澄清问题,因为我不确定我是否已经提供了所有必要的信息。
感谢
编辑1::由于我正在尝试将文件从集群复制到本地,而且java代码也在集群上运行,我甚至可以使用copyToLocalFile()
吗?还是我需要做一个简单的scp
?
MapReduce日志文件通常位于数据节点的本地文件系统路径HADOOP_log_DIR/userlogs/mapOrReduceTask上,Map/Reduce程序运行在该路径上。每个MapReduce程序都会在上述目录中生成syslog/stdout/stderr。
使用任务跟踪器的Web UI查看本地日志文件会更容易,或者您可以ssh到机器并查看上述目录中的日志。
默认情况下,任务跟踪器Web UI URL为http://machineName:50060/