一、系统配置:
安装有CentOS7的虚拟机三台(对其进行规划),并且将网段设置为所要求的网段
hadoop01 | 192.168.51.129 |
hadoop02 | 192.68.51.130 |
hadoop03 | 192.168.51.131 |
1.如何设置网段(如果对网段没有要求,该步可以省略)
(1).点击VMware workstation pro16中的 编辑èVmnet8èDHCP设置
网段(为IP地址中的第三位,例如在此处我的网段为51,故我的起始IP地址和结束IP地址中的第三位都设置为51).
(2).Vmnet8è更改设置(此处需要以管理员的身份进行)èVmnet8è勾选下面选项
(3).点击确定,完成虚拟机网段的配置。
二、在虚拟机种配置静态IP:(三台主机都需要进行设置)
1.设置配置文件
-
[root@hadoop01 ~]# 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=c8608d97-b8cc-475e-8aa1-e5173746d974 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.51.129 GATEWAY=192.168.51.2 NETMASK=255.255.255.0 DNS1=8.8.8.8 DNS2=8.8.4.4
说明:进入改文件夹下,修改BOOTPROTO为static,将ONBOOT修改为yes,并且在底下添加IPADDR(IPd地址),GATEWAY(网关),NETMASK(子网掩码)和DNS(域名服务器)。
2.重启网络,测试虚拟机能否与外部的主机进行通信
-
[root@hadoop01 ~]# systemctl restart network [root@hadoop01 ~]# ping 8.8.8.8
[root@hadoop01 ~]# ping www.baidu.com
说明:ping 8.8.8.8用来测试该虚拟机能否与外部网络进行通信,ping www.baidu.com主要用来测试DNS设置是否成功,能否对外部的域名进行解析。
三、对三台虚拟机进行规划,并将其写入文件中(对三台都进行规划)。
-
[root@hadoop01 ~]# vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.51.129 hadoop01 192.168.51.130 hadoop02 192.168.51.131 hadoop03
四、实现三台主机进行互信。
1.生成.ssh文件(包含公钥和私钥)
-
[root@hadoop01 ~]#ssh-keygen -t rsa
说明:在这个过程中需要连续按四次Enter键
2.查看.ssh文件
-
[root@hadoop01 ~]#cd /root/.ssh [root@hadoop01 .ssh]# ll 总用量 16 -rw-------. 1 root root 408 10月 19 20:32 authorized_keys -rw-------. 1 root root 1679 10月 19 20:31 id_rsa -rw-r--r--. 1 root root 408 10月 19 20:31 id_rsa.pub -rw-r--r--. 1 root root 738 10月 19 21:04 known_hosts
3.将其分发给机器(包含本机)
-
[root@hadoop01 ~]# ssh-copy-id hadoop01 [root@hadoop01 ~]# ssh-copy-id hadoop02 [root@hadoop01 ~]# ssh-copy-id hadoop03
4.将.ssh文件分发给其他两台机器
-
[root@hadoop01 ~]# scp -r /root/.ssh/* root@hadoop02:/root/.ssh [root@hadoop01 ~]# scp -r /root/.ssh/* root@hadoop03:/root/.ssh
说明:再次过程中需要输入yes,并且输入虚拟机以root
[root@hadoop01 ~]#mkdir -p /export/servers
[root@hadoop01 ~]mkdir -p /export/software
登录的密码
五、下载软件并且使用winSCP将所下载的压缩包传至虚拟机,并解压。
1.下载软件的地址
百度网盘 请输入提取码提取码:piwl
在此winSCP是免安装的,即下载解压文件夹打开即可使用。
2.在虚拟机新建文件夹,用来存放安装包
-
[root@hadoop01 ~]#mkdir -p /export/servers [root@hadoop01 ~]mkdir -p /export/software
说明:/export/software用来存放压缩包,/export/servers用来存放解压后的文件
3.使用winSCP将JDK和Hadoop上传至/export/software
说明:在winSCP中主机名填写虚拟机的IP地址,用户名写你需要以什么身份来登录虚拟机,密码就是你以此身份登录密码。然后,选择/export/software将物理机中的软件拉到该文件夹下,就完成了从物理机传输软件到虚拟机了。
4.将软件进行解压
(1).解压软件
-
[root@hadoop01 ~]#cd /export/software [root@hadoop01 software]# ll -rw-r--r--. 1 root root 145520298 10月 3 12:51 jdk-8u301-linux-x64.tar.gz -rw-r--r--. 1 root root 605187279 10月 6 17:10 hadoop-3.3.1.tar.gz [root@hadoop01 software]# tar -zxvf jdk-8u301-linux-x64.tar.gz [root@hadoop01 software]# tar -zxvf hadoop-3.3.1.tar.gz
(2).将软件进行重命名并且移动到/export/servers
-
[root@hadoop01 software]# mv jdk1.8.0_301 jdk [root@hadoop01 software]# mv jdk /export/servers [root@hadoop01 software]# mv hadoop-3.3.1 /export/servers
六、配置文件
1.配置jdk
(1).配置jdk
-
[root@hadoop01 software]# cd [root@hadoop01 ~]# vi /etc/profile #将以下部分加在该文件的最后 export JAVA_HOME=/export/servers/jdk export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar #按【ESC】:wq退出vi编辑器
(2).使配置生效
-
[root@hadoop01 ~]# source /etc/profile
(3).查看是否生效
-
[root@hadoop01 ~]# java -version openjdk version "1.8.0_262" OpenJDK Runtime Environment (build 1.8.0_262-b10) OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
2.配置Hadoop
(1).配置启动文件
-
[root@hadoop01 ~]# vi /etc/profile #将下面内容加入该文件的最后 export HADOOP_HOME=/export/servers/hadoop-3.3.1 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(2).使配置文件生效
-
[root@hadoop01 ~]# source /etc/profile
(3).查看是否生效
-
[root@hadoop01 ~]# hadoop version Hadoop 3.3.1 Source code repository https://github.com/apache/hadoop.git -r a3b9c37a397ad4188041dd80621bdeefc46885f2 Compiled by ubuntu on 2021-06-15T05:13Z Compiled with protoc 3.7.1 From source with checksum 88a4ddb2299aca054416d6b7f81ca55 This command was run using /export/servers/hadoop-3.3.1/share/hadoop/common/hadoop-common-3.3.1.jar
(4).修改hadoop-env.sh文件
-
[root@hadoop01 ~]# cd /export/servers/hadoop-3.3.1/etc/hadoop [root@hadoop01 hadoop]# vi hadoop-env.sh #在文件的末尾加入如下内容 export JAVA_HOME=/export/servers/jdk
(5).修改core-site.xml文件
-
[root@hadoop01 hadoop]# vi core-site.xml #在该文件中加入 <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop01:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/export/servers/hadoop-3.3.1/tmp</value> </property> </configuration>
(6).修改hdfs-site.xml文件
-
[root@hadoop01 hadoop]# vi hdfs-site.xml #在该文件中加入 <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.secondary.http.address</name> <value>hadoop02:50090</value> </property> </configuration>
(7).修改mapred-site.xml文件
-
[root@hadoop01 hadoop]# vi mapred-site.xml #在该文件中加入 <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
(8).修改yarn-site.xml文件
-
[root@hadoop01 hadoop]# vi yarn-site.xml #在该文件中加入 <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop01</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
(9)新建workers文件
-
[root@hadoop01 hadoop]# vi workers #在该文件中加入 hadoop01 hadoop02 hadoop03
(10).必须将以上完成的配置文件传输到另外两台机器
1)./etc/profile文件
-
#将/etc/profile传输至另外两台机器 [root@hadoop01 ~]#scp -r /etc/profile/ hadoop02:/etc/profile [root@hadoop01 ~]#scp -r /etc/profile/ hadoop03:/etc/profile
在另外两台机器执行如下代码,使配置文件生效
-
#注意机器的变化 [root@hadoop02 ~]# source /etc/profile [root@hadoop03 ~]# source /etc/profile
2).hadoop文件
首先在另外两台机器上新建下列文件
-
#注意机器的变化 [root@hadoop02 ~]# mkdir -p /export/servers [root@hadoop03 ~]# mkdir -p /export/servers
将文件通过下列命令进行传输
-
[root@hadoop01 ~]# scp -r /export/servers/ hadoop02:/export/ [root@hadoop01 ~]# scp -r /export/servers/ hadoop03:/export/
(11).设置一键启动
-
[root@hadoop01 ~]# cd /export/servers/hadoop-3.3.1/sbin/ #将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数 HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root #start-yarn.sh,stop-yarn.sh顶部也需添加以下 YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
(12).格式化并且启动Hadoop
-
#格式化 [root@hadoop01 ~]#hdfs namenode -format #启动集群 [root@hadoop01 ~]start-all.sh
说明:在此处不要多次格式化,防止ID不同,启动不了datanode.
(13).关闭防火墙
-
#临时关闭防火墙 [root@hadoop01 ~]# systemctl stop firewalld #永久关闭防火墙 [root@hadoop01 ~]# systemctl disable firewalld #查看防火墙状态 [root@hadoop01 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) #当显示dead表示防火墙已关闭
3.验证是否安装成功
-
[root@hadoop01 ~]#jps 119835 Jps 101971 ResourceManager 101410 DataNode 101682 SecondaryNameNode 101241 NameNode 102138 NodeManager [root@hadoop02 ~]# jps 81697 NodeManager 86055 Jps 81562 DataNode [root@hadoop03 ~]# jps 74182 DataNode 75190 Jps 74316 NodeManager
说明:若在三台主机jps出现上述结点,表示安装成功。
七、查看Hadoop是否安装成功
-
#在浏览器中输入 hadoop01:9870 hadoop01:8088 #若出现以下界面表示安装成功
八、若需要在外部浏览器访问需配置
-
C:\Windows\System32\drivers\etc\hosts #以记事本的方式打开添加如下内容 192.168.51.129 hadoop01 192.168.51.130 hadoop02 192.168.51.131 hadoop03
说明:在win10系统中修改改文件要以管理员的身份打开。会出现无法更改,只需要将该文件另存到桌面,然后替换原先的文件即可。
完成之后可以访问上图所示的界面,即完成了Hadoop分布式的安装。
九、遇到的问题及解决方法
1.在安装Hadoop时,尽量不要多次格式化。多次格式化会导致datanode的ID不同,最终出现某些节点的datanode无法启动的情况;
2.在Hadoop安装完成后,访问页面时,Hadoop2.X的访问端口为:50070。Hadoop3.X的访问端口更改为:9870;
3.Hadoop输入一键启动命令无法启动时,需要配置上面的文件(11.设置一键启动);
4.如果未设置静态IP可能会出现IP地址变化的情况,需要设置静态IP;
5.若将虚拟机进行关机,则下次启动虚拟机时需要重新启动Hadoop节点,因此可以选择将虚拟机进行挂起。鼠标右键虚拟机è电源è挂起虚拟机
6.如果jps出现datanode无法加载,需要删除Hadoop中的logs文件,重新进行格式化。