【通过HDFS API操作HDFS】将文件上传到hdfs系统中

前提:

所有的操作操作都是在自建的完全分布式下进行操作的(即通过虚拟机搭建的完全分布式)。

使用IDEA创建maven工程,在此工程下进行操作,在运行程序前要保证已经将依赖包全部导入完毕。

一,上传Windows文件到hdfs系统中。

Configuration类:为Yarn、HSFS、MapReduce、NFS、调度器等提供参数的配置、配置文件的分布式传输(实现了Writable接口)等重要功能。

public class Text2 {
    public static void main(String[] args) throws Exception {
        Configuration conf=new Configuration();
        //配置NameNode地址
        //配置hdfs系统的ip地址,此地址是虚拟机的地址
        URI uri=new URI("hdfs://192.168.10.102:9000");

        //对文件进行操作,get()方法:获取文件信息,指定用户名
        FileSystem fs=FileSystem.get(uri,conf,"root");
        //windows本地的目录和文件,Path类:指定路径
        Path srcPath = new Path("F:\\Hadoop\\hadoop-2.7.4.tar.gz");
        Path dstPath = new Path("/text/"); //HDFS建立的新目录和文件对象
        System.out.println("开始上传文件......");
        //使用FileSystem类自带的接口上传文件
        fs.copyFromLocalFile(srcPath,dstPath);
        fs.close();
        System.out.println("上传文件成功!!!");
    }
}

二、上传虚拟机文件到完全分布式系统

        上传Linux文件(即虚拟机中的文件)到hdfs中需要将下面的程序打包成jar包,然后上传到虚拟机中,上传完毕后,在该文件所在的目录下运行命令: hadoop  jar  jar包名。然后开始运行此程序。(提示:hdfs系统逻辑上独立于Linux系统,相等于一个独立的文件系统,不用认为上传文件是将文件上传到Linux目录下)。

public class Text3 {
    public static void main(String[] args) throws Exception {
        Configuration conf=new Configuration();
        FileSystem fs = null;
        System.setProperty("HADOOP_USER_NAME", "root");
        fs = FileSystem.get(conf);

        System.out.println("初始化结束");

        // 输出文件所在的路径
        System.out.println(fs.getHomeDirectory());
        System.out.println(fs.getWorkingDirectory());

        System.out.println("上传开始....");
        //Linux的文件地址
        Path src = new Path("/root/redis6");
        // 要上传到hdfs的目标路径
        Path dst = new Path("/text/");
        // 上传文件方法
        fs.copyFromLocalFile(src, dst);
        // 关闭资源
        fs.close();
        System.out.println("上传结束");
    }
}

三、导入依赖包

在此项目下创建  lib 包,然后将jar包全部复制到该lib包中,最后添加依赖。

Hadoop环境所需要的依赖包:

链接:https://pan.baidu.com/s/1obowwIjbXV9a16GIWKi7Iw 
提取码:zshn

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值