Hadoop集群中新增硬碟

2021-06-11 05:27:53 字數 4355 閱讀 9437

hadoop工作節點擴充套件硬碟空間

接到老闆任務,hadoop集群中硬碟空間不夠用,要求加一台機器到hadoop集群,並且每台機器在原有基礎上加一塊2t硬碟,老闆給力啊,哈哈。

這些我把完成這項任務的步驟和我遇到的問題和解決方法總結一下,分享給大家。

1.    首先,介紹一下用到的基本命令和配置,如果本文的網友時間比較緊,可以直接跳過部分內容,直接看「2.   如何載入新硬碟」部分。

(1)命令fdisk

語法:fdisk [-b sectorsize] device    

fdisk -l [-u] [device...]

fdisk -s partition...

fdisk –v

說明:-b 指定每個分割槽的大小。也可以執行fdisk device(如:fdisk /dev/sdb)後,在系統提示時指定。

-l   列出指定的外圍裝置的分割槽表狀況。如果僅執行fdisk -l,系統會列出已知的分割槽。

-u   搭配"-l"引數列表,會用分割槽數目取代柱面數目,來表示每個分割槽的起始位址。

-s 將指定的分割槽的大小輸出到標準輸出上,單位為區塊。

-v   顯示fdisk的版本資訊。

(2)命令mkfs

語法:mkfs [-v][-t fstype] [fs-options] filesys

說明:

-v   顯示簡要的使用方法。

-t 指定要建立何種檔案系統,如:ext3, ext4。

fs   指定建立檔案系統時的引數。

-v   顯示版本資訊與詳細的使用方法。

(3)命令mount

語法:mount [-affnrsvw] [-t vfstype] [-llabel]  [-o options] device dir

mount [-lhv]

說明:-a   載入檔案/etc/fstab中設定的所有裝置。

-f    不實際載入裝置。可與-v等引數同時使用以檢視mount的執行過程。

-f   需與-a引數同時使用。所有在/etc/fstab中設定的裝置會被同時載入,可加快執行速度。

-t vfstype  指定載入的檔案系統型別,如:ext3,ext4。

-l label      給掛載點指定乙個標籤名稱。

-l    顯示分割槽的label。

-h   顯示幫助資訊。

-v   顯示mount的版本資訊。

device 要掛載的分割槽或檔案。如果device是乙個檔案,掛載時須加上-o loop引數。

dir   分割槽的掛載點。

(4)fstab配置說明

/etc/fstab 中一共有6列:

file system:指定要掛載的檔案系統的裝置名稱(如:/dev/sdb)。也可以採用uuid,uuid可以通過使用blkid命令來檢視(如:blkid  /dev/sdb)指定裝置的uuid號。

mount point:掛載點。就是自己手動建立乙個目錄,然後把分割槽掛載到這個目錄下。

type:用來指定檔案系統的型別。如:ext3, ext4, ntfs等。

option dump:0表示不備份;1表示要將整個中的內容備份。此處建議設定為0。

pass:用來指定fsck如何來檢查硬碟。0表示不檢查;掛載點為分割槽/(根分割槽)必須設定為1,其他的掛載點不能設定為1;如果有掛載ass設定成大於1的值,則在檢查完根分割槽後,然後按pass的值從小到大依次檢查,相同數值的同時檢查。如:/home 和/boot 的pass 設定成2,/devdata的pass 設定成3,則系統在檢查完根分割槽,接著同時檢查/boot和/home,再檢查/devdata。 2.

如何載入新硬碟(想詳細了解為什麼會這樣操作,請看第三部分「詳解步驟」部分)

(1)通過命令fdisk –lu,顯示「disk /dev/sdb doesn't contain a valid partition table」說明sdb就是新新增的硬碟,下面主要針對它進行操作。如圖1所示。

(2)下面對sdb進行分割槽,命令:fdisk/dev/sdb,如下圖2所示,按提示操作。

根據提示,輸入n,想新硬碟新增乙個分割槽。出現commandaction時,輸入e,指定分割槽為擴充套件分割槽(extended)。出現partition number(1-4)時,輸入1表示只分乙個區。

續指定起啟柱面(cylinder)號完成分割槽。如圖3所示。

(3)最後輸入p,列印出新硬碟分割槽表,圖4所示。

(5)此時,用命令fdisk –lu分割槽情況,如圖6所示

(6)對新分割槽進行格式化:sudo mkfs -t ext4 /dev/sdb,(推薦ext4,時間比較快,具體了解看第三部分「詳細步驟」)如圖7所示。

(7)掛載硬碟sudo mount -t ext4 /dev/sdb /devdata(這裡devdata是自己制定的目錄,你可以指定任意目錄,我載入的目錄是dfs.data.dir指定的目錄),到此時已經完成了所有步驟,下面就是修補。此時就可以用命令sudo df –h檢視了,如圖8所示。

(8)如果想每次手動載入,使用命令mount –a。如果想讓系統自動載入,需要配置/etc/fstab,如下圖9所示。

到此載入過程完成。

如果是hadoop集群,此時需要將每個工作節點dfs.data.dir目錄重新修改許可權,使用命令:chown –r dm:dm/usr/local/hadoop/data/(這是dfs.data.dir指向的目錄),然後將namenode格式化即可,這裡筆者就是忘了更改dfs.data.dir指向目錄的許可權,導致datanode啟動不起來,汗啊。

3.    詳解步驟

(1)對於2中(1)的名稱sdb,其實linux對裝置的命名有它自己的一套規則,根據介面型別來區分儲存裝置,按儲存裝置占用的系統介面編號為其分配識別符號。對於ide儲存裝置(並口裝置)識別符號為hd,按裝置使用介面的不同,分別命名為had,hdb,hdc等;對於scsi介面,sata介面裝置(串列埠)和序列匯流排介面使用sd作為標識,仍按照使用介面編號不同,以sda,sdb等為其命名。

(2)對2中的(2)分割槽。在使用硬碟儲存資料時,還需要對硬碟進行分割槽,按分割槽的使用方法可以將硬碟分割槽分為3種:主分割槽、擴充套件分割槽和邏輯分割槽。其中主分割槽是最基本的分割槽型別,它可以直接掛載並儲存資料,乙個硬碟最多只能有4個主分割槽。linux系統中對這4個主分割槽使用1、2、3、4作為識別符號。例如硬碟sda上的第1個主分割槽的標識為sda1,同理其他三個標識分別為sda2,sda3, sda4;擴充套件分割槽是一種特殊的主分割槽,如果要使用擴充套件分割槽儲存資料,必須先將擴充套件分割槽劃分為邏輯分割槽(即邏輯分割槽加你在擴充套件分割槽基礎之上),如果要在乙個硬碟上建立4個以上的分割槽,就必須使用擴充套件分割槽。由於擴充套件分割槽也是一種主分割槽,因此擴充套件分割槽也占用乙個主分割槽號;在擴充套件分割槽分割槽基礎之上,可以建立多個邏輯分割槽,邏輯分割槽可以直接掛載並儲存資料。邏輯分割槽的標識數字從5開始,例如sda5,sda6。linux系統中的硬碟分割槽使用以上識別符號命名並儲存在/dev中,要使用分割槽儲存資料時,需要將對應的塊裝置檔案掛載到乙個目錄下。掛載裝置的過程可以描述成:為使用者使用該分割槽存放和讀取資料提供乙個介面和途徑。這裡為什麼建立擴充套件分割槽,而不是建立主分割槽,筆者的理由是主分割槽包含啟動的一些附加資訊,而這些資訊是用來引導系統啟動的,這裡的磁碟只是為了擴充原有磁碟的容量來儲存資料,如果擴充套件分割槽直接分成邏輯分割槽,不需要這些附加資訊,從而可以更加充分地利用新硬碟的空間,這個解釋不保證正確,如果有誤,請智者指正。

(3)2中(6)提到了檔案系統ext4,可以參考

(4)2中(8)的fstab設定可參考

引用**:

hadoop集群新增namenode的步驟及常識

clusterid 新增了乙個新的識別符號clusterid用於標識集群中所有的節點。當格式化乙個namenode,需要提供這個識別符號或者自動生成。這個id可以被用來格式化加入集群的其他namenode。格式化namenodes 第一步 使用如下命令格式化乙個namenode hadoop pre...

hadoop集群新增和格式化namenode的步驟

clusterid 新增了乙個新的識別符號clusterid用於標識集群中所有的節點。當格式化乙個namenode,需要提供這個識別符號或者自動生成。這個id可以被用來格式化加入集群的其他namenode。格式化namenodes 第一步 使用如下命令格式化乙個namenode hadoop pre...

Hadoop 增加硬碟

1.fdisk dev sdb,對硬碟進行分割槽設定 2.格式化 mkfs.xfs dev sdb1 f 3.mount 硬碟 建立目錄 mkdir data01 mount dev sdb1 data01 4.設定電腦重啟後,自動mount vim etc fstab dev sdb1 data0...