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,正常運行