java 代码
@Test
public void copyFromLocalFile() throws Exception {
//获取文件系统
Configuration config = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://hadoop1:8020"), config, "root");
//上传文件,路径不存在,自动创建
fs.copyFromLocalFile(new Path("d:/data.txt"), new Path("/test/data.txt"));
System.out.println("ok");
//关闭
fs.close();
}
web查看结果
设置参数
比如:设置文件的副本数量,如果不设置,那么使用的是 hadoop 服务器 hdfs-site.xml 中的配置
如果设置:有以下2种方式
- 本工程创建 hdfs-site.xml 配置文件(优先级:低)
- java代码设置参数(优先级:高)
hdfs-site.xml(优先级:低)
在 resources 目录下创建 hdfs-site.xml,工程目录结构如下:
内容如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
表示上传的文件有2个副本
执行java代码
java代码设置参数(优先级:高)
@Test
public void copyFromLocalFile2() throws Exception {
//获取文件系统
Configuration config = new Configuration();
//==================设置文件副本数量=================
config.set("dfs.replication", "2");
FileSystem fs = FileSystem.get(new URI("hdfs://hadoop1:8020"), config, "root");
//上传文件,路径不存在,自动创建
fs.copyFromLocalFile(new Path("d:/data.txt"), new Path("/test/data2.txt"));
System.out.println("ok");
//关闭
fs.close();
}


