1. 程式人生 > >HDFS完全分散式搭建

HDFS完全分散式搭建

目錄

前期配置

  1. 修改靜態IP
    修改/etc/sysconfig/network-scripts/ifcfg-eth0檔案
//修改
ONBOOT=yes
BOOTPROTO=none
//新增
IPADDR={要修改的IP地址}
PREFIX=24
GATEWAY=192.168.80.2
DNS1=8.8.8.8	
  • 如果是克隆機,需要修改IPv4
  1. 修改主機名
    修改/etc/sysconfig/network檔案
HOSTNAME={自定義主機名,如node01} 

  1. 關閉防火牆
#臨時關閉防火牆
service iptables stop

時間同步

  1. 安裝ntp
yum install ntp
  1. 網上查詢最新的時間伺服器,如ntp1.aliyun.com,在所有節點時間同步
ntpdate ntp1.aliyun.com

配置免密登入

  1. 所有節點執行 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  2. 在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]


配置/etc/hosts(所有節點內)

//寫入所有節點IP+主機名
192.168.23.128 node01
	...... 

修改hadoop配置檔案

  1. 修改hdfs-site.xml配置檔案
<property>
	        <name>dfs.replication</name>
#節點數
	        <value>3</value>
</property>
<property>   
			<name>dfs.namenode.secondary.http-address</name>
#SecondaryNode節點
	     <value>node02:50090</value>
</property>
  1. 修改core-site.xml配置檔案
<property>
	        <name>fs.defaultFS</name>
	        <value>hdfs://node01:9000</value>
</property>
<property>
	        <name>hadoop.tmp.dir</name>
	        <value>/var/abc/hadoop/cluster</value>
</property>

3.修改slaves配置檔案
#寫入所有DataBode節點
node02 
node03 
node04

將配置好的安裝包分發到其他節點上

scp -r software [email protected]:/opt/software/hadoop/
#或者
scp -r software [email protected]:`pwd`

JDK配置(所有節點)

#解除安裝舊有jdk
rpm -qa|grep java
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -e --nodeps tzdata-java-2013g-1.el6.noarch
# vi /etc/profile
export JAVA_HOME=/opt/software/jdk/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin  

格式化NameNode並啟動HDFS

  1. 將所有的HDFS相關的程序關閉
  2. 在node01節點執行
#格式化
hdfs namenode -format
#啟動
start-dfs.sh

可能遇到的問題

啟動成功後,Live Notes為0

關閉HDFS,刪除所有節點core-site.xml配置檔案中的hadoop.tmp.dir所指明的目錄,如:

<property>
        <name>hadoop.tmp.dir</name>
        <value>/var/abc/hadoop/cluster</value>
</property>

則刪除所有節點的/var/abc後,重新格式化,然後啟動。