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

溫馨提示×

溫馨提示×

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

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

HDFS讀寫文件操作

發布時間:2020-08-02 08:20:36 來源:網絡 閱讀:373 作者:張濤澤 欄目:大數據

1    運行環境說明

1.1     硬軟件環境

1.2     機器網絡環境

2    書面作業1:編譯并運行《權威指南》中的例3.2

2.1     書面作業1內容

2.2     運行代碼

2.3     實現過程

2.3.1   創建代碼目錄

2.3.2   建立例子文件上傳到hdfs

2.3.3   配置本地環境

2.3.4   編寫代碼

2.3.5   編譯代碼

2.3.6   使用編譯代碼讀取文件

3    書面作業2:寫入HDFS成為一個新文件

3.1    書面作業2內容

3.2    運行代碼

3.3    實現過程

3.3.1   編寫代碼

3.3.2   編譯代碼

3.3.3   建立測試文件

3.3.4   使用編譯代碼上傳文件內容到hdfs

3.3.5   驗證是否成功

4    書面作業3:作業2反向操作

4.1    書面作業2內容

4.2    程序代碼

4.3    實現過程

4.3.1   編寫代碼

4.3.2   編譯代碼

4.3.3   建立測試文件

4.3.4   使用編譯代碼把文件內容從hdfs輸出到文件系統中

4.3.5   驗證是否成功

 

1    運行環境說明

1.1  硬軟件環境

l  主機操作系統:Windows 64 bit,雙核4線程,主頻2.2G6G內存

l  虛擬軟件:VMware Workstation 9.0.0 build-812388

l  虛擬機操作系統:CentOS 64位,單核,1G內存

l  JDK1.7.0_55 64 bit

l  Hadoop1.1.2

1.2  機器網絡環境

該開發機器處于能連接互聯網的局域網中,具體信息為:

序號

IP地址

機器名

類型

用戶名

運行進程

1

10.88.147.220

Hadoop0

單機節點

hadoop

NNSNNTaskTracerDNJobTracer

2    書面作業1:編譯并運行《權威指南》中的例3.2

2.1  書面作業1內容

Hadoop集群中編譯并運行《權威指南》中的例3.2

2.2  運行代碼

import java.io.InputStream;

 

import java.net.URI;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.*;

import org.apache.hadoop.io.IOUtils;

 

publicclass FileSystemCat {

    publicstaticvoid main(String[] args) throws Exception {

        String uri = args[0];

        Configuration conf = new Configuration();

    FileSystem fs = FileSystem. get(URI.create (uri), conf);

    InputStream in = null;

    try {

         in = fs.open( new Path(uri));

         IOUtils.copyBytes(in, System.out, 4096, false);

        finally {

         IOUtils.closeStream(in);

        }

    }

}

2.3  實現過程

Hadoop集群中編譯并運行《權威指南》中的例3.2

2.3.1創建代碼目錄

啟動Hadoop,在/usr/local/hadoop-1.1.2目錄下使用如下命令建立myclassinput目錄:

mkdir myclass

mkdir input

HDFS讀寫文件操作

2.3.2建立例子文件上傳到hdfs

進入/usr/local/hadoop-1.1.2/input目錄,在該目錄中建立quangle.txt文件,內容為:

HDFS讀寫文件操作

使用如下命令在hdfs中建立/usr/hadoop/文件夾

hadoop fs -mkdir /usr/hadoop/

hadoop fs -ls /usr/

HDFS讀寫文件操作

把例子文件上傳到hdfs/usr/hadoop/文件夾中

hadoop fs -copyFromLocal ../input/quangle.txt /usr/hadoop/quangle.txt

hadoop fs -ls /usr/hadoop

HDFS讀寫文件操作

2.3.3配置本地環境

/usr/local/hadoop-1.1.2/conf目錄中的hadoop-env.sh進行配置,如下如所示:

ls

vi hadoop-env.sh

HDFS讀寫文件操作

加入對HADOOP_CLASPATH變量值,值為/usr/local/hadoop-1.1.2/myclass

HDFS讀寫文件操作

2.3.4編寫代碼

進入/usr/local/hadoop-1.1.2/myclass目錄,在該目錄中建立FileSystemCat.java代碼文件,命令如下:

cd /usr/local/hadoop-1.1.2/myclass/

vi FileSystemCat.java

HDFS讀寫文件操作

輸入代碼內容:

HDFS讀寫文件操作

2.3.5編譯代碼

/usr/local/hadoop-1.1.2/myclass目錄中,使用如下命令編譯代碼:

javac -classpath ../hadoop-core-1.1.2.jar FileSystemCat.java

ls

HDFS讀寫文件操作

2.3.6使用編譯代碼讀取文件

使用如下命令讀取quangle.txt內容:

hadoop FileSystemCat /usr/hadoop/quangle.txt

HDFS讀寫文件操作

3    書面作業2:寫入HDFS成為一個新文件

3.1  書面作業2內容新航道雅思培訓

自行在本地文件系統生成一個大約100字節的文本文件,寫一段程序(可以利用Java APIC API),讀入這個文件,并將其第101-120字節的內容寫入HDFS成為一個新文件,提供代碼和執行結果演示抓圖

3.2  運行代碼

注意:在編譯前請先刪除中文注釋!

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.OutputStream;

import java.net.URI;

 

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FSDataInputStream;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

import org.apache.hadoop.io.IOUtils;

import org.apache.hadoop.util.Progressable;

 

publicclass LocalFile2Hdfs {

    publicstaticvoid main(String[] args) throws Exception {

 

        // 獲取讀取源文件和目標文件位置參數

        String local = args[0];

        String uri = args[1];

       

        FileInputStream in = null;

        OutputStream out = null;

        Configuration conf = new Configuration();

        try {

            // 獲取讀入文件數據

            in = new FileInputStream(new File(local));

 

            // 獲取目標文件信息

            FileSystem fs = FileSystem.get(URI.create(uri), conf);

            out = fs.create(new Path(uri), new Progressable() {

                @Override

                publicvoid progress() {

                    System.out.println("*");

                }

            });

 

            // 跳過前100個字符

            in.skip(100);

            byte[] buffer = newbyte[20];

               

            // 101的位置讀取20個字符到buffer

            int bytesRead = in.read(buffer);

            if (bytesRead >= 0) {

                out.write(buffer, 0, bytesRead);

            }

        finally {

            IOUtils.closeStream(in);

            IOUtils.closeStream(out);

        }      

    }

}

3.3  實現過程

3.3.1編寫代碼

進入/usr/local/hadoop-1.1.2/myclass目錄,在該目錄中建立LocalFile2Hdfs.java代碼文件,命令如下:

HDFS讀寫文件操作

輸入代碼內容:

HDFS讀寫文件操作

3.3.2編譯代碼

/usr/local/hadoop-1.1.2/myclass目錄中,使用如下命令編譯代碼:

javac -classpath ../hadoop-core-1.1.2.jar LocalFile2Hdfs.java

ls

HDFS讀寫文件操作

3.3.3建立測試文件

進入/usr/local/hadoop-1.1.2/input目錄,在該目錄中建立local2hdfs.txt文件,內容為:

cd /usr/local/hadoop-1.1.2/input/

vi local2hdfs.txt

HDFS讀寫文件操作

HDFS讀寫文件操作

3.3.4使用編譯代碼上傳文件內容到hdfs

使用如下命令讀取local2hdfs101-120字節的內容寫入HDFS成為一個新文件:

cd /usr/local/hadoop-1.1.2/bin/

hadoop LocalFile2Hdfs ../input/local2hdfs.txt /usr/hadoop/local2hdfs_part.txt

HDFS讀寫文件操作

3.3.5驗證是否成功

使用如下命令讀取local2hdfs_part.txt內容:

hadoop fs -cat /usr/hadoop/local2hdfs_part.txt

HDFS讀寫文件操作

4    書面作業3:作業2反向操作

4.1  書面作業2內容

2的反向操作,在HDFS中生成一個大約100字節的文本文件,寫一段程序(可以利用Java APIC API),讀入這個文件,并將其第101-120字節的內容寫入本地文件系統成為一個新文件,提供代碼和執行結果演示抓圖

4.2  程序代碼

 

4.3  實現過程

4.3.1編寫代碼

進入/usr/local/hadoop-1.1.2/myclass目錄,在該目錄中建立Hdfs2LocalFile.java代碼文件,命令如下:

cd /usr/local/hadoop-1.1.2/myclass/

vi Hdfs2LocalFile.java

HDFS讀寫文件操作

輸入代碼內容:

HDFS讀寫文件操作

4.3.2編譯代碼

/usr/local/hadoop-1.1.2/myclass目錄中,使用如下命令編譯代碼:

javac -classpath ../hadoop-core-1.1.2.jar Hdfs2LocalFile.java

ls

HDFS讀寫文件操作

4.3.3建立測試文件

進入/usr/local/hadoop-1.1.2/input目錄,在該目錄中建立hdfs2local.txt文件,內容為:

cd /usr/local/hadoop-1.1.2/input/

vi hdfs2local.txt

HDFS讀寫文件操作

HDFS讀寫文件操作

把該文件上傳到hdfs/usr/hadoop/文件夾中

cd /usr/local/hadoop-1.1.2/bin/

hadoop fs -copyFromLocal ../input/hdfs2local.txt /usr/hadoop/hdfs2local.txt

hadoop fs -ls /usr/hadoop

HDFS讀寫文件操作

4.3.4使用編譯代碼把文件內容從hdfs輸出到文件系統中

使用如下命令讀取hdfs2local.txt101-120字節的內容寫入本地文件系統成為一個新文件:

hadoop Hdfs2LocalFile /usr/hadoop/hdfs2local.txt ../input/hdfs2local_part.txt

ls ../input

HDFS讀寫文件操作

4.3.5驗證是否成功

使用如下命令讀取hdfs2local_part.txt內容:

cat ../input/hdfs2local_part.txt

HDFS讀寫文件操作


向AI問一下細節

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

AI

鲁山县| 屏东市| 西和县| 茶陵县| 怀化市| 左权县| 丁青县| 金华市| 融水| 阳信县| 余姚市| 阳东县| 清苑县| 敦化市| 万源市| 蓬安县| 纳雍县| 南召县| 高唐县| 鞍山市| 龙井市| 汾西县| 邯郸县| 黎平县| 醴陵市| 秦皇岛市| 罗源县| 关岭| 孟津县| 黑山县| 南充市| 梅河口市| 玉溪市| 神池县| 柘城县| 乐都县| 田东县| 中西区| 大悟县| 惠州市| 施秉县|