大數據教程(二)—— Hadoop集羣壞境CentOS安裝

前言

前面我們主要分析了搭建Hadoop集羣所需要準備的內容和一些提前規劃好的項,本篇我們主要來分析如何安裝CentOS操作系統,以及一些基礎的設置,閒言少敘,我們進入本篇的正題。

技術準備

VMware虛擬機、CentOS 6.8 64 bit

安裝流程

因爲我的筆記本是Window7操作系統,然後內存配置,只有8G,內存配置太低了,當然爲了演示,我會將Hadoop集羣中的主節點分配2GB內存,然後剩餘的三個節點都是1GB配置。

所有的節點存儲我都設置爲50GB。

在安裝操作系統之前,我們需要提前規劃好操作系統的分區如何設置,我們知道,在Linux系統中,它的磁盤分區並不同於Windows系統,它是通過目錄掛載的方式進行分區,簡單點說的話就是將不同的系統內置目錄進行分配到不同的邏輯分區中,然後我們在進行存儲的時候只需要根據目錄進行存放就可以了。

上面的這種分區方式是和Windows操作系統有區別的,當然在Linux操作系統中還存在磁盤格式的不同,比如一般常見的格式爲:ext2,ext3,ext4等,我們當前最常用的就是ext3,關於每種格式的不同點和應用場景大家有興趣的可以網上查閱,這裏不再贅述。

那麼我們來分析一下Linux系統中最常見的幾種目錄分區方式

  • /boot 系統引導目錄,用來存放與Linux系統啓動相關的程序,比如啓動引導裝載程序等。建議大小200MB。
  • /usr  存放系統中安裝的應用程序,一般的數據都比較多,所以建議大於3GB。
  • /var  用來存放Linux系統中經常變化的數據以及日誌文件,建議大於1GB。
  • /home 存放普通用戶的數據,是普通用戶的宿主目錄,一般一個用戶就會創建一個home目錄,建議大小爲剩下的空間。
  • /  爲Linux系統的根目錄,所有的目錄都掛在到這個目錄下面,建議大小爲大於5GB以上。
  • /tmp 臨時文件存放的地方,一般需要獨立的分區,這樣可以避免系統被塞滿後系統的穩定性。建議大小爲500MB以上。
  • swap  這個是虛擬內存,一般建議爲物理內存的1——2倍。

以上爲我基於我們的50GB的存儲空間做的一個規劃,如果生產或者物理機大家可以根據需要成比例遞增。

下面,咱們進去CentOS操作系統的詳細安裝過程。

1、首先需要在VMWare中創建一個新的計算機,然後指定CentOS的鏡像路徑和用戶名和密碼。

hadoophadoop

2、指定當前虛擬機操作系統的存儲大小和內存大小。

hadoop

hadoop

3、點擊完成VMware就進入了系統自動安裝的過程中,然後等待完成安裝就可以。

hadoop

4、至此,我們已經成功的安裝上了CentOS操作系統,然後安裝的過程中順便創建了一個新用戶Hadoop,這個賬戶就是我們後面安裝Hadoop集羣環境所使用的賬號。

hadoop

5、我們登陸到CentOS操作系統,然後進入系統的首先要做的事情就是:改計算機名!改計算機名!改計算機名!

打開終端輸入界面,然後根據角色更改當前計算機的名稱。打開終端的方式是在右鍵——>Open In Terminal

  • 輸入su命令,切換至root超級用戶,然後利用vim 命令編輯/etc/sysconfig/network文件。

hadoop

  • 然後編輯文件中的HOSTNAME,設置爲我們提前規劃好的Master.Hadoop

hadoop

  • 然後保存該文件,重啓計算機。

hadoop

hadoop

  • 重啓計算機,查看設置是否生效。

hadoop

至此,你的計算機名稱更改完畢!

6、在修改完成計算機名之後,我們需要做的就是設置固定IP,然後配置Host文件。

當然,這裏有幾個知識點需要跟大家講解一下,就是關於網絡的配置,其實在VMware虛擬機中存在幾種網絡模式:

hadoop

其實,這裏最常用的就是第二種模式:NAT模式(N):用於共享主機的IP地址,但是,這裏我需要跟大家講解的是,其實在我們的生產環境中,每一臺虛擬機都是需要獨立配置IP的,爲了最大限度的避免因爲宿主機的網絡帶來的問題,在Hadoop集羣中我們選擇第一種模式:橋接模式(B):直接連接物理網絡。啥意思呢?意思就是很簡單,雖然你現在用的是虛擬機,但是把它當成物理機一樣,也給插上網線,連接到本地的網絡中去。

當然,如果選擇這種方式的前提是要保證你的局域網的網段和之前咱們規劃的IP是一致的,必須都是192.168.1.* 這種網段,這樣的目的很簡單就是宿主機和我們的虛擬機能夠直接通信,那就意味這主機能聯網,我們的虛擬機就能聯網。

然後,我們進入我們的虛擬機進行固定IP的設置。

我們利用界面進行設置,畢竟這種方式比較簡單易操作:

hadoophadoop

然後,根據我們之前的系統規劃,將我們的IP設置上,這裏有一個選項一定要勾選上:Available to all users.我之前搭建集羣的時候就因爲這一個選擇折騰了我一天的時間!!這都是坑哈…記住了!!!勾上!!

然後,就是驗證我們當前虛擬機是否能上網,IP是否能成功配置。

hadoop

然後,確保能上網,畢竟咱們需要下載很多安裝包。

hadoop

應該明白上面我輸入的含義吧、這貨是最常用的命令。

最後一定要記得修改我們的hosts文件,當然了在生產集羣中一般都會有自己的DNS服務器,但是這裏我們條件有限,就手動的配置下Host文件得了。

切換至root超級管理員賬戶,然後修改host文件,執行以下命令:

vim /etc/hosts

hadoop

保存文件,然後重啓一下服務器。至此,關於服務器的網絡我們已經配置完成了。

7、上面我們完成了CentOS的基礎配置,確保了計算機能夠聯網,下面我們就需要下載Hadoop安裝包,然後進入Hadoop集羣的搭建工作。

首先,我們需要下載安裝Hadoop集羣環境中需要的Jdk包,因爲Java編寫的嘛,然後下載Hadoop安裝包,所以我們切換到CentOS的Downloads目錄下:

cd /home/hadoop/Downloads

然後,下載我們所需要的安裝包,到這個目錄下:

cd /home/hadoop/Downloads/

我們找到相關的版本的java JDK和Hadoop版本包,這裏我們選擇Hadoop 最新的安裝包,記住下載安裝包的時候一定要上Hadoop官網上下載,能避免很多不必要的麻煩。

hadoop

CentOS中下載腳本如下:

wget http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz

hadoop

然後,我們下載JDK,這個上Oracle官網上,找到最新版本的JDK下載就可以了,同樣我們也保存到Downloads目錄中。

hadoop

JDK下載腳本如下:

wget http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.tar.gz

到此,我們已經準備好了相關的安裝包,有圖有真相:

hadoop

當然了,如果感覺這種方式比較麻煩,就直接下載到本地,然後拷貝到CentOS系統中就可以了,文章的最後我也會給出相關的下載包文件,再次提醒:一定要上官網下載!

8、上面完成了安裝包的下載,下面就是Hadoop配置了。

其實,關於Hadoop環境的配置分爲兩步:1、Java環境配置;2、Hadoop配置。原因很簡單,因爲Hadoop就是Java語言編寫的,所以一定要先配置好Java環境。

  • Java環境的配置

首先,我們來解壓剛纔我們下載的JDK文件,然後配置環境變量。

解壓腳本如下,記住一點要在剛纔咱們下載的Downloads文件夾下進行:

tar -zxvf jdk-8u101-linux-x64.tar.gz

如果這裏一直報錯,或者沒法解壓,那說明你下載的JDK安裝包不完整,需要從新下載,或者你直接Windows環境下確保下載完成,順便解壓了。
所以,這裏我就用了之前已經下載的jdk版本,直接解壓就好了。

hadoop

然後,上面我們已經介紹過,一般將安裝的程序存入到系統的/usr目錄中,所以這裏在usr目錄中創建一個Java目錄,然後配置環境變量。

mkdir /usr/java

上面的腳本需要在root超級用戶下進行創建,所以在執行命令的需要先用su命令進行提權。創建完成之後,記得更改一下這個java新建目錄的權限。

chown hadoop:hadoop /usr/java/

上面的腳本就是將這個新建的java目錄,變更Owner,直接賦權給hadoop用戶。因爲我們需要用這個用戶進行環境的搭建。我們來驗證下:

hadoop

這裏重點提示下:權限配置在linux系統中是一個很重的流程,一定要確保當前用戶能夠擁有文件的執行權限,要不會出現各種莫名其妙的問題!!!

下面,我們來更改一下系統的環境變量,記得使用root用戶,編輯腳本:

vim /etc/profile

添加,如下腳本:

# set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_73
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

然後,將我們解壓好的java文件夾拷貝至我們新創建的文件夾,刷新該文件,驗證是否生效,腳本如下:

[root@Master Downloads]# cp -r jdk1.8.0_73 /usr/java/
[root@Master Downloads]# java -version

hadoop

至此,我們的Java運行環境已經配置完成。

  • Hadoop環境的配置

Hadoop的安裝其實很簡單的,因爲只需要配置好相應的幾個關鍵我文件就可以了。

首先,和上面的java配置類似,我們現在/usr目錄下創建一個hadoop文件夾,然後賦權給hadoop用戶,然後將我們下載的hadoop安裝包進行解壓,拷貝至我們新建的hadoop目錄,腳本如下:

--解壓Hadoop安裝包
tar -zxvf hadoop-2.6.4.tar.gz 
--/usr目錄下,創建hadoop目錄
mkdir /usr/hadoop
--拷貝解壓後的hadoop安裝包
cp -r hadoop-2.6.4 /usr/hadoop
--賦權給Hadoop用戶
chown hadoop:hadoop /usr/hadoop/

hadoop

我們下面就是需要對幾個關鍵的文件進行配置了,詳細步驟如下:

首先,我們先進入到我們要配置的hadoop安裝目錄中:

cd /usr/hadoop/hadoop-2.6.4/

這裏提示一下,所有的咱們需要配置的文件都存放於hadoop安裝目錄的/etc/hadoop中,首先咱們來配置第一個文件core-site.xml

vim etc/hadoop/core-site.xml

添加以下內容:

<configuration>
<!-- HDFS file path -->
<property>
 <name>fs.defaultFS</name>
 <value>hdfs://192.168.1.50:9000</value>
 </property>

 <property>
 <name>io.file.buffer.size</name>
 <value>131072</value>
 </property>

 <property>
 <name>hadoop.tmp.dir</name>
 <value>file:/usr/hadoop/hadoop-2.6.4/tmp</value>
 <description>Abasefor other temporary directories.</description>
 </property>
 <property>
</configuration>

上面的配置項很簡單,首先配置HDFS默認的連接地址,然後流文件的配置大小,默認是4K太小了,這裏我們將這個值改的大一點,然後最後就是生成臨時結果的配置路徑,這裏需要根據你的配置結果手動創建。

下面,我們就來創建該目錄,如果在生產環境中,我們需要將該配置的目錄指定到一個固定的配置目錄下,這裏咱們方便演示就直接配置到Hadoop安裝目錄裏面了。

腳本如下:

mkdir tmp

然後,咱來配置第二個文件hdfs-site.xml

vim etc/hadoop/hdfs-site.xml
<property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>192.168.1.50:9001</value>
 </property>

 <property>
 <name>dfs.namenode.name.dir</name>
 <value>file:/usr/hadoop/hadoop-2.6.4/dfs/name</value>
 </property>

 <property>
 <name>dfs.datanode.data.dir</name>
 <value>file:/usr/hadoop/hadoop-2.6.4/dfs/data</value>
 </property>

 <property>
 <name>dfs.replication</name>
 <value>1</value>
 </property>

 <property>
 <name>dfs.webhdfs.enabled</name>
 <value>true</value>
 </property>

這幾個參數解釋下含義:

<1>dfs.namenode.secondary.http-address 這個含義就是SecondName的地址,在上一篇文章中我就分析過,這個是作爲NameNode的一個備份,目的就是災備之用了。因爲我們這個就一個機器所以都配置了相同的機器,只是用了不同的端口。

<2>dfs.namenode.name.dir 和 dfs.namenode.data.dir兩個配置指的是NameNode存儲的DataNode元數據的信息,這裏需要配置兩個目錄一個是存放Name和Data目錄,稍後我們需要手動創建出這兩個目錄

<3>dfs.replication這個含義是數據文件塊(black)複製備份的個數,我們知道在HDFS分佈式文件系統中,爲了保證數據的完整性,底層的機制是需要多拷貝幾份數據分不到不同的計算機上的,目的同樣是災備。

<4>dfs.webhdfs.enabled這個指的是是否可以通過web站點進行Hdfs管理,後面我們會演示,如何通過頁面打開HDFS文件。

好,我們下面手動來創建上面的Name和Data的兩個目錄:

mkdir dfs
mkdir dfs/name
mkdir dfs/data

至此,我們第二個文件配置完成。

然後,咱來配置第三個文件mapred-site.xml

前面的兩個文件,都有現成的文件進行配置,但是,這第三個文件需要我們自己來創建,當然,Hadoop系統給我們提供了一個模板文件,所以我們拷貝形成一份新的就行了。

hadoop

我們執行cp命令,來創建一個新的mapred-site.xml文件。

cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

然後,修改該文件。腳本如下:

vim etc/hadoop/mapred-site.xml
<configuration>
 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>
 <property>
 <name>mapreduce.jobhistory.address</name>
 <value>192.168.1.50:10020</value>
 </property>
 <property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>192.168.1.50:19888</value>
 </property>
</configuration>

我們來解釋這幾個參數的含義:第一個就是制定當前Hadoop的並行運行計算架構,這裏爲yarn,當然還有其它的運行架構比如:spark等,第二個就是Job運行的歷史記錄Server,第三個就是歷史運行記錄的Web服務器。

然後,咱來配置第四個文件yarn-site.xml。

vim etc/hadoop/yarn-site.xml
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 <property>
 <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
 <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>
 <property>
 <name>yarn.resourcemanager.address</name>
 <value>192.168.1.50:8032</value>
 </property>
 <property>
 <name>yarn.resourcemanager.scheduler.address</name>
 <value>192.168.1.50:8030</value>
 </property>
 <property>
 <name>yarn.resourcemanager.resource-tracker.address</name>
 <value>192.168.1.50:8035</value>
 </property>
 <property>
 <name>yarn.resourcemanager.admin.address</name>
 <value>192.168.1.50:8033</value>
 </property>
 <property>
 <name>yarn.resourcemanager.webapp.address</name>
 <value>192.168.1.50:8088</value>
 </property>

這個yarn的配置參數我就不怎麼解釋了,因爲我們後續的調優會一直圍繞這個文件進行。

至此,我們已經完成了Hadoop四個配置文件的配置,然後,不要忘記了最重要的一點:配置Hadoop的jdk路徑,不指定是不能運行的。

hadoop-env.sh  和 yarn-env.sh  在開頭添加如下java環境變量:

 export JAVA_HOME=/usr/java/jdk1.8.0_73
vim etc/hadoop/hadoop-env.sh

hadoop

同樣的道理,我們來配置yarn-env.sh 文件。

hadoop

好了,到此,我們已經完成了Hadoop所有的配置文件,這個過程一定要小心認真。然後在最後放一個大招,我們知道我們需要制定這所有的文件Hadoop用戶都有執行權限,所以我們將通過如下命令將Hadoop文件夾下所有的文件,進行Owner變更。

chown -R hadoop:hadoop /usr/hadoop/hadoop-2.6.4/

我再強調一遍,已經要把權限配置好,要不後面的運行故障足夠把你玩死!!!

hadoop

8、上面我們完成了Hadoop基礎配置,然後我們格式化文件,來啓動這個單節點的Hadoop集羣。

到此,我們已經完成了Hadoop的配置了,下面要做的就是格式化HDFS文件,然後啓動單節點的Hadoop集羣。

  • Hadoop 分佈式存儲系統的HDFS格式化,記住了,這貨只能在初始化系統的時候用一次,一次就好了,要不執行一次數據就丟失一次,我們來執行以下命令:
bin/hadoop namenode -format

hadoop

看到上面顯示的信息,那就說明你已經成功執行了,否則報什麼錯誤,解決什麼錯誤。一般錯誤的原因都是配置文件粗心導致的錯誤,自己仔細檢查就得了。

  • Hadoop 集羣進行啓動驗證

這裏的驗證方式有兩點,第一點就是保證HDFS完整沒問題,驗證方式如下:

首先,啓動HDFS

 sbin/start-dfs.sh

然後,查看狀態

bin/hadoop dfsadmin -report

hadoop

還有一種更直接的方式,直接打開瀏覽器查看:http://192.168.1.50:50070/dfshealth.html#tab-overview

hadoop

是不是很酷,這裏可以直接查看分佈式文件系統HDFS的各個狀態。有興趣的自己查看吧…我們接着驗證其它的內容。

  • Hadoop 集羣啓動查看

首先,我來啓動Hadoop集羣,然後查看其狀態,腳本如下:

sbin/start-yarn.sh

這次來個大招,直接打來瀏覽器瞅瞅,地址爲:

hadoop

至此,一款單機版的裝X神器Hadoop已經被我們搭建成功,當然這只是單機版的後面我們會逐漸完善它,並且,將節點完全配置成功。

在完成到此的時候,已經可以進行集羣搭建了,然後後面的文章我將教你怎麼搭建所謂的僞分佈式…全分佈式的大數據平臺。….淡定….不要着急…..

結語

此篇篇幅已經超長度了,先到此吧,關於Hadoop大數據集羣的搭建後續依次介紹,比如利用Zookeeper搭建Hadoop高可用平臺、Map-Reducer層序的開發、Hive產品的數據分析、Spark的應用程序的開發、Hue的集羣壞境的集成和運維、Sqoop2的數據抽取等,有興趣的童鞋可以提前關注。

本篇主要介紹了搭建一個Hadoop單機集羣,後面我們會逐漸完善它,我會教你如何一步步的搭建起完全分佈式的Hadoop集羣,然後教你如何使用它,騷年…不要捉急…讓思維飛一會…

有問題可以留言或者私信,隨時恭候有興趣的童鞋加大數據平臺深入研究。共同學習,一起進步。

來源:36大數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章