使用idea开发hdfs的基本功能-增删改查

摘要:主要通过idea ,调用hadoop的API,实现hadoop的基本功能。
首先添加hadoop吧用户到环境变量。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一直确定到完成,这时候maven会自动创建示例代码
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 08:18 min
[INFO] Finished at: 2020-07-28T12:12:40+08:00
[INFO] Final Memory: 17M/320M
[INFO] ------------------------------------------------------------------------
表示创建成功!

下面就可以写自己的程序了

导入hdfs依赖

maven的依赖可以在https://mvnrepository.com/进行选择,也可以直接使用下面的,但是注意,笔者的Hadoop版本是2.7.3

    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-client</artifactId>
      <version>2.7.3</version>
    </dependency>

等一段时间后,就可以在右侧的Maven选项卡中看到我们导入的包了
在这里插入图片描述
然后在main下新建一个resources目录,并将其设置为Resource Root
在这里插入图片描述
然后使用xftp,将集群中的core-site 和hdfs-site 文件拷贝到resources文件夹中
在这里插入图片描述
在 main文件夹下的hdfs类中,创建base-hdfs类,自己初始化一下

package com.example.hdfs;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class base_hdfs {
    @Before//进行单元测试
    public  void connection(){}
    @Test
    public void mkdir(){}
    @After
    public  void close(){}    

}

添加代码内容

package com.example.hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.*;

public class base_hdfs {
    Configuration conf=null;
    FileSystem fs=null;
    @Before
    public  void connection() throws IOException {

        conf=new Configuration(true);
        fs=FileSystem.get(conf);

    }
    @Test
    public void mkdir() throws IOException {
        Path dir = new Path("/data/test1");
        System.out.println("执行创建文件夹目录");
        if(fs.exists(dir)){
            System.out.println("目录已存在!");
            fs.delete(dir,true);
        }

        fs.mkdirs(dir);
        System.out.println("创建成功");
    }
    @Test
    public void delete_dir() throws IOException {
        Path dir = new Path("/data/test1");
        System.out.println("执行删除程序");
        if(fs.exists(dir)){
            fs.delete(dir,true);
            System.out.println("删除成功!");
        }else{
            System.out.println("地址不存在");
        }
    }
    @Test
    public void upload() throws IOException {
        System.out.println("执行上传程序");
        BufferedInputStream input = new BufferedInputStream(new FileInputStream(new File("./data/book.docx")));
        Path outfile= new Path("/data/test/out.txt");
        FSDataOutputStream output=fs.create(outfile);
        IOUtils.copyBytes(input,output,conf,true);//链接输入流和输出流文件
    }
    @After
    public  void close() throws IOException {
        fs.close();
    }



}

依次测试每个功能即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值