hadoop文件操作

目录

一、文件的上传 删除 查看

1.整体代码

2.代码运行

3.查看证实

4.具体代码解析

1)向Hadoop传文件

2)向本地Windows传文件

3)删除Hadoop的文件

4)判断文件是否存在

二、列出文件

1.整体代码

2.代码运行

3.具体代码解析

1)获取块大小

2)获取副本数:

3)获取块位置

4)获取文件路径


一、文件的上传 删除 查看

1.整体代码

package com.pracle.example;
​
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
​
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
​
public class Test4 {
    public static void main(String[] args) throws URISyntaxException, IOException {
        Configuration configuration=new Configuration();
        FileSystem fs = FileSystem.get(new URI("hdfs://192.168.67.90:9000"), configuration);
        //向Hadoop传文件
        fs.copyFromLocalFile(new Path("d:/aa.txt"),new Path("/cc.txt"));
        //向本地传文件
        fs.copyToLocalFile(new Path("/cc.txt"),new Path("d:/ee.txt"));
        //删除Hadoop中的文件
        fs.delete(new Path("/c.txt"),true); // true 递归删除
​
        // fs.exists(new Path("/a.txt"));判断文件是否存在
        if(fs.exists(new Path("/a.txt"))){
            System.out.println("文件存在");
        }
​
    }
}
​

2.代码运行

3.查看证实

4.具体代码解析

1)向Hadoop传文件

fs.copyFromLocalFile(new Path("d:/aa.txt"),new Path("/cc.txt"));

2)向本地Windows传文件

fs.copyToLocalFile(new Path("/cc.txt"),new Path("d:/ee.txt"));

3)删除Hadoop的文件

fs.delete(new Path("/c.txt"),true);

4)判断文件是否存在

if(fs.exists(new Path("/a.txt"))){
            System.out.println("文件存在");
        }

二、列出文件

1.整体代码

package com.pracle.example;

import org.apache.hadoop.conf.Configuration;
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 java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

public class Test5 {
    public static void main(String[] args) throws URISyntaxException, IOException {
        Configuration configuration=new Configuration();
        FileSystem fs = FileSystem.get(new URI("hdfs://192.168.67.90:9000"), configuration);

        RemoteIterator<LocatedFileStatus> it = fs.listFiles(new Path("/"), true);
        while (true){
            if(it.hasNext()){
                LocatedFileStatus next = it.next();
                System.out.println(next.getBlockSize()+" "+next.getReplication()+" "+
                        next.getBlockLocations()+" "+next.getPath());
            }
            else {
                break;
            }
        }
    }
}

2.代码运行

3.具体代码解析

1)获取块大小

next.getBlockSize()

2)获取副本数:

next.getReplication()

3)获取块位置

next.getBlockLocations()

4)获取文件路径

next.getPath()

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐