最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java API操作HDFS方法詳細(xì)講解

 更新時(shí)間:2023年02月20日 08:29:14   作者:X_Serendipity  
這篇文章主要介紹了Java API操作Hdfs詳細(xì)示例,遍歷當(dāng)前目錄下所有文件與文件夾,可以使用listStatus方法實(shí)現(xiàn)上述需求,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

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

net.xxr.hdfs包里創(chuàng)建PathToFileOrDir類(lèi)

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 {
        // 創(chuàng)建配置對(duì)象
        Configuration conf = new Configuration();
        // 設(shè)置數(shù)據(jù)節(jié)點(diǎn)主機(jī)名屬性
        conf.set("dfs.client.use.datanode.hostname", "true");
        // 定義uri字符串
        String uri = "hdfs://master:9000";
        // 創(chuàng)建文件系統(tǒng)對(duì)象
        FileSystem fs = FileSystem.get(new URI(uri), conf, "root");
        // 創(chuàng)建路徑對(duì)象,指向目錄
        Path path1 = new Path("/ied01");
        if (fs.isDirectory(path1)) {
            System.out.println("[" + path1 + "]指向的是目錄!");
        } else {
            System.out.println("[" + path1 + "]指向的是文件!");
        }
        // 創(chuàng)建路徑對(duì)象,指向文件
        Path path2 = new Path("/lzy01/test2.txt");
        if (fs.isFile(path2)) {
            System.out.println("[" + path2 + "]指向的是文件!");
        } else {
            System.out.println("[" + path2 + "]指向的是目錄!");
        }
    }
}

結(jié)果

二、刪除目錄或文件

net.xxr.hdfs包里創(chuàng)建DeleteFileOrDir類(lèi)

1、刪除文件

  • 刪除/lzy/hello.txt文件
  • 編寫(xiě)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 {
        // 創(chuàng)建配置對(duì)象
        Configuration conf = new Configuration();
        // 設(shè)置數(shù)據(jù)節(jié)點(diǎn)主機(jī)名屬性
        conf.set("dfs.client.use.datanode.hostname", "true");
        // 定義uri字符串
        String uri = "hdfs://master:9000";
        // 創(chuàng)建文件系統(tǒng)對(duì)象
        FileSystem fs = FileSystem.get(new URI(uri), conf, "root");
        // 創(chuàng)建路徑對(duì)象(指向文件)
        Path path = new Path(uri + "/lzy01/hello.txt");
        // 刪除路徑對(duì)象指向的文件(第二個(gè)參數(shù)表明是否遞歸,刪除文件,不用遞歸)
        boolean result = fs.delete(path, false);
        // 根據(jù)返回結(jié)果提示用戶(hù)
        if (result) {
            System.out.println("文件[" + path + "]刪除成功!");
        } else {
            System.out.println("文件[" + path + "]刪除失??!");
        }
    }
}

結(jié)果

利用Hadoop WebUI界面查看

再運(yùn)行deleteFile()測(cè)試方法,查看結(jié)果

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

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 {
        // 創(chuàng)建配置對(duì)象
        Configuration conf = new Configuration();
        // 設(shè)置數(shù)據(jù)節(jié)點(diǎn)主機(jī)名屬性
        conf.set("dfs.client.use.datanode.hostname", "true");
        // 定義uri字符串
        String uri = "hdfs://master:9000";
        // 創(chuàng)建文件系統(tǒng)對(duì)象
        FileSystem fs = FileSystem.get(new URI(uri), conf, "root");
        // 創(chuàng)建路徑對(duì)象(指向文件)
        Path path = new Path(uri + "/lzy01/hi.txt");
        // 判斷路徑對(duì)象指向的文件是否存在
        if (fs.exists(path)) {
            // 刪除路徑對(duì)象指向的文件(第二個(gè)參數(shù)表明是否遞歸,刪除文件,不用遞歸)
            boolean result = fs.delete(path, false);
            // 根據(jù)返回結(jié)果提示用戶(hù)
            if (result) {
                System.out.println("文件[" + path + "]刪除成功!");
            } else {
                System.out.println("文件[" + path + "]刪除失敗!");
            }
        } else {
            System.out.println("文件[" + path + "]不存在!");
        }
    }
}

結(jié)果

2、刪除目錄

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

再運(yùn)行deleteDir()方法,查看結(jié)果

3、刪除目錄或文件

  • 進(jìn)行三個(gè)層面的判斷:判斷類(lèi)型(目錄或文件)、判斷是否存在、判斷刪除是否成功
  • 刪除/ied03/exam.txt文件和/ied02目錄
  • 編寫(xiě)delete()方法
@Test
    public void delete() throws Exception {
        // 創(chuàng)建配置對(duì)象
        Configuration conf = new Configuration();
        // 設(shè)置數(shù)據(jù)節(jié)點(diǎn)主機(jī)名屬性
        conf.set("dfs.client.use.datanode.hostname", "true");
        // 定義uri字符串
        String uri = "hdfs://master:9000";
        // 創(chuàng)建文件系統(tǒng)對(duì)象
        FileSystem fs = FileSystem.get(new URI(uri), conf, "root");
        // 定義隨機(jī)對(duì)象
        Random random = new Random();
        // 產(chǎn)生隨機(jī)整數(shù) - [0, 1]
        int choice = random.nextInt(100) % 2;
        // 定義路徑字符串
        String[] strPath = {"/ied03/exam.txt", "/ied02"};
        // 創(chuàng)建路徑對(duì)象(指向目錄或文件)
        Path path = new Path(uri + strPath[choice]);
        // 判斷類(lèi)型:目錄或文件
        String type = "";
        if (fs.isDirectory(path)) {
            type = "目錄";
        } else {
            type = "文件";
        }
        // 判斷存在性
        if (fs.exists(path)) {
            // 刪除路徑對(duì)象指向的目錄或文件
            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 + "]不存在!");
        }
    }

到此這篇關(guān)于Java API操作HDFS方法詳細(xì)講解的文章就介紹到這了,更多相關(guān)Java API操作HDFS內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 8個(gè)Spring事務(wù)失效場(chǎng)景詳解

    8個(gè)Spring事務(wù)失效場(chǎng)景詳解

    相信大家對(duì)Spring種事務(wù)的使用并不陌生,但是你可能只是停留在基礎(chǔ)的使用層面上。今天,我們就簡(jiǎn)單來(lái)說(shuō)下Spring事務(wù)的原理,然后總結(jié)一下spring事務(wù)失敗的場(chǎng)景,并提出對(duì)應(yīng)的解決方案,需要的可以參考一下
    2022-12-12
  • 使用SpringBoot+EasyExcel+Vue實(shí)現(xiàn)excel表格的導(dǎo)入和導(dǎo)出詳解

    使用SpringBoot+EasyExcel+Vue實(shí)現(xiàn)excel表格的導(dǎo)入和導(dǎo)出詳解

    這篇文章主要介紹了使用SpringBoot+VUE+EasyExcel?整合導(dǎo)入導(dǎo)出數(shù)據(jù)的過(guò)程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Springboot中RedisTemplate設(shè)置String、Hash、List過(guò)期時(shí)間

    Springboot中RedisTemplate設(shè)置String、Hash、List過(guò)期時(shí)間

    本文主要介紹了Springboot中RedisTemplate設(shè)置String、Hash、List過(guò)期時(shí)間,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Springboot整合Freemarker的實(shí)現(xiàn)詳細(xì)過(guò)程

    Springboot整合Freemarker的實(shí)現(xiàn)詳細(xì)過(guò)程

    這篇文章主要介紹了Springboot整合Freemarker的實(shí)現(xiàn)詳細(xì)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • java播放聲音類(lèi)和一個(gè)簡(jiǎn)單示例

    java播放聲音類(lèi)和一個(gè)簡(jiǎn)單示例

    這篇文章主要介紹了一個(gè)java播放聲音類(lèi)和一個(gè)java播放聲音的應(yīng)用程序,應(yīng)用程序可以單次播放聲音、循環(huán)播放聲音,需要的朋友可以參考下
    2014-03-03
  • Springboot項(xiàng)目引入druid安裝部署使用教程

    Springboot項(xiàng)目引入druid安裝部署使用教程

    這篇文章主要介紹了Springboot項(xiàng)目引入druid安裝部署使用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 深入理解Java8新特性之Lambda表達(dá)式的基本語(yǔ)法和自定義函數(shù)式接口

    深入理解Java8新特性之Lambda表達(dá)式的基本語(yǔ)法和自定義函數(shù)式接口

    Lambda 表達(dá)式,也可稱(chēng)為閉包,它是推動(dòng) Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個(gè)方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)。使用 Lambda 表達(dá)式可以使代碼變的更加簡(jiǎn)潔緊湊
    2021-11-11
  • SpringBoot實(shí)現(xiàn)多環(huán)境配置文件切換教程詳解

    SpringBoot實(shí)現(xiàn)多環(huán)境配置文件切換教程詳解

    很多時(shí)候,我們項(xiàng)目在開(kāi)發(fā)環(huán)境和生成環(huán)境的環(huán)境配置是不一樣的,例如,數(shù)據(jù)庫(kù)配置,這個(gè)時(shí)候就需要切換環(huán)境配置文件。本文將詳細(xì)講解SpringBoot如何切換配置文件,需要的可以參考一下
    2022-03-03
  • springboot?Long?精度丟失問(wèn)題解決

    springboot?Long?精度丟失問(wèn)題解決

    這篇文章主要為大家介紹了解決springboot?Long?精度丟失問(wèn)題的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Java 鎖粗化與循環(huán)問(wèn)題

    Java 鎖粗化與循環(huán)問(wèn)題

    這篇文章主要介紹了Java 鎖粗化與循環(huán)的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04

最新評(píng)論

庐江县| 新津县| 隆安县| 乐平市| 望奎县| 土默特左旗| 四子王旗| 东乌珠穆沁旗| 陵水| 扎赉特旗| 喀喇| 马边| 东方市| 安龙县| 马鞍山市| 玛纳斯县| 揭阳市| 永泰县| 仁布县| 星子县| 三穗县| 象山县| 保定市| 游戏| 临高县| 宽城| 米易县| 互助| 潼南县| 红桥区| 景德镇市| 乌苏市| 江门市| 彰武县| 洛宁县| 贵港市| 东乌珠穆沁旗| 贺州市| 望谟县| 米泉市| 宣化县|