HDFS分散式叢集搭建

無心的Man發表於2024-07-07

1、叢集簡介

Hadoop 叢集具體來說包含兩個叢集:HDFS 叢集和YARN 叢集,兩者邏輯上分離,但物理上常在一起。 另外,對於 Hadoop 的叢集來講,可以分為兩大類角色:master 和 slave。
(1)HDFS 叢集:負責海量資料的儲存,叢集中的角色主要有:NameNode(一個,master)、DataNode(若干,slave)和 SecondaryNameNode(一個)。
(2)YARN 叢集:負責海量資料運算時的資源排程,叢集中的角色主要有: ResourceManager(一個,master) 和 NodeManager(若干,slave)。

為什麼沒有 MapReduce 叢集呢?MapReduce 是什麼呢?
它其實是一個應用程式開發包,也就是一堆 Java 的 jar 包,不需要安裝。

2、安裝包準備

Hadoop 是 Apache 基金會面向全球開源的產品之一,任何使用者都可以從 Apache Hadoop 官網http://archive.apache.org/dist/hadoop/common/下載使用。
本文將以當下較為穩定的 hadoop2.7.7 版本為例,詳細講解 Hadoop 的安裝。所以我們下載 hadoop-2.7.7.tar.gz 即可。

現在已經為大家下載好了 hadoop2.7.7 的安裝包,存放在 /root/software 目錄下,使用如下命令進行解壓即可使用:
tar -zxvf hadoop-2.7.7.tar.gz
將其解壓到當前目錄下,即 /root/software 中,效果圖如下所示

接下來,進入 Hadoop 的安裝目錄,透過 ll 命令檢視 Hadoop 目錄結構,如下圖所示:

從圖中可以看出,Hadoop 安裝目錄包括 bin、etc、include、lib、libexec、sbin、share 共 7 個目錄以及其他一些檔案,下面簡單介紹下各目錄內容及作用。

(1)bin:存放操作 Hadoop 相關服務(HDFS、YARN)的指令碼,但是通常使用 sbin 目錄下的指令碼。

(2)etc:存放 Hadoop 配置檔案,主要包含 core-site.xml、hdfs-site.xml、mapred-site.xml 等從 Hadoop1.0 繼承而來的配置檔案和 yarn-site.xml 等 Hadoop2.0 新增的配置檔案。

(3)include:對外提供的程式設計庫標頭檔案(具體動態庫和靜態庫在 lib 目錄中),這些標頭檔案均是用 C++ 定義的,通常用於 C++ 程式訪問 HDFS 或者編寫 MapReduce 程式。

(4)lib:該目錄包含了 Hadoop 對外提供的程式設計動態庫和靜態庫,與 include 目錄中的標頭檔案結合使用。

(5)libexec:各個服務對應的 shell 配置檔案所在的目錄,可用於配置日誌輸出、啟動引數(比如 JVM 引數)等基本資訊。

(6)sbin:該目錄存放 Hadoop 管理指令碼,主要包含 HDFS 和 YARN 中各類服務的啟動/關閉指令碼。

(7)share:Hadoop 各個模組編譯後的 jar 包所在的目錄。

3、HDFS 叢集主要配置檔案講解

Hadoop 預設提供了兩種配置檔案:

(1)一種是只讀的預設配置檔案,包括 core-default.xml、hdfs-default.xml、mapred-default.xml 和 yarn-default.xml,這些檔案包含了 Hadoop 系統各種預設配置引數;
(2)另一種是 Hadoop 叢集自定義配置時編輯的配置檔案(這些檔案多數沒有任何配置內容,都存在於 Hadoop 安裝包下的 etc/hadoop 目錄中),包括 hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 和 slaves 共 7 個檔案,可以根據需要在這些檔案中對預設配置檔案中的引數進行修改,Hadoop 會優先選擇這些配置檔案中的引數。

  接下來,先透過下表對 Hadoop 叢集搭建可能涉及的主要配置檔案及功能進行描述。

(1)前 2 個配置檔案都是用來指定 Hadoop 和 YARN 所需執行環境。

hadoop-env.sh:用來保證 Hadoop 系統能夠正常執行 HDFS 的守護程序 NameNode、SecondaryNameNode 和 DataNode;
yarn-env.sh:用來保證 YARN 的守護程序 ResourceManager 和 NodeManager 能正常執行。
(2)slaves 檔案儲存了當前叢集的所有從節點的列表。

(3)其它 4 個配置檔案都是用來設定叢集執行引數的,在這些配置檔案中可以使用 Hadoop 預設配置檔案中的引數進行配置來最佳化 Hadoop 叢集,從而使叢集更加穩定高效。

Hadoop 提供的預設配置檔案 core-default.xml、hdfs-default.xml、mapred-default.xml 和 yarn-default.xml 中的引數非常之多,這裡不便一一展示說明。讀者在具體使用時可以透過訪問 Hadoop官方文件 https://hadoop.apache.org/docs/r2.7.7/,進入到文件最底部的 Configuration 部分進行學習和檢視。
uploading-image-3259.png

主機規劃:
172.30.249.192 master
172.30.240.194 slave1
172.30.240.193 slave2

相關文章