Hadoop系列007 HDFS客戶端操作

2021-09-02 22:47:31 字數 3991 閱讀 1101

1 環境準備

1.1 jar包準備

1)解壓hadoop-2.7.2.tar.gz到非中文目錄

注意1:如果使用winrar解壓報錯的話,就使用超級管理員許可權開啟dos視窗,然後cd到解壓包所在位置,執行start winrar x -y ***.tar.gz命令,即可成功

注意2:使用對應平台下編譯後的hadoop原始碼包,即win7系統使用在win7下編譯後的原始碼包,win10同理。

2)進入share資料夾,查詢所有jar包,並把jar包拷貝到_lib資料夾下

3)在全部jar包中查詢.source.jar,並剪下到_source資料夾。

4)在全部jar包中查詢tests.jar,並剪下到_test資料夾。

1.2 idea準備

1)配置hadoop_home環境變數

2)建立工程並且新增依賴

注意:eclipse全選jar包右鍵add build path

3)編寫**測試

4)執行程式

客戶端去操作hdfs時,是有乙個使用者身份的。預設情況下,hdfs客戶端api會從jvm中獲取乙個引數來作為自己的使用者身份:-dhadoop_user_name=atguigu,atguigu為使用者名稱。

5)驗證

2 通過api操作hdfs

2.1 hdfs獲取檔案系統

2.2 hdfs檔案上傳

@test

public void putfiletohdfs() catch (ioexception e) finally

}

@test

public void getfilefromhdfs() catch (ioexception e) finally

}

2.4 hdfs目錄建立
/**

* 在hdfs上建立資料夾

*/@test

public void mkdirathdfs() catch (ioexception e) finally

}

2.5 hdfs資料夾刪除
/**

* 刪除hdfs上的資料夾

*/@test

public void deletedirathdfs() catch (ioexception e) finally

}

2.6 hdfs檔名更改
/**

* 重新命名hdfs上的資料夾

*/@test

public void renamedirathdfs() catch (ioexception e) finally

}

2.7 hdfs檔案詳情檢視
/**

* 讀取hdfs上的檔案資訊

*/@test

public void readfileathdfs()

} catch (ioexception e) finally

}

-----------------------------------

檔名稱:asd.txt

塊的大小:134217728

內容長度:34

檔案許可權:rw-r--r--

-----------------------------------

檔名稱:hadoop-2.7.2.tar.gz

塊的大小:134217728

內容長度:197657687

檔案許可權:rw-r--r--

-----------------------------------

檔名稱:liugx.txt

塊的大小:134217728

內容長度:64

檔案許可權:rw-r--r--

-----------------------------------

檔名稱:x3.000

塊的大小:134217728

內容長度:592

檔案許可權:rw-r--r--

process finished with exit code 0

2.8 hdfs資料夾檢視
/**

* 讀取資料夾資訊

*/@test

public void readffolderathdfs() else

}} catch (ioexception e) finally

}

3 通過io流操作hdfs

3.1 hdfs檔案上傳

/**

* 檔案上傳到hdfs

*/@test

public void putfiletohdfs() catch (ioexception e) finally

}

/**

*/@test

public void getfilefromhdfs() catch (ioexception e) finally

}

3.3 定位檔案讀取
/**

*/@test

public void getfilefromhdfsseek1()

// 5 關閉流

ioutils.closestream(fis);

ioutils.closestream(fos);

} catch (ioexception e) finally

}

/**

*/@test

public void getfilefromhdfsseek2() catch (ioexception e) finally

}

合併檔案

type hadoop-2.7.2.tar.gz.part2 >> hadoop-2.7.2.tar.gz.part1

然後重新命名檔案hadoop-2.7.2.tar.gz.part1,將檔案.part1去掉

開啟檔案驗證

Hadoop系列一HDFS簡介

namenode nn namenode的metadata資訊在啟動後會載入到記憶體中,metadata資訊儲存在磁碟檔案fsimage,edits檔案記錄對metadata的操作日誌,block位置資訊只存在記憶體,不儲存到fsimage。secondarynamenode snn 不是nn的備份...

hadoop系列三 HDFS操作

0 檢視hdfs中的目錄資訊 hadoop fs ls hdfs路徑 1 上傳檔案到hdfs中 hadoop fs put 本地檔案 aaa hadoop fs copyfromlocal 本地檔案 hdfs路徑 copyfromlocal等價於 put hadoop fs movefromloca...

Hadoop系列之HDFS 資料塊 12

要把大檔案儲存在 hdfs上,hdfs 會把大檔案分割成小塊,即我們通常說的資料塊 block 它是 hadoop 分布式檔案系統最小的儲存單元,而且我們沒辦法決定指定塊的儲存節點位址,這些 namenode 會替我們決定。資料塊預設大小是 128mb,比作業系統裡面的塊概念要大很多 作業系統塊大小...