爲了學習Hadoop生態的部署和調優技術,在筆記本上的3臺虛擬機部署Hadoop集羣環境,要求保證HA,即主要服務沒有單點故障,能夠執行最基本功能,完成小內存模式的參數調整。
1. 準備環境
1.1. 規劃
- 克隆3臺服務器,主機名和IP如下
主機名 |
IP |
軟件 |
hadoop |
192.168.154.128 |
原始虛擬機用於克隆 |
hadoop1 |
192.168.154.3 |
Zookeeper,journalnode Namenode, zkfc, Resourcemanager |
hadoop2 |
192.168.154.4 |
Zookeeper,journalnode Namenode, zkfc, Resourcemanager, DataNode,NodeManager |
hadoop3 |
192.168.154.5 |
Zookeeper,journalnode DataNode,NodeManager |
- 設置每臺服務器的域名解析
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.154.3 hadoop1[1] 192.168.154.4 hadoop2 192.168.154.5 hadoop3
1.2. 準備軟件包
名稱 |
描述 |
ssh_auth |
設置互信的工具包 |
C3 |
集羣管理效率工具,在集羣範圍執行shell命令 |
hadoop-2.7.3.tar.gz |
hadoop安裝包 |
zookeeper-3.4.9.tar.gz |
zookeeper安裝包 |
1.3. 設置互信
採用設置互信的工具,解壓文件到目錄
vi ./host
hadoop1
hadoop2
hadoop3
執行命令
./ssh_auth.sh hadoop hadoop ./host
驗證:在hadoop1,hadoop2,hadoop3上分別登錄三臺機器,如果無需密碼進入則正常
ssh hadoop1 exit ssh hadoop2 exit ssh hadoop3 exit
爲了操作簡單,也設置root用戶的互信
./ssh_auth.sh root xxxxxx ./host
xxxxxx爲root用戶的密碼
1.4. 安裝C3
C3是Cluster Command & Control (C3) Tool Suite,是集羣管理的效率工具,用於在集羣服務器上通過ssh並行或者串行執行相同的命令。在Centos7上安裝報告與filesystem-3.2-20.el7.x86_64衝突,所以需要強行安裝,命令如下:
rpm -i c3-5.1.3-0.1.noarch.rpm --nodeps --force
安裝完成後,在使用C3的節點創建/etc/c3.conf文件。內容如下:
cluster cloud { hadoop1:127.0.0.1 #head node dead remove-index-00 hadoop1 hadoop2 hadoop3 }
驗證:切換回hadoop用戶,執行cexec date
************************* cloud ************************* --------- hadoop1--------- ×××××××××× --------- hadoop2--------- ×××××××××× --------- hadoop3--------- ××××××××××
1.5. 創建目標目錄
切換到root用戶 (用su -,使得root的環境變量起作用)
cexec mkdir -p /opt/cloud cexec chown hadoop:hadoop /opt/cloud
切換到hadoop用戶
#軟件包的安裝(解壓縮的目標)目錄 cexec mkdir -p /opt/cloud/packages #執行目錄,是與安裝包目錄的軟連接 cexec mkdir -p /opt/cloud/bin #配置文件目錄,是與安裝包目錄中配置文件目錄的軟連接 cexec mkdir -p /opt/cloud/etc #數據目錄 cexec mkdir -p /opt/cloud/data #日誌目錄 cexec mkdir -p /opt/cloud/logs
1.6. 配置Java環境
vi ~/.bashrc
增加
export JAVA_HOME=/usr/lib/jvm/java export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH
即刻生效
source ~/.bashrc
複製到另外兩臺服務器
scp ~/.bashrc hadoop2:/home/hadoop scp ~/.bashrc hadoop3:/home/hadoop