1. 程式人生 > >Hadoop3.0通用版叢集安裝高可靠詳細教程【包括零基礎】

Hadoop3.0通用版叢集安裝高可靠詳細教程【包括零基礎】

問題導讀
1.hadoop3.x檢測虛擬記憶體的情況下,可能會產生什麼問題?
2.hadoop3.x中,下面各個配置的作用是什麼?
3.dfs.blocksize可以使用哪些單位?


轉載註明來自about雲:
連結:http://www.aboutyun.com/forum.php?mod=viewthread&tid=23773
作業系統:centos7

hadoop3.0【GA版】叢集安裝與hadoop2.x叢集安裝還是有一定區別的。通過比較發現,hadoop3.x中除了yarn中增加的可定義資源【Hadoop3.0: YARN Resource自定義資源配置說明http://www.aboutyun.com/forum.php?mod=viewthread&tid=23626】,其它配置項基本都是相同的。但是在常用配置裡面,卻有比較大的不同。因為很多如果不配置,在2.x中不會報錯,但是在3.x中會出問題。比如:虛擬記憶體的檢測,如果不配置,那麼在2.x中一般不會出現問題,但是在3.x則成為常用配置。缺少此配置項yarn.nodemanager.vmem-check-enabled,可能會出現下面問題。


Container  is running beyond virtual memory limits. Current usage: 44.5 MB of 1 GB physical memory used; 2.5 GB of 2.1 GB virtual memory 

used. Killing container


所以需要加上

[XML] 純文字檢視 複製程式碼

?

1234<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property
>


當然解決方法比較多,大家也可以調整其它引數。
這裡只是舉例,其它的大家可以嘗試。為了照顧一些零基礎的同學,下面從零開始搭建叢集。

首先通過虛擬機器安裝centos7.不會可參考下面文章
VMware workstation安裝linux(ubuntu)配置詳解
http://www.aboutyun.com/forum.php?mod=viewthread&tid=6424

centos7下載:
連結: https://pan.baidu.com/s/1eTj2fb8 密碼: rmjw


1.網路配置

步驟3彈出內容:

 

如上圖,我們按照配置即可。對於手動、自動、僅本地,這裡選擇需要按住滑鼠不動,才能選擇對應的內容。其中:閘道器不要使用192.168.1.1,這樣可能上不了網。對於虛擬機器的網路可參考此篇文章:

虛擬機器三種網路模式該如何上網指導

http://www.aboutyun.com/forum.php?mod=viewthread&tid=6700




2.jdk1.8\hadoop環境變數設定

安裝包:連結: https://pan.baidu.com/s/1pKVVNdx 密碼: d3s7

配置JDK

在~/.bashrc裡面加入JAVA_HOME、JRE_HOME、HADOOP_HOME、PATH、CLASSPATH:

[Bash shell] 純文字檢視 複製程式碼

?

12345export JAVA_HOME="/usr/hadoop3.0-yarn/jdk1.8"export HADOOP_HOME="/usr/hadoop-3.0.0"export JRE_HOME="$JAVA_HOME/jre"export PATH="$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"export CLASSPATH="./:$JAVA_HOME/lib:$JRE_HOME/lib"

生效:

[Bash shell] 純文字檢視 複製程式碼

?

1source ~/.bashrc

分發到slave1和slave2上

[Bash shell] 純文字檢視 複製程式碼

?

12scp ~/.bashrc [email protected]:~/scp ~/.bashrc [email protected]:~/

執行生效

補充:

source命令的作用就是用來執行一個指令碼

更多補充:

#####################################################

補充1:source與./a.sh 不同之處

你在一個腳本里export $KKK=111 ,如果你用./a.sh執行該指令碼,執行完畢後,你執行 echo $KKK ,發現沒有值,如果你用source來執行,然後再echo ,就會發現KKK=111。因為呼叫./a.sh來執行shell是在一個子shell裡執行的,所以執行後,結構並沒有反應到父shell裡,但是source不同它就是在本shell中執行的,所以可以看到結果

補充2:Linux環境變數配置檔案的區別:

(1) /etc/profile:此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行. 並從/etc/profile.d目錄的配置檔案中搜集shell的設定。

(2) /etc/bashrc: 為每一個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取(即每次新開一個終端,都會執行bashrc)。

(3) ~/.bash_profile: 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當用戶登入時,該檔案僅僅執行一次。預設情況下,設定一些環境變數,執行使用者的.bashrc檔案。

(4) ~/.bashrc: 該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該該檔案被讀取。

(5