lichaoyue888 发表于 2016-12-9 09:19:39

(4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上

(1)首先创建java project
  选择eclipse菜单上File->New->Java Project。


  并命名为UploadFile。


  

  


(2)添加必要的hadoop jar包
  右键选择JRE System Library,选择Build Path下的Configure Build Path。


  然后选择Add External Jars,到你解压的hadoop源代码文件夹下添加jar包和lib下的所有jar包。


  lib文件夹下的所有jar包。






(3)添加UploadFile类


  代码如下:

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.Progressable;

public class UploadFile {
public static void main(String[] args) {
try {
String localSrc = "C://Goagent.rar";
String dst = "hdfs://hadoop:9000/user/root/Goagent.rar";
InputStream in = new BufferedInputStream(new FileInputStream(localSrc));
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(dst), conf);
OutputStream out = fs.create(new Path(dst), new Progressable() {
public void progress() {
System.out.print(".");
}
});
IOUtils.copyBytes(in, out, 4096, true);
System.out.println("success");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}



然后运行程序,如果上传成功会在控制台下输出success。
  你也可以在网页上查看http://hadoop:50070/。
  




  

  备注:我也是刚起步学习hadoop,可能文章有一些不完整或错误的地方,还请大家多多指教,也希望能交流学习,互相促进提高。

  

  参考资料:
  http://my.oschina.net/cuitongliang/blog/155954

  

  

  

  
页: [1]
查看完整版本: (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上