Hadoop集群中添加硬盤


Hadoop工作節點擴展硬盤空間

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

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

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

(1)命令fdisk

語法:

fdisk [-b sectorsize] device    

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

fdisk -s partition...

fdisk –v

說明:

-b <sectorsize>   指定每個分區的大小。也可以執行fdisk device(如:fdisk /dev/sdb)后,在系統提示時指定。

-l   列出指定的外圍設備的分區表狀況。如果僅執行 fdisk -l,系統會列出已知的分區。

-u   搭配"-l"參數列表,會用分區數目取代柱面數目,來表示每個分區的起始地址。

-s <parttion>       將指定的分區的大小輸出到標准輸出上,單位為區塊。

-v   顯示fdisk的版本信息。

(2)命令mkfs

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

說明:

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

-t <fstype>   指定要建立何種文件系統,如: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表示要將整個<file system>中的內容備份。此處建議設置為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所示。

 

                                                    圖1

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

 

                                                            圖2

根據提示,輸入n,想新硬盤添加一個分區。出現Commandaction時,輸入e,指定分區為擴展分區(extended)。出現Partition number(1-4)時,輸入1表示只分一個區。

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

 

                                                             圖3

(3)      最后輸入p,打印出新硬盤分區表,圖4所示。

 

                                                                 圖4

(4)      在Command (m for help)提示符后面輸入w,保存分區表。系統提示:Thepartition table has been altered! 如圖5所示。

 

                                                                    圖5

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

 

                                                                        圖6

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

 

                                                             圖7

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

 

                                                  圖8

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

 

                                                       圖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,可以參考http://baike.baidu.com/view/266589.htm#7

(4)2中(8)的fstab設置可參考http://baike.baidu.com/view/5499388.htm

 

引用網址:http://aofengblog.blog.163.com/blog/static/6317021201101502540117/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM