HDFS简易客户端实例

学习时候的代码,仅供复习使用

package com.ligy.hadoop.hdfs;

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

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator;
import org.junit.Before;
import org.junit.Test;

/**
 * HDFS客户端的简单实例
 * @author gyli
 *
 */
public class HDFSClient {

    private FileSystem fs = null;

    /**
     * 初始化文件系统
     * @throws IOException
     * @throws InterruptedException
     * @throws URISyntaxException
     */
    @Before
    public void getFs() throws IOException, InterruptedException, URISyntaxException {
        Configuration conf = new Configuration();
        conf.addResource(new Path("core-site.xml"));
        fs = FileSystem.get(new URI("hdfs://master:9000/"), conf, "root");
    }

    /**
     * 上传文件
     * @throws IllegalArgumentException
     * @throws IOException
     */
    @Test
    public void testUplocad() throws IllegalArgumentException, IOException {
        fs.copyFromLocalFile(new Path("F:\\Software\\javatools\\hadoop-2.6.0.tar.gz"), new Path("/"));
    }

    /**
     * 删除文件
     * @throws IllegalArgumentException
     * @throws IOException
     */
    @Test
    public void testRmFile() throws IllegalArgumentException, IOException {
        System.out.println("RmFile : " + fs.delete(new Path("/jdk.tgz"), true));
    }

    /**
     * 创建文件
     * @throws IllegalArgumentException
     * @throws IOException
     */
    @Test
    public void testMkdir() throws IllegalArgumentException, IOException {
        System.out.println("mkdir : " + fs.mkdirs(new Path("/aa/bb/cc/dd/ee")));
    }

    /**
     * 修改文件名称
     * @throws IllegalArgumentException
     * @throws IOException
     */
    @Test
    public void testRename() throws IllegalArgumentException, IOException {
        System.out.println("rename : " + fs.rename(new Path("/cc"), new Path("/dd")));
    }

    /**
     * 查看文件目录
     * @throws FileNotFoundException
     * @throws IllegalArgumentException
     * @throws IOException
     */
    @Test
    public void testListFile() throws FileNotFoundException, IllegalArgumentException, IOException {
        RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"), true);
        while(listFiles.hasNext()) {
            LocatedFileStatus file = listFiles.next();

            System.out.println("fileName : " + file.getPath().getName());
        }
        System.out.println("---------------------------");
        FileStatus[] fileStatuses = fs.listStatus(new Path("/"));

        for (int i = 0; i < fileStatuses.length; i++) {
            System.out.println("fileName : " + fileStatuses[i].getPath().getName());
        }
    }

    /**
     * 下载文件
     * @throws IllegalArgumentException
     * @throws IOException
     */
    @Test
    public void testDownload() throws IllegalArgumentException, IOException {
        fs.copyToLocalFile(false, new Path("/jdk-7u55-linux-x64.gz"), new Path("D:\\"), true);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【注意】 项目下载解压后,项目名字和项目路径不要用文,否则可能会出现解析不了的错误,建议解压重命名为英文名字后再运行!有问题私信沟通,祝顺利! 基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip基于C语言实现智能决策的人机跳棋对战系统源码+报告+详细说明.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值