创建一个Maven工程HdfsClientDemo

工程创建步骤

打开idea工具:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
工程创建完毕
在这里插入图片描述
创建出来工程后,会弹出这个窗口,注意:不要点击这个,后果会使maven仓库非常乱
在这里插入图片描述


本地文件上传到HDFS

步骤:
在pom.xml文件中,导入相应的依赖坐标+日志添加
在这里插入图片描述

pom.xml

<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.8.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-common</artifactId>
			<version>2.7.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-client</artifactId>
			<version>2.7.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-hdfs</artifactId>
			<version>2.7.2</version>
		</dependency>
		<dependency>
			<groupId>jdk.tools</groupId>
			<artifactId>jdk.tools</artifactId>
			<version>1.8</version>
			<scope>system</scope>
			<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
		</dependency>
</dependencies>

导入jar文件依赖操作:
在这里插入图片描述
当jar文件依赖下载完毕之后,我们需要在resources目录下,创建log4j.properties文件
在这里插入图片描述
在这里插入图片描述
log4j.properties文件编写
在这里插入图片描述

log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

接下来,在java目录下创建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
HdfsClient类,代码编写

HdfsClient.java

package com.study.hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;

import java.io.IOException;
import java.net.URI;

public class HDFSClient {
    @Test
     public void put() throws IOException, InterruptedException {
        FileSystem fileSystem=FileSystem.get(URI.create("hdfs://192.168.219.7:9000"),new Configuration(),"root");
        fileSystem.copyFromLocalFile(new Path("d:\\1.txt"),new Path("/"));
        fileSystem.close();
    }
}

在这里插入图片描述
在这里插入图片描述
运行程序:
在这里插入图片描述
日志打印,表示ok
在这里插入图片描述
在hdfs的服务刷新一下,表示上传成功
在这里插入图片描述


把HDFS的文件下载到本地磁盘

代码如图:
在这里插入图片描述
代码编写:

HDFSClient.java

package com.study.hdfs;


import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;

import java.io.IOException;
import java.net.URI;

public class HDFSClient {
    @Test
     public void put() throws IOException, InterruptedException {
       //获取一个HDFS的抽象封装对象
        Configuration configuration = new Configuration();
        FileSystem fileSystem=FileSystem.get(URI.create("hdfs://192.168.219.7:9000"),configuration,"root");
        //用这个对象操作文件系统
        fileSystem.copyToLocalFile(new Path("/test"),new Path("d:\\"));
        //关闭文件系统
        fileSystem.close();
    }
}

单元测试,运行程序
在这里插入图片描述
控制台日志打印信息,ok
在这里插入图片描述
我们就可以在d磁盘找到刚下载的文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


把HDFS的文件替换别的文件(自定义新文件)

代码图:
在这里插入图片描述
代码编写:

 @Test
        public  void rename()throws IOException, InterruptedException{
            //获取文件系统
            FileSystem fileSystem=FileSystem.get(URI.create("hdfs://192.168.219.7:9000"),new Configuration(),"root");
            //操作
            fileSystem.rename(new Path("/test"),new Path("/test2"));
            //关闭文件系统
            fileSystem.close();
        }

单元测试,运行程序
在这里插入图片描述
控制台打印信息
在这里插入图片描述
在web应用的HDFS,刷新显示
在这里插入图片描述


在HDFS删除文件

代码图:
在这里插入图片描述
编写代码

HDFSClient.java

package com.study.hdfs;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class HDFSClient {
 private  FileSystem fs;
        @Before
         public  void before()throws IOException, InterruptedException{
            System.out.println("Bedore!!!!!");
            fs=FileSystem.get(URI.create("hdfs://192.168.219.7:9000"),new Configuration(),"root");
        }
        @After
        public  void after()throws IOException{
            System.out.println("After!!!!!");
            fs.close();
        }
        @Test
        public void delete()throws IOException{
            boolean delete=fs.delete(new Path("/1.txt"),true);
            if(delete){
                System.out.println("删除成功!");
            }else {
                System.out.println("删除失败!");
            }
        }
    }

单元测试,运行程序
在这里插入图片描述
控制台打印信息:
在这里插入图片描述
在web应用的HDFS,刷新显示
在这里插入图片描述

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值