eclipse(java api)操作hadoop hdfs,我试图将本地文件拷贝进hdfs,目标却是本地文件系统,不是hdfs。 5

在书上扒的code,也在网上找了一些,基本差不多。我试图将本地文件拷贝进hdfs,是在eclipse下调用copyFromLocalFile,dst设成hdfs的根目录,... 在书上扒的code,也在网上找了一些,基本差不多。我试图将本地文件拷贝进hdfs,是在eclipse下调用copyFromLocalFile,dst设成hdfs的根目录,执行的时候却试图向我文件系统的根目录拷贝这个文件。
是我的conf对象定义有问题么?
code如下:
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class CopyFile {
public static void main(String[] args)throws Exception{
Configuration conf=new Configuration();
conf.addResource(new Path("/hadoop0202/hadoop-0.20.2/conf/hadoop-default.xml"));
conf.addResource(new Path("/hadoop0202/hadoop-0.20.2/conf/hadoop-site.xml"));
conf.addResource(new Path("/hadoop0202/hadoop-0.20.2/conf/hdfs-site.xml"));
//conf.set("fs.defaultFS", "hdfs://localhost:9000");
FileSystem fs=FileSystem.get(conf);
Path src=new Path("/home/idhuser/input/test2.txt");
Path dst=new Path("/test2.txt");
fs.copyFromLocalFile(src,dst);
System.out.println("Upload to" + conf.get("fs.default.name"));
FileStatus files[]=fs.listStatus(dst);
for(FileStatus file:files){
System.out.println(file.getPath());
} System.out.println("done");
}
}
这个是报错,由于当前用户没权限操作系统根目录,所以说deny:
Exception in thread "main" java.io.FileNotFoundException: /test2.txt (Permission denied)
搞定了,我用的是hadoop 0.20.2, hdfs文件需要用 hdfs://localhost:9000//...操作。。如果file///就是本地系统文件。
展开
 我来答
jdkman
2015-01-23 · TA获得超过4610个赞
知道大有可为答主
回答量:1700
采纳率:0%
帮助的人:1869万
展开全部
恭喜啊,学习hadoop需要先学好命令啊。

想学Linux命令就去www.linuxsky.cn,里面也可以学习脚本和svn的命令,哈哈
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式