HDFS完全分散式搭建
阿新 • • 發佈:2019-01-04
目錄
- 前期配置
- 時間同步
- 配置免密登入
- 配置/etc/hosts(所有節點內)
- 修改hadoop配置檔案
- 將配置好的安裝包分發到其他節點上
- JDK配置(所有節點)
- 格式化NameNode並啟動HDFS
- 可能遇到的問題
前期配置
- 修改靜態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
- 修改主機名
修改/etc/sysconfig/network檔案
HOSTNAME={自定義主機名,如node01}
- 關閉防火牆
#臨時關閉防火牆
service iptables stop
時間同步
- 安裝ntp
yum install ntp
- 網上查詢最新的時間伺服器,如ntp1.aliyun.com,在所有節點時間同步
ntpdate ntp1.aliyun.com
配置免密登入
- 所有節點執行
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]
配置/etc/hosts(所有節點內)
//寫入所有節點IP+主機名 192.168.23.128 node01 ......
修改hadoop配置檔案
- 修改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>
- 修改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
- 將所有的HDFS相關的程序關閉
- 在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後,重新格式化,然後啟動。