准备工作:IDEA > HDFS客户端准备
目录
文件上传
注意conf.set("dfs.replication","2");的位置,位置不一样,设置的副本数不一样
HDFS参数优先级说明(由高到低):代码中 > resources中的hdfs-site.xml > 集群中的设置cat /opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml > 默认设置
在hdfs-site.xml中添加:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
//文件上传
@Test
public void testCopyFromLocalFile() throws IOException, URISyntaxException, InterruptedException {
//1. 获取fs对象
Configuration conf = new Configuration();
conf.set("dfs.replication","2");
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.223.101:9000"),conf,"zzz");
//conf.set("dfs.replication","2");
//2.执行上传API
fs.copyFromLocalFile(new Path("e:/copyFromLocalFile.txt"),new Path("/copyFromLocalFile_code.txt"));
//3.关闭资源
fs.close();
}
文件下载
查看copyToLocalFile源码
delSrc是否删除源数据
useRawLocalFileSystem(使用本地文件系统)默认值是False,在文件下载的时候会有crc校验
设置为true时,就没有crc
crc是一种安全校验,校验数据的可靠性,数据是否被改变了
@Test
//2. 文件下载
public void testCopyToLocalFile() throws URISyntaxException, IOException, InterruptedException {
//1. 获取对象
Configuration