1. 程式人生 > >大資料之三 完全分散式搭建

大資料之三 完全分散式搭建

完全分散式

多臺伺服器,每臺伺服器啟動表示不同角色的不同程序,組成HDFS叢集 現在以四臺虛擬機器為例,主機名分別為node01,node02,node03,node04. node01–>NameNode node02–>SecondaryNameNode DateNode node03–>DateNode node04–>DataNode

完全分散式搭建步驟

  1. 首先確保各節點都配置好靜態IP
  2. 配置各節點的hosts,修改/etc/hosts檔案
[[email protected] ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.23.130 node01
192.168.23.131 node02
192.168.23.133 node03
192.168.23.134 node04

  1. 關閉各節點的防火牆 使用 service iptables status命令檢視當前防火牆狀態 使用 service iptables stop暫時關閉防火牆(防火牆會在下次開機時啟動) 使用 chkconfig iptables off永久關閉防火牆(該命令在下次重啟時生效)

  2. 時間同步 首先在各個節點上使用yum install ntp安裝ntp命令 執行ntpdate ntp1.aliyun.com來同步時間(這裡使用阿里雲伺服器的時間)

  3. 配置SSH免密登入 在所有節點上執行ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 在node01節點上執行以下命令(將node01的公鑰加入到其他節點的白名單中)

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
  1. 所有節點配置JDK 所有節點在 /etc/profile 中配置JDK環境變數
export JAVA_HOME=/opt/zgl/jdk1.8.0_151		<!-- 你的JDK的實際位置 -->
export PATH=$PATH:$JAVA_HOME/bin

  1. 在node01節點(即NameNode節點)配置hadoop 修改hdfs-site.xml配置檔案
    <property>
            <name>dfs.replication</name>
            <value>3</value>	<!-- 總儲存分數(備份數+1)-->
    </property>
    
    <property>     
     <name>dfs.namenode.secondary.http-address</name>
         <value>node02:50090</value>	   <!-- SecondaryNameNode的位置 -->
    </property>

修改core-site.xml配置檔案

<property>
        <name>fs.defaultFS</name>		<!--  HDFS檔案預設地址字首(簡化實際訪問時路徑書寫) -->
        <value>hdfs://node01:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>			<!-- HDFS檔案儲存位置 -->
        <value>/var/abc/hadoop/cluster</value>
</property>

修改slaves配置檔案 配置DataNode節點,注意每行寫一個

node02
node03
node04

修改hadoop-env.sh配置檔案

    # The java implementation to use.
    export JAVA_HOME=/opt/zgl/jdk1.8.0_151
    # 在hadoop-env.sh 配置一條hadoop配置檔案所在目錄
    export HADOOP_CONF_DIR=/opt/zgl/hadoop-2.6.5/etc/hadoop

重新整理配置 source hadoop-env.sh

  1. 將配置好的hadoop安裝包分發到其他節點上 使用 scp 命令將hadoop安裝包分發到其他節點,注意其他節點提前建好目錄且與node01目錄(名稱,層級)保持一致 eg: node01 /opt/zgl/hadoop-2.6.5 其他節點 /opt/zgl
scp -r hadoop-2.6.5 [email protected]:/opt/zgl/
scp -r hadoop-2.6.5 [email protected]:/opt/zgl
scp -r hadoop-2.6.5 [email protected]:/opt/zgl/
  1. 關閉所有的HDFS相關程序 可以使用命令 killall java因為 hadoop 是基於JVM的

  2. 在node01節點執行格式化NameNode

	hdfs namenode -format
  1. 在node01節點上啟動HDFS
	start-dfs.sh
  1. 在各節點上執行jps命令檢視節點是否啟動
[[email protected] ~]# jps
2408 NameNode
3545 Jps

[[email protected] ~]# jps
2225 DataNode
2290 SecondaryNameNode
4283 Jps

[[email protected] ~]# jps
3252 Jps
2110 DataNode

[[email protected] ~]# jps
4662 Jps
2111 DataNode

這裡我們也可以通過hadoop提供的 web UI 來進行檢視 開啟瀏覽器,輸入http://192.168.23.130:50070(因為主機 hosts 檔案中並未配置node01,所以這裡不能使用 http://node01:50070來訪問),然後我們就來到如下頁面 node01 WEB UI 在 Summary 中可以看到 Live Nodes(存活節點數),點選 Live Nodes可以進入節點詳情頁 Live Nodes Live Nodes詳情頁

思維導圖

完全分散式搭建思維導圖