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] 純文字檢視 複製程式碼
?
12345 | export 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] 純文字檢視 複製程式碼
?
1 | source ~/.bashrc |
分發到slave1和slave2上
[Bash shell] 純文字檢視 複製程式碼
?
12 | scp ~/.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