1.创建文件夹
在hadoop中创建文件夹
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.net.URI;
import java.net.URISyntaxException;
public class ClientDemo1 {
public static void main(String[] args) throws Exception {
//指定hdfs的位置
URI uri = new URI("hdfs://linux01:9000");
//用户的配置设置对象
Configuration conf = new Configuration();
//当前操作客户端的用户名
String username = "root";
/*
参数1 URI 指定HDFS文件系统的位置
参数2 配置对象 用户的自定义设置 文件上传的副本个数
参数3 用户名 root
*/
FileSystem fs = FileSystem.newInstance(uri, conf, username);
//创建一个文件夹 new File(""); new Path("");
//Path对象是hdfs中对路径的抽象
Path path = new Path("/doit16/hdp");
//创建层级文件夹
boolean b = fs.mkdirs(path);
if(b){
System.out.println("创建成功");
}else{
System.out.println("创建失败");
}
//释放资源
fs.close();
}
}
URI 是指在linux中在配置环境之前想要进hadoop中查看文件的那个算是网址吧, "hdfs://linux01:9000",也是namemode的地址
还要创建一个文件系统对象
在输入用户名
这是三个FileSystem的条件
2.上传文件
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class Upload2HdfsDemoCopy1 {
public static void main(String[] args) throws Exception {
//1.创建文件系统对象
Configuration conf = new Configuration();
FileSystem fs = FileSystem.newInstance(new URI("hdfs://linux01:9000"), conf, "root");
Path src = new Path("D:\\doit\\access.log");//本地路径
Path dis = new Path("/doit16/hdp");
fs.copyFromLocalFile(false,false,src,dis);
fs.close();//关流
}
}
上传文件keyiyou
fs.copyFromLocalFile(src, dis); // 没有返回值
/**
*参数一 是否删除上传的文件 默认 是false 不删除 true 删除(剪切)
* 参数二 是否覆盖HDFS中已存在的内容 默认 true
* 参数三 本地路径 待上传的内容
* 参数四 HDFS系统的路径