HDFS完全分佈式的搭建

1,同步時間

上網找一個最新的時間服務器,同步時間,保證整個集羣的每臺機器時間都一樣。

yum install ntp	//在各個節點安裝ntp命令
ntpdate ntp1.aliyun.com	//同步時間

2,配置免密登錄

node01-->node01
node01-->node02
node01-->node03
node01-->node04

命令操作

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa	//現在node01節點生成公鑰
//在node01節點執行,將node01的公鑰分別發送給其他節點
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04

檢驗ssh免密是否成功

ssh+ip
ssh 192.168.23.130

3,配置JDK(和window相似)

在所有節點配置JDK運行環境
①兩種上傳文件方式:FTP、RZ,將jdk安裝包上傳到每一個節點上。
rz安裝命令

yum -y install lrzsz 
rz //上傳文件

②解壓縮,找合適的文件位置存放

tar -zxvf jdk-8u151-linux-x64.tar.gz /usr/local

③配置環境變量

#接着需要配置JAVA環境變量.
vim ~/.bashrc
# 在文件最後添加
export JAVA_HOME=/usr/local/jdk-9.0.1-1
export PATH=$JAVA_HOME/bin:$PATH
# 接下來需要使用source命令是環境變量生效.
source ~/.bashrc

④檢驗jdk是否安裝成功

java -version

4,安裝hadoop

sudo tar -zxvf hadoop-2.8.2.tar.gz -C /usr/local
# 將hadoop解壓到/usr/local
sudo mv hadoop-2.8.2 hadoop 
# 將文件夾重命名爲hadoop(可選,方便後續添加環境變量)

5,hadoop相關文件配置

①配置環境變量

vim ~/.bashrc
# 在文件最後添加:
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
# 保存推出 :wq
# 使用source命令,是環境變量生效.
source ~/.bashrc

②修改hdfs-site.xml配置文件

<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
<property>   
	 <name>dfs.namenode.secondary.http-address</name>
	 <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>

④修改slaves配置文件

node01
node02
node03

⑤將配置好的hadoop安裝包發送(同步)到各個節點上

scp -r hadoop root@node02:/usr/local/
scp -r hadoop root@node03:/usr/local/
scp -r hadoop root@node04:/usr/local/

注意:一定要保證每個節點的安裝位置一致

6,將所有的HDFS相關的進程關閉

stop-dfs.

7,格式化NameNode

格式化的時候:創建目錄以及文件

hdfs namenode -format

8,啓動HDFS

start-dfs.sh

9,操作HDFS文件系統

①創建目錄

 hdfs dfs -mkdir -p /user/root

②上傳文件

hdfs dfs -D dfs.blocksize=1048576 -put /home/node02/hello.txt /user

在這裏插入圖片描述

在這裏插入圖片描述

10,安裝過程中可能遇到的問題

①jps查看每個節點的角色都對,但瀏覽器無法訪問?
   解決:關閉防火牆

sudo service iptables stop      # 關閉防火牆服務。
sudo chkconfig iptables off     # 禁止防火牆開機自啓。

②瀏覽器可以訪問,但存活的節點爲0,死亡的節點也爲0

原因一:/etc/hosts文件配置出錯,沒有做每個節點的ip映射
配置如圖:
在這裏插入圖片描述

原因二:hadoop配置文件slaves配置出錯
配置如圖:
在這裏插入圖片描述

原因三:沒有配置外網ip,導致幾個節點之間無法通信
測試通不通:

ping+ip

配置外網ip命令:

//修改ifcfg-eth0文件
cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0

//修改內容
ONBOOT=yes
BOOTPROTO=none
//添加內容 注意ip要在同一網段
IPADDR=192.168.23.130
PREFIX=24
GATEWAY=192.168.23.2
DNS1=8.8.8.8

//重新啓動服務(每次修改完配置文件)
service network restart 

原因四:只關了node01的防火牆,其他節點沒有關閉
原因五:每次修改配置,note01都要停止服務,但是沒有清除所有節點的臨時存儲文件
            (/var/abc/cluster文件),導致重新啓動時,集羣各個節點的blockId不一致。

③配置成功圖示
在這裏插入圖片描述
如圖:存活節點數3,正常運行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章