亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java?API操作HDFS方法是什么

發布時間:2023-02-25 14:15:12 來源:億速云 閱讀:100 作者:iii 欄目:開發技術

這篇“Java API操作HDFS方法是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java API操作HDFS方法是什么”文章吧。

一、判斷Path指向目錄還是文件

net.xxr.hdfs包里創建PathToFileOrDir

Java?API操作HDFS方法是什么

package net.xxr.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.net.URI;
/**
 * 功能:判斷路徑指向目錄還是文件
 */
public class PathToFileOrDir {
    public static void main(String[] args) throws Exception {
        // 創建配置對象
        Configuration conf = new Configuration();
        // 設置數據節點主機名屬性
        conf.set("dfs.client.use.datanode.hostname", "true");
        // 定義uri字符串
        String uri = "hdfs://master:9000";
        // 創建文件系統對象
        FileSystem fs = FileSystem.get(new URI(uri), conf, "root");
        // 創建路徑對象,指向目錄
        Path path2 = new Path("/ied01");
        if (fs.isDirectory(path2)) {
            System.out.println("[" + path2 + "]指向的是目錄!");
        } else {
            System.out.println("[" + path2 + "]指向的是文件!");
        }
        // 創建路徑對象,指向文件
        Path path3 = new Path("/lzy01/test2.txt");
        if (fs.isFile(path3)) {
            System.out.println("[" + path3 + "]指向的是文件!");
        } else {
            System.out.println("[" + path3 + "]指向的是目錄!");
        }
    }
}

結果

Java?API操作HDFS方法是什么

二、刪除目錄或文件

net.xxr.hdfs包里創建DeleteFileOrDir

Java?API操作HDFS方法是什么

1、刪除文件

  • 刪除/lzy/hello.txt文件

  • 編寫deleteFile()方法

package net.xxr.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.net.URI;
/**
 * 功能:刪除目錄或文件
 */
public class DeleteFileOrDir {
    @Test
    public void deleteFile() throws Exception {
        // 創建配置對象
        Configuration conf = new Configuration();
        // 設置數據節點主機名屬性
        conf.set("dfs.client.use.datanode.hostname", "true");
        // 定義uri字符串
        String uri = "hdfs://master:9000";
        // 創建文件系統對象
        FileSystem fs = FileSystem.get(new URI(uri), conf, "root");
        // 創建路徑對象(指向文件)
        Path path = new Path(uri + "/lzy01/hello.txt");
        // 刪除路徑對象指向的文件(第二個參數表明是否遞歸,刪除文件,不用遞歸)
        boolean result = fs.delete(path, false);
        // 根據返回結果提示用戶
        if (result) {
            System.out.println("文件[" + path + "]刪除成功!");
        } else {
            System.out.println("文件[" + path + "]刪除失敗!");
        }
    }
}

結果

Java?API操作HDFS方法是什么

利用Hadoop WebUI界面查看

Java?API操作HDFS方法是什么

再運行deleteFile()測試方法,查看結果

Java?API操作HDFS方法是什么

可以在刪除文件之前,判斷文件是否存在,需要修改代碼

package net.xxr.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.net.URI;
/**
 * 功能:刪除目錄或文件
 */
public class DeleteFileOrDir {
    @Test
    public void deleteFile() throws Exception {
        // 創建配置對象
        Configuration conf = new Configuration();
        // 設置數據節點主機名屬性
        conf.set("dfs.client.use.datanode.hostname", "true");
        // 定義uri字符串
        String uri = "hdfs://master:9000";
        // 創建文件系統對象
        FileSystem fs = FileSystem.get(new URI(uri), conf, "root");
        // 創建路徑對象(指向文件)
        Path path = new Path(uri + "/lzy01/hi.txt");
        // 判斷路徑對象指向的文件是否存在
        if (fs.exists(path)) {
            // 刪除路徑對象指向的文件(第二個參數表明是否遞歸,刪除文件,不用遞歸)
            boolean result = fs.delete(path, false);
            // 根據返回結果提示用戶
            if (result) {
                System.out.println("文件[" + path + "]刪除成功!");
            } else {
                System.out.println("文件[" + path + "]刪除失敗!");
            }
        } else {
            System.out.println("文件[" + path + "]不存在!");
        }
    }
}

結果

Java?API操作HDFS方法是什么

2、刪除目錄

  • 刪除/ied01目錄

  • 編寫deleteDir()方法

@Test
    public void deleteDir() throws Exception {
        // 創建配置對象
        Configuration conf = new Configuration();
        // 設置數據節點主機名屬性
        conf.set("dfs.client.use.datanode.hostname", "true");
        // 定義uri字符串
        String uri = "hdfs://master:9000";
        // 創建文件系統對象
        FileSystem fs = FileSystem.get(new URI(uri), conf, "root");
        // 創建路徑對象(指向目錄)
        Path path = new Path(uri + "/ied01");
        // 判斷路徑對象指向的目錄否存在
        if (fs.exists(path)) {
            // 刪除路徑對象指向的目錄(第二個參數表明是否遞歸,刪除文件,要遞歸)
            boolean result = fs.delete(path, true);
            // 根據返回結果提示用戶
            if (result) {
                System.out.println("目錄[" + path + "]刪除成功!");
            } else {
                System.out.println("目錄[" + path + "]刪除失敗!");
            }
        } else {
            System.out.println("目錄[" + path + "]不存在!");
        }
    }

Java?API操作HDFS方法是什么

再運行deleteDir()方法,查看結果

Java?API操作HDFS方法是什么

3、刪除目錄或文件

  • 進行三個層面的判斷:判斷類型(目錄或文件)、判斷是否存在、判斷刪除是否成功

  • 刪除/ied03/exam.txt文件和/ied02目錄

  • 編寫delete()方法

@Test
    public void delete() throws Exception {
        // 創建配置對象
        Configuration conf = new Configuration();
        // 設置數據節點主機名屬性
        conf.set("dfs.client.use.datanode.hostname", "true");
        // 定義uri字符串
        String uri = "hdfs://master:9000";
        // 創建文件系統對象
        FileSystem fs = FileSystem.get(new URI(uri), conf, "root");
        // 定義隨機對象
        Random random = new Random();
        // 產生隨機整數 - [0, 1]
        int choice = random.nextInt(100) % 2;
        // 定義路徑字符串
        String[] strPath = {"/ied03/exam.txt", "/ied02"};
        // 創建路徑對象(指向目錄或文件)
        Path path = new Path(uri + strPath[choice]);
        // 判斷類型:目錄或文件
        String type = "";
        if (fs.isDirectory(path)) {
            type = "目錄";
        } else {
            type = "文件";
        }
        // 判斷存在性
        if (fs.exists(path)) {
            // 刪除路徑對象指向的目錄或文件
            boolean result = fs.delete(path, true);
            // 判斷刪除是否成功
            if (result) {
                System.out.println(type + "[" + path + "]刪除成功!");
            } else {
                System.out.println(type + "[" + path + "]刪除失敗!");
            }
        } else {
            System.out.println(type + "[" + path + "]不存在!");
        }
    }

以上就是關于“Java API操作HDFS方法是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平塘县| 上饶县| 泰兴市| 门源| 丰原市| 荔波县| 浮山县| 于都县| 中方县| 桃江县| 阳春市| 吉安县| 苗栗县| 正安县| 菏泽市| 北票市| 基隆市| 保靖县| 介休市| 始兴县| 沙雅县| 满洲里市| 洛扎县| 古交市| 平塘县| 罗城| 东丽区| 福建省| 东兴市| 郁南县| 建水县| 洛南县| 刚察县| 汶川县| 南华县| 马山县| 桃江县| 海安县| 巴楚县| 双桥区| 嵊州市|