目录
实验准备:
1.虚拟机配置:
2.虚拟机镜像:
3.安装包:
4.虚拟机 IP 地址和名字:
5.实验工具:
实验开始:
1.配置虚拟机网络
2.主机映射
3.安装 hadoop 和 jdk 安装包,并配置环境
4.配置 hadoop 的配置文件
5.实现节点与节点之间免密登录
6.使用 scp 拷贝环境变量,jdk 文件与 hadoop 配置文件到次节点
7.格式化
8.启动集群
9.关闭所有节点防火墙
最后结果:
实验准备:
1.虚拟机配置:
三台 Linux 虚拟机,内存为 2g,硬盘大小 20g,网卡模式:仅主机模式
2.虚拟机镜像:
CentOS-7-x86_64-DVD-1804.iso
3.安装包:
hadoop-2.7.4.tar.gz
jdk-8u144-linux-x64.tar.gz
4.虚拟机 IP 地址和名字:
主节点:master 192.168.100.11
次节点1:hadoop1 192.168.100.12
次节点2:hadoop2 192.168.100.13
5.实验工具:
VMware Workstation 15.5 Pro
SecureCRT
实验开始:
1.配置虚拟机网络
master:
[root@localhost ~]# hostnamectl set-hostname master # 修改主机名
[root@localhost ~]# exit
[root@master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_onLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=a1385b10-e313-4569-a0a6-955be4868844
DEVICE=ens33
onBOOT=yes
IPADDR=192.168.100.10
[root@master ~]# systemctl restart network #重启网卡
hadoop1:
[root@localhost ~]# hostnamectl set-hostname hadoop1
[root@localhost ~]# exit
[root@hadoop1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_onLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=a1385b10-e313-4569-a0a6-955be4868844
DEVICE=ens33
onBOOT=yes
IPADDR=192.168.100.11
[root@hadoop1 ~]# systemctl restart network
hadoop2:
[root@localhost ~]# hostnamectl set-hostname hadoop2
[root@localhost ~]# exit
[root@hadoop2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_onLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=a1385b10-e313-4569-a0a6-955be4868844
DEVICE=ens33
onBOOT=yes
IPADDR=192.168.100.12
[root@hadoop2 ~]# systemctl restart network
master: [root@localhost ~]# hostnamectl set-hostname master # 修改主机名 [root@localhost ~]# exit [root@master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_onLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=a1385b10-e313-4569-a0a6-955be4868844 DEVICE=ens33 onBOOT=yes IPADDR=192.168.100.10 [root@master ~]# systemctl restart network #重启网卡
hadoop1: [root@localhost ~]# hostnamectl set-hostname hadoop1 [root@localhost ~]# exit [root@hadoop1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_onLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=a1385b10-e313-4569-a0a6-955be4868844 DEVICE=ens33 onBOOT=yes IPADDR=192.168.100.11 [root@hadoop1 ~]# systemctl restart network
hadoop2: [root@localhost ~]# hostnamectl set-hostname hadoop2 [root@localhost ~]# exit [root@hadoop2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_onLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=a1385b10-e313-4569-a0a6-955be4868844 DEVICE=ens33 onBOOT=yes IPADDR=192.168.100.12 [root@hadoop2 ~]# systemctl restart network
# 提示:在进行下一步之前,你可以把已经配好的虚拟机使用远程工具(CRT)连接,方便操作
2.主机映射
master:
[root@master ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 master
192.168.100.11 hadoop1
192.168.100.12 hadoop2
hadoop1
[root@hadoop1 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 master
192.168.100.11 hadoop1
192.168.100.12 hadoop2
hadoop2
[root@hadoop2 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 master
192.168.100.11 hadoop1
192.168.100.12 hadoop2
# 提示:在进行下一步之前,需要把 hadoop 安装包与 jdk 安装包导入主节点的根目录
3.安装 hadoop 和 jdk 安装包,并配置环境
master:
[root@master ~]# ls
anaconda-ks.cfg hadoop-2.7.4.tar.gz jdk-8u144-linux-x64.tar.gz
[root@master ~]# tar -zxvf hadoop-2.7.4.tar.gz -C /opt
[root@master ~]# mv /opt/hadoop-2.7.4/ /opt/Hadoop //修改文件名,方便后面使用
[root@master ~]# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt
[root@master ~]# mv /opt/jdk1.8.0_144/ /opt/jdk //修改文件名,方便后面使用
[root@master ~]# vi /etc/profile
//在配置文件末尾添加下面的环境变量
export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
[root@master ~]# source /etc/profile //使配置文件生效
4.配置 hadoop 的配置文件
[root@master ~]# cd /opt/hadoop/etc/hadoop
[root@master hadoop]# vi core-site.xml
fs.defaultFS
hdfs://master:9000
hadoop.tmp.dir
/opt/hadoop/data/tmp
[root@master hadoop]# vi hdfs-site.xml
dfs.replication
3
dfs.namenode.secondary.http-address
hadoop2:50090
[root@master hadoop]# vi yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop1
[root@master hadoop]# mv mapred-site.xml.template mapred-site.xml
[root@master hadoop]# vi mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
master:10020
mapreduce.jobhistory.webapp.address
master:19888
[root@master hadoop]# vi hadoop-env.sh
//找到 JAVA_HOME,把位置改成你所安装 jdk 的位置
export JAVA_HOME=/opt/jdk
[root@master hadoop]# vi yarn-env.sh
//在文件末端加入
export JAVA_HOME=/opt/jdk
[root@master hadoop]# vi mapred-env.sh
//在文件末端加入
export JAVA_HOME=/opt/jdk
[root@master hadoop]# vi slaves
//把 localhost 修改成自己的节点的主机名
master
hadoop1
hadoop2
5.实现节点与节点之间免密登录
master:
[root@master ~]# ssh-keygen -t rsa //点击(4 次)回车即可
[root@master ~]# ssh-copy-id master //输入 yes 最后在输入密码
[root@master ~]# ssh-copy-id hadoop1
[root@master ~]# ssh-copy-id hadoop2
hadoop1:
# 与 master 同理
hadoop2:
# 与 master 同理
6.使用 scp 拷贝环境变量,jdk 文件与 hadoop 配置文件到次节点
master:
[root@master ~]# scp -r /etc/profile hadoop1:/etc/profile
profile 100%
1981 1.7MB/s 00:00
[root@master ~]# scp -r /etc/profile hadoop2:/etc/profile
profile 100%
1981 1.8MB/s 00:00
[root@master ~]# scp -r /opt/hadoop/ hadoop1:/opt/hadoop/
[root@master ~]# scp -r /opt/hadoop/ hadoop2:/opt/hadoop/
[root@master ~]# scp -r /opt/jdk hadoop1:/opt/jdk
[root@master ~]# scp -r /opt/jdk hadoop2:/opt/jdk
hadoop1:
[root@hadoop1 ~]# source /etc/profile
hadoop2:
[root@hadoop2 ~]# source /etc/profile
7.格式化
# 只需要主节点且第一次需要格式化,后续将不再需要格式化
master: [root@master ~]# cd /opt/hadoop/ [root@master hadoop]# hdfs namenode -format
8.启动集群
master:
[root@master]# start-dfs.sh
[root@master ~]# jps
hadoop1:
[root@hadoop1 ~]# start-yarn.sh
[root@hadoop1 ~]# jps
master:
[root@master]# start-dfs.sh
[root@master ~]# jps
master结果图
hadoop1: [root@hadoop1 ~]# jps hadoop2: [root@hadoop2 ~]# jps
9.关闭所有节点防火墙
master:
[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld
hadoop1:
[root@hadoop1 ~]# systemctl stop firewalld
[root@hadoop1 ~]# systemctl disable firewalld
hadoop2:
[root@hadoop2 ~]# systemctl stop firewalld
[root@hadoop2 ~]# systemctl disable firewalld
最后结果:
到此为止,我们 hadoop 完全分布式的安装与部署就已经完成了 你还可以在电脑浏览器上输入:主节点 IP 地址:50070 进入 hadoop web 界面
# 如果搭建过程中有任何疑问,欢迎留在评论区!
至此!我们的hadoop全发布部署已经是搭建完成了!如果这篇文章对你有帮助,不妨留下你们的赞与关注,后期我还会继续在hadoop全发布环境下,安装各种组件!你们的支持就是我最大的动力!


