分享

咨询,往HDFS上复制文件失败!

w710077 发表于 2014-11-28 17:35:00 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 11074
  1. package Hadoop.HDFS;
  2. import java.io.BufferedInputStream;
  3. import java.io.FileInputStream;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6. import java.net.URI;
  7. import org.apache.hadoop.conf.Configuration;
  8. import org.apache.hadoop.fs.FileSystem;
  9. import org.apache.hadoop.fs.Path;
  10. import org.apache.hadoop.io.IOUtils;
  11. import org.apache.hadoop.util.Progressable;
  12. public class App2 {
  13. public static void main(String[] args) throws Exception {
  14. String locaSrc = "G://jf2.txt";
  15. String dst = "hdfs://hadoop/use/jf2.txt";
  16. InputStream in = new BufferedInputStream(new FileInputStream(locaSrc));
  17. Configuration conf = new Configuration();
  18. FileSystem fs = FileSystem.get(URI.create(dst), conf);
  19. OutputStream out = fs.create(new Path(dst), new Progressable(){
  20. public void progress(){
  21. System.out.println("*");
  22. }});
  23. IOUtils.copyBytes(in, out, 4096, true);
  24. }
  25. }
复制代码

报错信息为: java.io.FileNotFoundException: G:/jf2.txt
请帮我看看,谢了。

已有(5)人评论

跳转到指定楼层
desehawk 发表于 2014-11-28 18:34:24


楼主路径有误

hdfs路径
采用下面的方式:

String dst = "hdfs://hadoop/use/jf2.txt";

修改为:
String dst = "hdfs://hadoop:9000/use/jf2.txt";
或则
String dst = "hdfs://hadoop:8020/use/jf2.txt";
根据自己的配置来确定

磁盘路径:

String locaSrc = "G://jf2.txt";
修改为
String locaSrc = "G:/jf2.txt";



回复

使用道具 举报

w710077 发表于 2014-11-28 21:24:50
desehawk 发表于 2014-11-28 18:34
楼主路径有误

hdfs路径

谢谢你的答复。我改了还是报错。

我本地是WIN7的,hadoop是装在LINUX的。Eclipse是在WIN7上的。我WIN7需要装Cygwin吗?
回复

使用道具 举报

desehawk 发表于 2014-11-28 22:17:14


首先需要知道自己的开发方式。
hadoop开发方式总结及操作指导
使用插件,还是没有使用插件。

然后搭建好开发环境。

开发方面的知识、环境搭建方面,可以参考

零基础学习hadoop到上手工作线路指导(编程篇)



回复

使用道具 举报

hb1984 发表于 2014-11-29 12:46:29
打个包丢上去跑。            
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条