我正在使用单节点Hadoop 2.4群集。
我可以使用hadoop fs -copyToLocal myDirectory .
但是,我无法通过此java代码成功执行相同的操作:
public void map Object key, Text value, Context context)
throws IOException, InterruptedException {
Configuration conf = new Configuration(true);
FileSystem hdfs = FileSystem.get(conf);
hdfs.copyToLocalFile(false, new Path("myDirectory"),
new Path("C:/tmp"));
}
此代码仅复制myDirectory
的一部分。我还收到一些错误消息:
14/08/13 14:57:42 INFO mapreduce.Job: Task Id : attempt_1407917640600_0013_m_000001_2, Status : FAILED
Error: java.io.IOException: Target C:/tmp/myDirectory is a directory
我的猜测是映射器的多个实例正在尝试同时将同一个文件复制到同一个节点。但是,我不知道为什么不复制所有内容。
这是我的错误的原因,我怎么能解决它?