java—如何将文件从hadoop集群复制到本地文件系统

gtlvzcf8  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(658)

设置:

我有份Map缩小的工作。在mapper类(显然是在集群上运行的)中,我有这样一个代码:

try {
.
.
.
} catch (<some exception>) {
    // Do some stuff
}

我想改变的是:

在catch{}子句中,我想将日志从集群复制到本地文件系统

问题:

如果从命令行检查,我可以在节点的目录中看到日志文件。但是当我试图用org.apache.hadoop.fs.filesystem.copytolocalfile(boolean delsrc,path src,path dst)复制它时,它说这个文件不存在。
有人能告诉我我做错了什么吗?我对hadoop非常陌生,所以可能我遗漏了一些明显的东西。如果需要,请问我任何澄清的问题,因为我不确定我是否提供了所有必要的信息。
谢谢
edit1::由于我试图将文件从集群复制到本地,而且java代码也在集群上运行,所以我甚至可以使用 copyToLocalFile() ? 或者我需要做一个简单的 scp ?

s8vozzvw

s8vozzvw1#

mapreduce日志文件通常位于运行map/reduce程序的数据节点的本地文件系统路径hadoop\u log\u dir/userlogs/maporreducetask上。每个mapreduce程序在上述目录中生成syslog/stdout/stderr。
使用tasktracker的webui查看本地日志文件会更容易,或者您可以通过ssh连接到机器并查看上述目录中的日志。
默认情况下,TaskTracker web ui url为 http://machineName:50060/

相关问题