国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐

這篇具有很好參考價(jià)值的文章主要介紹了大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐

hdfs Java API編寫合并文件內(nèi)容

1. 實(shí)驗(yàn)?zāi)康?/strong>

(1) 熟練使用HDFS操作常用的Shell命令。

(2) 熟悉HDFS操作常用的Java API。

2. 實(shí)驗(yàn)內(nèi)容

(1) 編程實(shí)現(xiàn)指定功能,并利用Hadoop提供的Shell命令完成相同任務(wù)(文件的上傳、下載、輸出、刪除、移動(dòng)等操作)。

(2) 有余力編寫一個(gè)Java程序,讀取HDFS中的指定文件。

3. 實(shí)驗(yàn)平臺(tái)(軟件版本)

VirtualBox-6.1.4

jdk-8u162-linux-x64.tar

eclipse-4.7.0-linux.gtk.x86_64.tar

ubuntukylin-16.04-desktop-amd64

hadoop-3.1.3

FileZilla_3.17.0.0_win64_setup 這是一個(gè)用于將windows文件與linux互相傳的軟件

**4. 實(shí)驗(yàn)步驟 **

實(shí)驗(yàn)步驟思維導(dǎo)圖如下圖所示
大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

(1) 啟動(dòng)全分布集群

$ start-dfs.sh

$ start-yarn.sh

$ mr-jobhistory-daemon.sh start historyserver

通過命令jps可以查看各個(gè)節(jié)點(diǎn)所啟動(dòng)的進(jìn)程(如下圖所示:)
大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop
在Slave節(jié)點(diǎn)可以看到DataNode和NodeManager進(jìn)程(如下圖所示:)
大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

集群啟動(dòng)成功:如下圖所示

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

(2) 目錄操作:

① 本教程全部采用hadoop用戶登錄Linux系統(tǒng),因此,需要在HDFS中為hadoop用戶創(chuàng)建一個(gè)用戶目錄,命令如下:

$ hdfs dfs -mkdir -p /user/hadoop

該命令中表示在HDFS中創(chuàng)建一個(gè)“/user/hadoop”目錄,“–mkdir”是創(chuàng)建目錄的操作,“-p”表示如果是多級(jí)目錄,則父目錄和子目錄一起創(chuàng)建,這里“/user/hadoop”就是一個(gè)多級(jí)目錄,因此必須使用參數(shù)“-p”,否則會(huì)出錯(cuò)。

② “-ls”表示列出HDFS某個(gè)目錄下的所有內(nèi)容,“.”表示HDFS中的當(dāng)前用戶目錄,也就是“/user/hadoop”目錄,以下兩個(gè)命令等價(jià)!

$ hdfs dfs –ls .

$ hdfs dfs –ls /user/hadoop

目錄創(chuàng)建與顯示如下圖所示
大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

(3) 文件操作:

① 首先使用vim編輯器,在本地Linux文件系統(tǒng)的“/home/hadoop/”目錄下創(chuàng)建四個(gè)文件file1.txt、file2.txt、file3.txt、file4.abc和file5.abc,文件內(nèi)容分別如下所示:

file1.txt的內(nèi)容是: this is file1.txt
file2.txt的內(nèi)容是: this is file2.txt
file3.txt的內(nèi)容是: this is file3.txt
file4.abc的內(nèi)容是: this is file4.abc
file5.abc的內(nèi)容是: this is file5.abc

② 可以使用如下命令把本地文件系統(tǒng)的“/home/hadoop/***.txt”上傳到HDFS中的當(dāng)前用戶目錄

上傳文件的代碼顯示如下圖所示

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

(4) 利用Java API與HDFS進(jìn)行交互——在Ubuntu中安裝Eclipse

① 可以到Eclipse官網(wǎng)(https://www.eclipse.org/downloads/)下載安裝包。

② 假設(shè)安裝文件下載后保存在了Linux系統(tǒng)的目錄“~/Downloads”下,下面執(zhí)行如下命令對(duì)文件進(jìn)行解壓縮:

$ cd ~/Downloads
$ sudo tar -zxvf ./eclipse-4.7.0-linux.gtk.x86_64.tar.gz -C /usr/local

③ 然后,執(zhí)行如下命令啟動(dòng)Eclipse:

$ cd /usr/local/eclipse`
$ ./eclipse

這樣就可以看到啟動(dòng)界面,如下圖所示:提示設(shè)置工作空間(workspace)

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

可以直接采用默認(rèn)的設(shè)置“/home/hadoop/workspace”,點(diǎn)擊“OK”按鈕。可以看出,由于當(dāng)前是采用hadoop用戶登錄了Linux系統(tǒng),因此,默認(rèn)的工作空間目錄位于hadoop用戶目錄“/home/hadoop”下。

④ 為了能讓代碼順利運(yùn)行,需要在Eclipse工作空間(workspace)的bin目錄下復(fù)制屬于集群上的core-site.xml和dfs-site.xml(它們存放在/usr/local/hadoop/etc/hadoop目錄下)

⑤ Eclipse啟動(dòng)以后,選擇“File->New–>Java Project”菜單,開始創(chuàng)建一個(gè)Java工程,會(huì)彈出如下圖所示界面。

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

⑥ 點(diǎn)擊界面底部的“Next>”按鈕,為項(xiàng)目添加需要用到的JAR包,包含common或者common/lib與hdfs或者h(yuǎn)dfs/lib,還有client下所有的JAR包這些JAR包都位于Linux系統(tǒng)的Hadoop安裝目錄下,對(duì)于本教程而言,就是在“/usr/local/hadoop/share/hadoop”目錄下。點(diǎn)擊界面中的“Libraries”選項(xiàng)卡,然后,點(diǎn)擊界面右側(cè)的“Add External JARs…”按鈕,會(huì)彈出如下圖所示界面。

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

(5) 編寫Java應(yīng)用程序

① 請(qǐng)?jiān)贓clipse工作界面左側(cè)的“Package Explorer”面板中(如下圖所示),找到剛才創(chuàng)建好的工程名稱“HDFSExample”,然后在該工程名稱上點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中選擇“New–>Class”菜單。然后在出現(xiàn)的界面中只需要在“Name”后面輸入新建的Java類文件的名稱,這里采用名稱“MergeFile1”(其余java文件操作類似)“HDFSCreate”“HDFSUpload”…其他都可以采用默認(rèn)設(shè)置,然后,點(diǎn)擊界面右下角“Finish”按鈕

出現(xiàn)如下圖所示界面。

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

read.java創(chuàng)建并編寫完畢后結(jié)果以及最終演示如下圖所示(實(shí)現(xiàn)下載功能,并展示下載內(nèi)容):

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop


(6) 這里展示MergeFile1.java的源代碼文件。

package Demo;
import java.io.IOException;
import java.io.PrintStream;
import java.net.URI;
 
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
 
/**
 * 過濾掉文件名滿足特定條件的文件 
 */
class Filter implements PathFilter {
     String reg = null; 
     Filter(String reg) {
          this.reg = reg;
     }
     public boolean accept(Path path) {
        if (!(path.toString().matches(reg)))
            return true;
        return false;
    }
}
/***
 * 利用FSDataOutputStream和FSDataInputStream合并HDFS中的文件
 */
public class MergeFile1 {
    Path inputPath = null; //待合并的文件所在的目錄的路徑
    Path outputPath = null; //輸出文件的路徑
    public MergeFile1(String input, String output) {
        this.inputPath = new Path(input);
        this.outputPath = new Path(output);
    }
    public void doMerge() throws IOException {
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS","hdfs://192.168.43.49:9000");//特別注意此處192.168.43.49是自己主節(jié)點(diǎn)的IP地址
          conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");
        FileSystem fsSource = FileSystem.get(URI.create(inputPath.toString()), conf);
        FileSystem fsDst = FileSystem.get(URI.create(outputPath.toString()), conf);
                //下面過濾掉輸入目錄中后綴為.abc的文件
        FileStatus[] sourceStatus = fsSource.listStatus(inputPath,
                new Filter(".*\\.abc")); 
        FSDataOutputStream fsdos = fsDst.create(outputPath);
        PrintStream ps = new PrintStream(System.out);
        //下面分別讀取過濾之后的每個(gè)文件的內(nèi)容,并輸出到同一個(gè)文件中
        for (FileStatus sta : sourceStatus) {
            //下面打印后綴不為.abc的文件的路徑、文件大小
            System.out.print("路徑:" + sta.getPath() + "    文件大小:" + sta.getLen()
                    + "   權(quán)限:" + sta.getPermission() + "   內(nèi)容:");
            FSDataInputStream fsdis = fsSource.open(sta.getPath());
            byte[] data = new byte[1024];
            int read = -1;
 
            while ((read = fsdis.read(data)) > 0) {
                ps.write(data, 0, read);
                fsdos.write(data, 0, read);
            }
            fsdis.close();          
        }
        ps.close();
        fsdos.close();
    }
    public static void main(String[] args) throws IOException {
        MergeFile1 merge = new MergeFile1(
                "hdfs://192.168.43.49:9000/user/hadoop/",//特別注意此處192.168.43.49是自己主節(jié)點(diǎn)的IP地址
                "hdfs://192.168.43.49:9000/user/hadoop/merge.txt");//特別注意此處192.168.43.49是自己主節(jié)點(diǎn)的IP地址
        merge.doMerge();
    }
}

MergeFile.java運(yùn)行結(jié)果如下
大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

merge.txt文件生成成功

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

merge.txt文件內(nèi)容展示如下

大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐,hdfs,java,hadoop

5. 完成情況與問題討論

(1) 實(shí)際完成情況

完成!

(2) 問題與討論

問題一:偽分布的java API實(shí)現(xiàn)與全分布有什么不同?

解決:

Configuration conf =new Configuration(); 
//對(duì)于全分布而言是連接到NameNode(主節(jié)點(diǎn)的ip地址)
//對(duì)于偽分布而言使用localhost代替主機(jī)ip地址的輸入。
conf.set("fs.defaultFS", "hdfs://192.168.43.49:9000");
        //得到HDFS的客戶端
FileSystem fs = FileSystem.get(conf);

問題二:出現(xiàn)Wrong FS:hdfs://localhost:9000/user/hadoop/input.txt,excepted:file:///這類問題該怎么辦?

解決:

把配置文件放到當(dāng)前Java工程目錄下:需要把集群上的core-site.xml和hdfs-site.xml(這兩個(gè)文件存在于/usr/local/hadoop/etc/hadoop目錄下)放到當(dāng)前工程項(xiàng)目下,即eclipse工作目錄的bin文件夾下面文章來源地址http://www.zghlxwxcb.cn/news/detail-828000.html

到了這里,關(guān)于大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)指南——HDFS JAVA API編程實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 大數(shù)據(jù)技術(shù)原理及應(yīng)用課實(shí)驗(yàn)5 :MapReduce初級(jí)編程實(shí)踐

    大數(shù)據(jù)技術(shù)原理及應(yīng)用課實(shí)驗(yàn)5 :MapReduce初級(jí)編程實(shí)踐

    目錄 一、實(shí)驗(yàn)?zāi)康?二、實(shí)驗(yàn)平臺(tái) 三、實(shí)驗(yàn)步驟(每個(gè)步驟下均需有運(yùn)行截圖) (一)編程實(shí)現(xiàn)文件合并和去重操作 (二)編寫程序?qū)崿F(xiàn)對(duì)輸入文件的排序 (三)對(duì)給定的表格進(jìn)行信息挖掘 四、實(shí)驗(yàn)總結(jié) 五、優(yōu)化及改進(jìn)(選做) 實(shí)驗(yàn)5 ?MapReduce初級(jí)編程實(shí)踐 1. 通過實(shí)驗(yàn)掌

    2024年01月21日
    瀏覽(29)
  • 大數(shù)據(jù)技術(shù)原理及應(yīng)用課實(shí)驗(yàn)7 :Spark初級(jí)編程實(shí)踐

    大數(shù)據(jù)技術(shù)原理及應(yīng)用課實(shí)驗(yàn)7 :Spark初級(jí)編程實(shí)踐

    實(shí)驗(yàn)7 ?Spark初級(jí)編程實(shí)踐 一、實(shí)驗(yàn)?zāi)康?1. 掌握使用Spark訪問本地文件和HDFS文件的方法 2. 掌握Spark應(yīng)用程序的編寫、編譯和運(yùn)行方法 二、實(shí)驗(yàn)平臺(tái) 1. 操作系統(tǒng):Ubuntu18.04(或Ubuntu16.04); 2. Spark版本:2.4.0; 3. Hadoop版本:3.1.3。 三、實(shí)驗(yàn)步驟(每個(gè)步驟下均需有運(yùn)行截圖) 實(shí)

    2024年01月22日
    瀏覽(27)
  • 大數(shù)據(jù)技術(shù)原理與應(yīng)用 概念、存儲(chǔ)、處理、分析和應(yīng)用(林子雨)——第三章 分布式文件系統(tǒng)HDFS

    大數(shù)據(jù)技術(shù)原理與應(yīng)用 概念、存儲(chǔ)、處理、分析和應(yīng)用(林子雨)——第三章 分布式文件系統(tǒng)HDFS

    大數(shù)據(jù)要解決數(shù)據(jù)存儲(chǔ)問題,所以有了分布式文件系統(tǒng)(DFS),但可能不符合當(dāng)時(shí)的一些應(yīng)用需求,于是谷歌公司開發(fā)了GFS(Google file System)。GFS是閉源的,而HDFS是對(duì)GFS的開源實(shí)現(xiàn)。 1.GFS和DFS有什么區(qū)別? GFS(Google File System)和DFS(Distributed File System)都是分布式文件系統(tǒng),

    2024年02月03日
    瀏覽(99)
  • 云計(jì)算技術(shù) 實(shí)驗(yàn)四 HDFS操作方法和基礎(chǔ)編程

    云計(jì)算技術(shù) 實(shí)驗(yàn)四 HDFS操作方法和基礎(chǔ)編程

    參考資料為: 教材代碼-林子雨編著《大數(shù)據(jù)基礎(chǔ)編程、實(shí)驗(yàn)和案例教程(第2版)》教材所有章節(jié)代碼_廈大數(shù)據(jù)庫實(shí)驗(yàn)室博客 1 . 實(shí)驗(yàn)學(xué)時(shí) 4學(xué)時(shí) 2 . 實(shí)驗(yàn)?zāi)康?熟悉HDFS的基本shell命令 熟悉HDFS的web管理 掌握HDFS編程實(shí)踐 3 . 實(shí)驗(yàn)內(nèi)容 (一)參考實(shí)驗(yàn)指南的內(nèi)容,完成相關(guān)的HDF

    2024年02月08日
    瀏覽(23)
  • 《大數(shù)據(jù)技術(shù)原理與應(yīng)用(第3版)》期末復(fù)習(xí)——第三章分布式文件系統(tǒng)HDFS習(xí)題

    分布式文件系統(tǒng)的結(jié)構(gòu) 1、 名稱節(jié)點(diǎn) (“主節(jié)點(diǎn)”): 負(fù)責(zé)文件和目錄的創(chuàng)建、刪除和重命名等,同時(shí)管理著數(shù)據(jù)節(jié)點(diǎn)和文件塊之間的映射關(guān)系。 2、 數(shù)據(jù)節(jié)點(diǎn) (“從節(jié)點(diǎn)”): 負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和讀取。在存儲(chǔ)時(shí),由名稱節(jié)點(diǎn)分配存儲(chǔ)位置,然后由客戶端把數(shù)據(jù)直接寫入相應(yīng)

    2024年02月12日
    瀏覽(20)
  • 大數(shù)據(jù)技術(shù)原理與應(yīng)用 實(shí)驗(yàn)6 Spark數(shù)據(jù)處理系統(tǒng)的搭建

    大數(shù)據(jù)技術(shù)原理與應(yīng)用 實(shí)驗(yàn)6 Spark數(shù)據(jù)處理系統(tǒng)的搭建

    熟悉常用的Spark操作。 1.熟悉Spark Shell的使用; 2.熟悉常用的Spark RDD API、Spark SQL API和Spark DataFrames API。 操作系統(tǒng):Linux Spark版本: 1.6 Hadoop版本: 3.3.0 JDK版本:1.8 使用Spark shell完成如下習(xí)題: a)讀取Spark安裝目錄下的文件README.md(/usr/local/spark/README.md); b)統(tǒng)計(jì)包含“Spark”的單詞

    2024年02月09日
    瀏覽(28)
  • 大數(shù)據(jù)技術(shù)基礎(chǔ)實(shí)驗(yàn)四:HDFS實(shí)驗(yàn)——讀寫HDFS文件

    大數(shù)據(jù)技術(shù)基礎(chǔ)實(shí)驗(yàn)四:HDFS實(shí)驗(yàn)——讀寫HDFS文件

    在前面的實(shí)驗(yàn)中我們進(jìn)行了HDFS的部署,并設(shè)置了一鍵啟動(dòng)HDFS操作,本期實(shí)驗(yàn)我們將使用HDFS開發(fā)環(huán)境進(jìn)行HDFS寫、讀的編寫,以及程序的運(yùn)行,了解HDFS讀寫文件的調(diào)用流程,理解HDFS讀寫文件的原理。 好啦廢話不多說,我們開始今天的實(shí)驗(yàn)操作。 會(huì)在Linux環(huán)境下編寫讀寫HDFS文

    2023年04月16日
    瀏覽(21)
  • 大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)3——NoSQL和關(guān)系數(shù)據(jù)庫的操作比較

    大數(shù)據(jù)技術(shù)原理與應(yīng)用實(shí)驗(yàn)3——NoSQL和關(guān)系數(shù)據(jù)庫的操作比較

    (1)理解四種數(shù)據(jù)庫(MySQL、HBase、Redis和MongoDB)的概念以及不同點(diǎn); (2)熟練使用四種數(shù)據(jù)庫操作常用的Shell命令; (3)熟悉四種數(shù)據(jù)庫操作常用的Java API。 (1)Linux操作系統(tǒng)(CentOS7.5) (2)VMware Workstation Pro 15.5 (3)遠(yuǎn)程終端工具Xshell7 (4)Xftp7傳輸工具 (5)Hadoop版本:

    2024年02月02日
    瀏覽(14)
  • 大數(shù)據(jù)編程實(shí)驗(yàn)二:熟悉常用的HDFS操作

    大數(shù)據(jù)編程實(shí)驗(yàn)二:熟悉常用的HDFS操作

    實(shí)驗(yàn)?zāi)康?1、理解HDFS在Hadoop體系結(jié)構(gòu)中的角色 2、熟悉使用HDFS操作常用的Shell命令 3、熟悉HDFS操作常用的Java API 實(shí)驗(yàn)平臺(tái) 1、操作系統(tǒng):Windows 2、Hadoop版本:3.1.3 3、JDK版本:1.8 4、Java IDE:IDEA 前期:一定要先啟動(dòng)hadoop ? 1、編程實(shí)現(xiàn)以下功能,并利用Hadoop提供的Shell命令完成相

    2024年02月08日
    瀏覽(27)
  • 大數(shù)據(jù)編程實(shí)驗(yàn)一:HDFS常用操作和Spark讀取文件系統(tǒng)數(shù)據(jù)

    大數(shù)據(jù)編程實(shí)驗(yàn)一:HDFS常用操作和Spark讀取文件系統(tǒng)數(shù)據(jù)

    這是我們大數(shù)據(jù)專業(yè)開設(shè)的第二門課程——大數(shù)據(jù)編程,使用的參考書是《Spark編程基礎(chǔ)》,這門課跟大數(shù)據(jù)技術(shù)基礎(chǔ)是分開學(xué)習(xí)的,但這門課是用的我們自己在電腦上搭建的虛擬環(huán)境進(jìn)行實(shí)驗(yàn)的,不是在那個(gè)平臺(tái)上,而且搭建的還是偽分布式,這門課主要偏向于有關(guān)大數(shù)據(jù)

    2024年04月10日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包