王孬孬young的Hadoop叢集搭建:)
王孬孬young的Hadoop叢集搭建 ?
基於redhat的安裝(所需安裝包為:jdk1.8.0_121 hadoop-2.8.1 redhat映象版本為rhel-server-7.3-x86_64-dvd.iso)
1 在安裝Redhat時用圖形化介面建立一個使用者,名為hadoop。
2 用root身份進入後 開啟終端 用vi編輯器開啟 /etc/sudoers 後 找到root ALL=(ALL) ALL
在其下面加上 hadoop ALL=(ALL) ALL--------目的使Hadoop使用者擁有root許可權
3 用ifconfig檢視機器的名字
4 用vi編輯器開啟 /etc/sysconfig/network-scripts/ifcfg-ens33(ens33為機器名)
{注意: 最後末尾處新增的ip地址網段要和虛擬機器中的網段保持一致,(Ip自定義但是不能超過255) 其中這兩個中的第三位數字要和VMware Workstation中的網段一致,檢視VMware Workstation中的網段:編輯 ->虛擬網路編輯器(如下圖)}
開啟檔案後先修改網路配置檔案,將BOOTPROTO值修改為”static”
然後在最後面加上以下網路配置後 按wq!儲存退出
IPADDR=192.168.205.140 注意:140是自己為電腦設定的IP地址 (自定義但是不能超過255) 205為我自己VM中的網段
GATEWAY=192.168.205.2
NETMASK=255.255.255.0
DNS1=101.226.4.6(如圖所示)
5 執行 service network restart
重啟網路服務,然後等待一分鐘後
6 執行ping www.baidu.com
在虛擬機器聯網的情況下,測試網路配置是否成功
7 執行echo master > /etc/hostname
8 用vim編輯器開啟 /etc/hosts後顯示
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
在這個檔案內新增以下三行 ,格式為 Ip地址 主機名 為了方便linux 系統之間進行通訊
192.168.205.140 master 注意: 205為我本機VMware Workstation中的網段 192.168.205.141 slave1 192.168.205.142 slave2
9 完成之後輸入reboot重啟
10 提前將Hadoop 和jdk下載到u盤裡,方便以後使用
在vm右下角有DISK,設定其為連線。然後插上u盤。虛擬機器會自動識別。然後把jdk和Hadoop直接解壓縮
(tar -zxvf 檔名.tar.gz)到usr的soft下面(soft是自己建立的資料夾)
11 輸入:cd /usr/soft/hadoop-2.8.1/etc/hadoop/
12 用vim編輯器開啟hadoop-env.sh後找到# The java implementation to use.後將下面一行換為
export JAVA_HOME=/usr/soft/jdk1.8.0_121
13 用vim編輯器開啟yarn-env.sh後找到# some Java parameters將
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/下第一個if …fi換為
if
[ “$JAVA_HOME” != “” ]; then
#echo “run java in $JAVA_HOME”
JAVA_HOME=/usr/soft/jdk1.8.0_121
fi
14 用vim編輯器開啟 slaves後 刪除locallhsot 填入:slave1 slave2
15 用vim編輯器開啟core-site.xml後在中插入以下內容:
16 同理用vim編輯器開啟hdfs-site.xml後在中插入以下內容
<property>
<name>dfs.namenode.secondary.http-address</name>
<value> master:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/soft/hadoop-2.8.1/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/soft/hadoop-2.8.1/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
17 同理用vim編輯器mapred-site.xml開啟後在中插入以下內容
mapreduce.framework.name yarn mapreduce.jobhistory.address master:10020 mapreduce.jobhistory.webapp.address master:1988818 同理用vim編輯器開啟yarn-site.xml後在中插入以下內容
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
注:如果開啟xml後發現裡面什麼都沒有,為新建檔案,退出vim編輯器後再次vi 檔案.xml 按tab鍵完整顯示檔名後再次進 入vim編輯器新增內容
19 在master節點(就是當前的Redhat)上建立以下資料夾
/usr/hadoop-2.8.1/dfs/name
/usr/hadoop-2.8.1/dfs/data
/usr/hadoop-2.8.1/temp
20 用vim編輯器開啟 /etc/profile 在最後面加上
export JAVA_HOME=/usr/soft/jdk1.8.0_121
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/usr/soft/hadoop-2.8.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
21 執行 source /etc/profile命令
克隆
將master 進行兩次克隆。
第一次克隆的節點名為slave1
第二次克隆的節點名為slave2
1 用root使用者登入後 修改克隆後的節點網路配置
在slave1 slave2中分別用vim編輯器開啟 /etc/sysconfig/network-scripts/ifcfg-ens33
將slave1 中的IPADDR後面的改為192.168.205.141(slave1)
將slave2中的 IPADDR改為192.168.205.142(slave2)
分別service network restart----- 重啟網路服務
2 分別修改克隆後的節點名稱
echo slave1 > /etc/hostname
echo slave2 > /etc/hostname
3 重啟slave1與slave2
reboot
4 切換到master的root使用者
開啟終端 輸入ssh localhost 遇到選擇的時候輸入y 要求輸入root密碼的時候記得輸入密碼
cd ~/.ssh/
ssh-keygen -t rsa 一路空格
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
5 切換到slave1與slave2的root使用者,分別輸入1.ssh localhost
2. cd ~/.ssh/
3. ssh-keygen -t rsa
後使用cat id_rsa.pub
命令 會分別顯示slave1 slave2的密匙
6 再切換到master的root使用者 用vim編輯器開啟authorized_keys
複製slave1 slave2的密匙在authorized_keys儲存退出後 在master裡的root使用者下執行
7 在master的root使用者下執行 scp authorized_keys [email protected]:~/.ssh/
後
執行scp authorized_keys [email protected]:~/.ssh/
8 在master下的root使用者中 永久關閉防火牆 systemctl disable firewalld
這樣重啟後,防火牆不會自動啟動。
另外,拓展一下
檢視防火牆狀態-------systemctl status firewalld
臨時關閉防火牆命令。重啟電腦後,防火牆自動啟動------systemctl stop firewalld
開啟防火牆命令----systemctl enable firewalld
9 在master中的root使用者下執行
hdfs namenode -format
【血淚教訓!!!這個程式碼不要複製,要手打,複製會引起格式不對的問題,然後機器就涼涼了,請看 文章開頭然後重灌 (假裝快樂.jpg)】
10 在master的root使用者下執行 start-all.sh
11 在master的root使用者下執行 jps後顯示四行程式碼
12 在slave1 slave2 中執行jps 顯示三行程式碼
恭喜恭喜啦~
Hadoop叢集就成功搭建完成啦 yeah~~