中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何使用Java API操作Hadoop環境搭建

發布時間:2021-07-12 11:46:41 來源:億速云 閱讀:233 作者:chen 欄目:編程語言

本篇內容主要講解“如何使用Java API操作Hadoop環境搭建”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用Java API操作Hadoop環境搭建”吧!

本教程演示均為windows環境下的操作,使用unix/linux系統請繞道。

首先,在服務器上部署安裝好Hadoop,下載安裝包傳送門 hdp下載地址,在這里不再過多演示。

配置windows中的Hadoop環境
1.將linux服務器上部署的Hadoop安裝包下載一份到windows下,保證是英文安裝目錄。

2.配置系統環境變量,這里以hadoop2.6.5為例。實際配置中請替換成自己的版本。

3.在系統Path變量中添加

4.下載相關依賴包,傳送門 winutils地址

然后將對應版本的winutils拷貝至安裝hadoop的bin目錄下,將hadoop.dll添加到C:\Windows\System32文件夾下。

使用IDEA編寫代碼測試操作Hadoop服務器
1.新建maven工程

2.添加maven依賴

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.6.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.6.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.6.5</version>
        </dependency>
3.編寫測試方法調試

   public static void main(String[] args) {
        //設定hadoop環境變量,以防配置時出錯,系統環境變量配置正確也可省略
        System.setProperty("hadoop.home.dir", "D:\\Bigdata\\hadoop\\hadoop-2.6.5");
        FileSystem fs = null;
        try {
            //hdfs訪問路徑
            URI uri = new URI("hdfs://192.168.7.103:9000/");
 
            Configuration conf = new Configuration();
            //獲取hdfs客戶端
            fs = FileSystem.get(uri, conf, "root");
 
            testFileInfoList(fs);
//          testCoprFromLocalFile(fs);
 
        } catch (Exception e){
            System.out.println("執行出錯...");
        } finally {
            try {
                fs.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
 
    /**
     * 獲取/路徑下所有文件目錄
     */
    public static void printRootFile(FileSystem fs) throws IOException {
 
        FileStatus[] listStatus = fs.listStatus(new Path("/"));
 
        Arrays.asList(listStatus).stream().map(FileStatus::getPath).forEach(System.out::println);
 
    }
 
    /**
     * 創建目錄
     */
    public static void mkdir(FileSystem fs) throws IOException {
        fs.mkdirs(new Path("/test1/mkdirs"));
    }
 
    /**
     * 測試從hdfs上下載文件
     * @param fs
     * @throws IOException
     */
    public static void testDownLoad(FileSystem fs) throws IOException {
 
        Path localPath = new Path("C:\\Users\\Desktop\\lpthw.pdf");
 
        System.out.println(localPath);
 
        fs.copyToLocalFile(new Path("/test1/file/lpthw.pdf"), localPath);
    }
 
    /**
     * 測試上傳本地文件到hdfs
     * @param fs
     */
    public static void testCoprFromLocalFile(FileSystem fs) throws IOException {
 
        fs.copyFromLocalFile(new Path("C:\\Users\\Desktop\\lpthw.pdf"), new Path("/test1/file/lpthw.pdf"));
 
        System.out.println("done...");
    }
 
    /**
     * 測試文件刪除
     * @param fs
     * @throws IOException
     */
    public static void testDelete(FileSystem fs) throws IOException {
 
        fs.delete(new Path("/client/"), true);
 
        System.out.println("done...");
    }
 
    /**
     * 獲取文件詳細信息
     * @param fs
     * @throws IOException
     */
    public static void testFileInfoList(FileSystem fs) throws IOException {
        RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"), true);
 
        while (listFiles.hasNext()){
            LocatedFileStatus fileStatus = listFiles.next();
 
            System.out.println("文件名:" + fileStatus.getPath().getName());
 
            System.out.println("長度:" + fileStatus.getLen());
 
            System.out.println("權限:" + fileStatus.getPermission());
 
            BlockLocation[] blockLocations = fileStatus.getBlockLocations();
 
            System.out.println("存儲的塊信息:" + fileStatus.getGroup());
 
            for (BlockLocation blockLocation : blockLocations) {
                // 獲取塊存儲的主機節點
                String[] hosts = blockLocation.getHosts();
 
                for (String host : hosts) {
                    System.out.println(host);
                }
            }
 
            System.out.println("=============================");
 
        }
 
        System.out.println("done...");
 
    }
————————————————

下載地址

https://archive.apache.org/dist/hadoop/common/

https://github.com/cdarlint/winutils

到此,相信大家對“如何使用Java API操作Hadoop環境搭建”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

康定县| 宁阳县| 冀州市| 和硕县| 酉阳| 古浪县| 五家渠市| 万源市| 陆丰市| 嵊泗县| 淳安县| 延川县| 黔江区| 惠安县| 城固县| 洛阳市| 榆中县| 宁南县| 商南县| 忻州市| 辽阳市| 竹山县| 于田县| 台中市| 岳普湖县| 洪洞县| 滨海县| 饶平县| 牙克石市| 桦川县| 沅江市| 新干县| 美姑县| 巴南区| 新河县| 新绛县| 遂溪县| 海盐县| 仙游县| 合作市| 略阳县|