環境:macOS 10.14.4 +parallel dosktop14 +4臺centos7+secureCRT
此教程適合win和mac環境。
在安裝分佈式hadoop過程中,需要將所有機子的用戶名必須一樣,密碼必須一樣。
例如:
[zhangsan@centos-01 ~]$ :
用戶名:zhangsan
主機名:centos-01
[root@centos-01]# :
用戶名:root
主機名:centos-01
所以,@前面的是用戶名,@後面的是主機名。
1.修改普通用戶權限
先切換到root用戶:# su
# vi /etc/sudoers
hadoop ALL=(ALL) ALL
2.修改主機名
切換普通用戶:# su - hadoop
分別改成:
# hostnamectl set-hostname hadoop
# hostnamectl set-hostname node-1
# hostnamectl set-hostname node-2
# hostnamectl set-hostname node-3
3.修改主機映射:
需要普通用戶權限:# su - hadoop
# sudo vi /etc/hosts
10.211.55.9 hadoop
10.211.55.10 node-1
10.211.55.11 node-2
10.211.55.12 node-3
可以每臺主機都配一遍,也可以配好一臺,然後發送給其他
# sudo scp /etc/hosts node-1:/etc/
# sudo scp /etc/hosts node-2:/etc/
# sudo scp /etc/hosts node-3:/etc/
4.關閉防火牆:
普通用戶下:
# sudo systemctl stop firewalld.service
如果防火牆是iptables的話,
# sudo service iptables stop
補充一條查看防火牆狀態的命令:
# sudo systemctl status firewalld
關閉selinux:
# sudo vi /etc/selinux/config
SELINUX=disabled
5.修改啓動級別:
# sudo vi /etc/inittab
id:3:initdefault:
6.配置免密登錄:
每臺機器都需要配置,這步用secureCRT的window下面的tile,一起操作4臺機器
切換到普通用戶:# su - hadoop
第一步:生成密鑰:
# ssh-keygen
第二步:發送密鑰
# ssh-copy-id hadoop
# ssh-copy-id node-1
# ssh-copy-id node-2
# ssh-copy-id node-3
第三步:驗證
# ssh hadoop
# ssh node-1
# ssh node-2
# ssh node-3
7.安裝jdk:
先操作一臺虛擬機:
①用secureCRT把jdk的壓縮包傳到虛擬機上。
②解壓:
# tar -xvzf jdk1.8.0_11
③環境變量:
# sudo vi /etc/profile
export JAVA_HOME=/home/hadoop/jdk1.8.0_11
export HADOOP_HOME=/home/hadoop/hadoop-2.7.6
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# source /etc/profile
④驗證:
# java -version
⑤一臺機器的jdk環境搭建好後,發送給其他3臺:
發送jdk文件:
# scp -r jdk1.8.0_11 node-1:$PWD
# scp -r jdk1.8.0_11 node-2:$PWD
# scp -r jdk1.8.0_11 node-3:$PWD
發送環境變量配置文件:
# sudo scp /etc/profile node-1:/etc/
# sudo scp /etc/profile node-2:/etc/
# sudo scp /etc/profile node-3:/etc/
8.時間同步:
在聯網的情況下,同步到阿里雲的系統時間:
# ntpdate ntp1.aliyun.com
9.安裝hadoop
一定要切換普通用戶
第一步:上傳
第二步:解壓
# tar -xvzf hadoop-2.7.6.tar.gz
第三步:配置環境變量:
由於配置jdk的時候配置了,所以直接執行# source /etc/profile
第四步:修改配置文件
配置文件目錄:Hadoop_Home/etc/hadoop
需要修改6個配置文件:
①hadoop-env.sh
export JAVA_HOME=/home/hadoop/jdk1.8.0_11
②core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata</value>
</property>
</configuration>
③hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.dir</name>
<value>/home/hadoop/data/hadoopdata/name</value>
<description>爲了保證元數據的安全一半配置多個不同目錄</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/hadoopdata/data</value>
<description>datanode的數據存儲目錄</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>HDFS數據塊的副本存儲數量</description>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>node-2:50090</value>
<description>secondarynamenode的運行節點信息,不能喝NameNode節點一樣</description>
</property>
</configuration>
④ yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node-3</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
⑤mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
⑥slaves
hadoop
node-1
node-2
node-3
第五步:遠程發送:
# cd ~
# scp -r hadoop-2.7.6 node-1:$PWD
# scp -r hadoop-2.7.6 node-2:$PWD
# scp -r hadoop-2.7.6 node-3:$PWD
第六步:執行source:
# source /etc/profile
第七步:格式化
只需要在主節點上格式化,而且必須在主節點
# hadoop namenode -format
10.啓動
啓動HDFS:
# start-dfs.sh
在任一節點都行
啓動YARN:
# start-yarn.sh
在YARN的主節點
11.驗證
# jps
瀏覽器驗證:
輸入:hadoop:50070
輸入:node-3:8088
至此,完全分佈式搭建完畢。