hadoop之HDFS的擴充

2021-07-25 03:46:55 字數 2984 閱讀 3681

最近在vm中進行擴容之後考慮,openstack的容量新增,隨之想起hdfs的容量擴充的問題,從網上查詢資料之後,現總結如下:

首先在伺服器上大都使用的linux的系統,實驗上大都採用的是centos開源的專案。

在linux中新增硬碟時,需要考慮的是容量,但是隨著硬體資源的擴充套件現在磁碟的容量可鞥會出現原有系統不能很好的進行

先介紹2種分割槽表:

mbr分割槽表:(mbr含義:主引導記錄)

所支援的最大卷:2t (t; terabytes,1tb=1024gb)

對分割槽的設限:最多4個主分割槽或3個主分割槽加乙個擴充套件分割槽。

gpt分割槽表:(gpt含義:guid分割槽表)

支援最大卷:18eb,(e:exabytes,1eb=1024tb)

每個磁碟最多支援128個分割槽

在此可以根據容量進行選擇

1當磁碟的容量小於2t時,可以直接使用

對硬碟進行分割槽操作,前提是您把fdisk -l 弄明白了;通過fdisk -l ,我們能找出機器中所有硬碟個數及裝置名稱;比如上面的例子,我們會看到兩個裝置乙個是/dev/hda ,另乙個是/dev/sda ;

簡單介紹一下linux的磁碟的分割槽問題:

通常會使用接下來的命令提示進行分割槽操作,

磁碟容量與主分割槽、擴充套件分割槽、邏輯分割槽的關係:

硬碟的容量=主分割槽的容量+擴充套件分割槽的容量

擴充套件分割槽的容量=各個邏輯分割槽的容量之和

一塊物理硬碟只能有

: 一到四個主分割槽

(但其中只能有乙個是活動的主分割槽

),或一到三個主分割槽

,和乙個擴充套件分割槽。分別對應

hda1,hda2,hda3,hda4。

基本上使用fdisk命令即可分割槽。

2.當容量大於2t時,上面個的操作就變得力不從心了

需要使用gpt分割槽:

使用 parted 建立大小超過2t的分割槽

1,parted /dev/sdb

可以輸入p列印磁碟資訊,檢視分割槽的情況,找到起始和結束位置。

2,mklabel gpt

設定分割槽型別為gpt

3,mkpart primary 0% 100%

primary指分割槽型別為主分割槽,0是分割槽開始位置,100%是分割槽結束位置。相同的命令為:mkpart primary 0-1 或者是:mkpart  primary 0  ******結束的空間

4,print

列印當前分割槽,檢視分割槽設定是否正確

5,quit

完成後用quit命令退出。

6,mkfs.ext3  /dev/sdb1

格式化磁碟。如果支援ext4可選擇格式化為ext4,格式化成ext3的時候又出現問題。ext3預設的block size的大小為4k,最大只能支援8t的空間。格式化時指定block size的大小為8k這樣最大可以支援16t的空間。相應命令:mkfs.ext3 -b 8192 /dev/sdb2

7,mount  /dev/sdb1  /home/

掛載到/home目錄下

8,自動掛載分割槽

當在系統裡建立了乙個新的分割槽後,因為mount掛載在重啟服務後會失效,所以需要將分割槽資訊寫到/etc/fstab檔案中讓其永久掛載

/dev/sdb1(磁碟分割槽)                /home(mount目錄)                   ext3(檔案格式)                 defaults                    0             0

儲存退出,重啟後/dev/sdb1 就會自動掛載到/mnt/abc目錄下

以上就完成了基本的容量擴充的功能。

下面引出在hdfs中的擴充的問題,一般的在hadoop的系統搭建完成時,我們都需要先進行乙個hdfs的namenode 的格式化

這主要是

在物理上還未存在,或者用網路磁碟來描述更加合適;還有格式化,並不是傳統意義上的磁碟清理,而是一些清除與準備工作。

namemode是hdfs系統中的管理者,它負責管理檔案系統的命名空間,維護檔案系統的檔案樹以及所有的檔案和目錄的元資料,元資料

同時為了保證操作的可靠性,還引入了操作日誌,所以,namenode會持久化這些資料到本地。對於第一次使用hdfs時,需要執行-format命令才能正常使用namenode節點。

宣告一下

1、hadoop namenode -format命令只對namenode有效,對其它節點無效

。2、集群增加節點,只要在namenode節點的配置檔案中,將

ip和埠以及資料目錄配置一下就可以了。可以用更新或是重啟服務的命令,那麼新增的datanode就會自動追加到集中。

3、稱這樣的系統為高度自由可伸縮系統。增或減節點都能被智慧型控制節點監測到,並將相應的節點的變化,通過冗餘機制給予解決。

主要是在hdfs-site.xml中進行配置

dfs.data.dir

這是datanode結點被指定要儲存資料的本地檔案系統路徑。datanode結點上 的這個路徑沒有必要完全相同,因為每台機器的環境很可能是不一樣的。但如果每台機器上的這 個路徑都是統一配置的話,會使工作變得簡單一些。預設的情況下,它的值hadoop.tmp.dir, 這個路徑只能用於測試的目的,因為,它很可能會丟失掉一些資料。所以,這個值最好還是被覆蓋。 

dfs.name.dir

/pvdata/hadoopdata/name/,/opt/hadoopdata/name/

dfs.name.dir

這是namenode結點儲存hadoop檔案系統資訊的本地系統路徑。這個值只對namenode有效,datanode並不需要使用到它。上面對於/temp型別的警告,同樣也適用於這裡。在實際應用中,它最好被覆蓋掉。

dfs.data.dir

/dev/sda3/hadoopdata/,/dev/sda1/hadoopdata/

可將擴充套件的容量新增至dfs.name.dir的value中。

關於動態的節點管理的話,下次在做總結吧

給出參考

研磨Hadoop之HDFS初探

hdfs是乙個分布式檔案系統,通過目錄樹來定位檔案。hdfs的設計適合一次寫入,多次讀取的場景,且不支援檔案的修改。1 優點 1 高容錯性 資料自動儲存多個副本,通過增加副本提高容錯性。某乙個副本丟失,可以自動恢復 2 適合大資料處理 資料規模 可以處理gb tb 甚至pb的資料 檔案規模 處理百萬...

Hadoop程式設計實現之HDFS

hdfs原理圖 下面我們來寫乙個基於hdfs的demo,該demo主要實現的是將hdfs上的乙個檔案內容讀取出來並儲存到另乙個檔案上的功能。1.輔助類 這個類主要是用來獲取hdfs檔案系統連線的 public class hdfsutils param popenuri param puser re...

Hadoop學習之HDFS架構 二

hdfs可以跨越大集群中的機器可靠地儲存非常大的檔案,將檔案儲存為一系列的塊,除了最後乙個塊外,所有的塊的大小都是相同的。當然若檔案大小正好為塊大小的倍數則所有塊的大小相同。為了容錯的目的,乙個檔案的塊會被複製成若干份,塊大小和複製因子是可配置的。應用程式可以指定檔案的副本數量,複製因子可以在檔案建...