91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

辽宁省| 偏关县| 长顺县| 苍南县| 江孜县| 简阳市| 蓬莱市| 墨江| 荔浦县| 都昌县| 岐山县| 蚌埠市| 盐亭县| 扬中市| 新邵县| 清涧县| 花莲县| 古田县| 西城区| 泗水县| 洪江市| 荥经县| 德庆县| 平南县| 新乡县| 福建省| 常山县| 江源县| 五寨县| 温泉县| 临桂县| 福州市| 阿克陶县| 夏河县| 泰和县| 开鲁县| 丘北县| 丹江口市| 黑山县| 吴旗县| 五原县|