1、Code -> GitHub
https://github.com/liufengji/hadoop_hdfs.git
2、Code
@Test
public void putFileToHDFS() throws Exception{
// 1 创建配置信息对象
// new Configuration();的时候,它就会去加载jar包中的hdfs-default.xml
// 然后再加载classpath下的hdfs-site.xml
Configuration configuration = new Configuration();
// 2 设置参数
// 参数优先级: 1、客户端代码中设置的值 2、classpath下的用户自定义配置文件 3、服务器的默认配置
configuration.set("dfs.replication", "2");
FileSystem fs = FileSystem.get(new URI("hdfs://node1:9000"),configuration, "victor");
// 3 创建要上传文件所在的本地路径
Path src = new Path("e:/hello.txt");
// 4 创建要上传到hdfs的目标路径
Path dst = new Path("hdfs://node1:9000/user/victor/hello.txt");
// 5 拷贝文件
fs.copyFromLocalFile(src, dst);
// 6 关闭资源
fs.close();
}
3、将core-site.xml拷贝到项目的根目录下
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
</configuration>
4、将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>
5、测试参数优先级
优先级:客户端代码中设置的值 > classpath下的用户自定义配置文件 > 服务器的默认配置