import org.apache.hadoop.fs.FileSystem;
其中FileSystem类是抽象类,要获取对象,需要调用静态方法:
FileSystem fs = FileSystem.get(conf);
import org.apache.hadoop.conf.Configuration;
Configuration conf = new Configuration();
Path f = new Path("hdfs://hadoopH1:9000/jdk-7u80-linux-x64.tar.gz"); //指定路径
FSDataInputStream in = fs.open(f); //打开hdfs输入流
FileOutputStream out = new FileOutputStream("/home/hadoop/Download/jdk.tar.gz"); //打开文件输出流,输入文件路径 IOUtils.copy(in, out);
package cn.hadoop.hdfs; import java.io.FileOutputStream; import java.io.IOException; import org.apache.commons.io.IOUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HdfsBase { public static void main(String[] args) throws IOException { //要访问hdfs,需要获取FileSystem类(必须是org.apache.hadoop.fs包下)的实例对象 Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(conf); //fs对象就是HDFS的客户端,用fs就可以读文件,写文件,查看文件... //下载文件 Path f = new Path("hdfs://hadoopH1:9000/jdk-7u80-linux-x64.tar.gz"); //指定路径 FSDataInputStream in = fs.open(f); //打开hdfs输入流 FileOutputStream out = new FileOutputStream("E:\\jdk.tar.gz"); //打开文件输出流,输入文件路径 IOUtils.copy(in, out); //上传数据到hdfs文件系统 } }
public void upload() throws IOException { Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://hadoopH1:9000/"); FileSystem fs = FileSystem.get(conf); Path f = new Path("hdfs://hadoopH1:9000/Day01/linux-2.6.tar.gz"); FSDataOutputStream out = fs.create(f); FileInputStream in = new FileInputStream("E:\\源码\\linux-2.6.19.tar.gz"); IOUtils.copy(in, out); //上传数据 }
-DHADOOP_USER_NAME=hadoop
public void upload2() throws IOException, InterruptedException, URISyntaxException { Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://hadoopH1:9000/"); FileSystem fs = FileSystem.get(new URI("hdfs://hadoopH1:9000/"),conf,"hadoop"); fs.copyFromLocalFile(new Path("E:\\源码\\linux-2.6.19.tar.gz"), new Path("hdfs://hadoopH1:9000/Day01/linux2.6.taz")); }
public void mkdir() throws IOException, InterruptedException, URISyntaxException { Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://hadoopH1:9000/"); FileSystem fs = FileSystem.get(new URI("hdfs://hadoopH1:9000/"),conf,"hadoop"); fs.mkdirs(new Path("/new/dir/")); }
public void rm() throws IOException, InterruptedException, URISyntaxException { Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://hadoopH1:9000/"); FileSystem fs = FileSystem.get(new URI("hdfs://hadoopH1:9000/"),conf,"hadoop"); fs.delete(new Path("/new"), true); //可以设置是否递归删除 }
原文:https://www.cnblogs.com/ssyfj/p/12310997.html