1. 程式人生 > >王孬孬young的Hadoop叢集搭建:)

王孬孬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中的網段:編輯 ->虛擬網路編輯器(如下圖)}
注意左下角 子網IP:我的為 205

開啟檔案後先修改網路配置檔案,將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

-----修改主機名稱為master
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後在中插入以下內容:

fs.defaultFS hdfs://master:9000 hadoop.tmp.dir file:/usr/soft/hadoop-2.8.1/temp/

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:19888

18 同理用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的密匙 slave1 密匙

6 再切換到master的root使用者 用vim編輯器開啟authorized_keys
複製slave1 slave2的密匙在authorized_keys儲存退出後 在master裡的root使用者下執行
複製貼上slave1 slave2 的密匙
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~~