一:虚拟机安装

如果没安装VMware Workstation的同学,在这之前,需要下载安装VMware Workstation平台,链接地址:VMware下载地址

点击创建新的虚拟机
在这里插入图片描述
选择自定义,点击下一步!在这里插入图片描述
点击下一步
在这里插入图片描述选择稍后安装操作系统,点击下一步在这里插入图片描述
客户及操作系统选择Linux(L),版本(v)选择CentOS 7 64位,点击下一步在这里插入图片描述
虚拟机名称可以改为master(表示主节点),安装位置自己选择(默认安装在c盘,建议选择磁盘内存较大的盘,这里选择安装路径尽量规范化,比如这台虚拟机名臣为master,我就创建了一个名称为master的文件夹,安装路径就选择它),点击下一步在这里插入图片描述
处理器数量选择2就行了,每个处理器的内核数量选择1(一般来说够用,如果自身电脑配置较好,那么这里多选一两个也可以),点击下一步在这里插入图片描述
此虚拟机的内存选择2G就行(一般够用,自己电脑内存足够大,可以多选一点),点击下一步在这里插入图片描述
选择使用网络地址转换,点击下一步在这里插入图片描述
选择LSI Logic(L),点击下一步在这里插入图片描述
选择SCSI(S),点击下一步在这里插入图片描述
选择创建新虚拟磁盘(V),点击下一步在这里插入图片描述
最大磁盘大小填30G(一般够用,自己电脑内存够大,可多填),选择将虚拟磁盘拆分成多个文件(M),点击下一步在这里插入图片描述
直接点击下一步在这里插入图片描述
点击完成在这里插入图片描述
点击CD/DVD(IDE)在这里插入图片描述
点击使用ISO映像文件(M),浏览选择CentOS的映像文件CentOS-7-x86_64-DVD-1708.iso(此文件需要自行下载)
下载链接:centos映像文件
在这里插入图片描述
USB控制器,声卡和打印机在这里用不上,可以选择他们点击移除,移除完点击确定在这里插入图片描述
点击开启此虚拟机
在这里插入图片描述
进入这个界面,鼠标点击这个界面,然后按上下键,选择第一个Install CentOS 7,然后按回车键即可在这里插入图片描述
选择中文,然后点击继续在这里插入图片描述
这个界面第一步点击日期和时间
在这里插入图片描述
对比自己的windows系统的时间,设成一致,地区选择亚洲,城市选择上海,设置完成后,点击完成在这里插入图片描述
再进行第二步,点击安装位置
在这里插入图片描述
这个界面先点击我要配置分区,再点击完成在这里插入图片描述
点击“+”添加挂载点
在这里插入图片描述
挂载点 /boot 期望容量512 ,然后点击添加挂载点
在这里插入图片描述
再次点击“+”
在这里插入图片描述
挂载点 swap 期望容量 4096 ,再点击添加挂载点在这里插入图片描述
再点击“+”
在这里插入图片描述
挂载点 / 期望容量不用填,直接点击添加挂载点
在这里插入图片描述
点击完成
在这里插入图片描述
点击接受更改
在这里插入图片描述
点击开始安装
在这里插入图片描述
点击ROOT密码
在这里插入图片描述
在这个界面自己设置一个密码,然后点击完成在这里插入图片描述
点击完成配置
在这里插入图片描述
点击重启
在这里插入图片描述
到如下界面表示CentOS 7虚拟系统安装成功在这里插入图片描述
由于后面要搭建hadoop集群,需要三台服务器,所以我们需要克隆两台
鼠标指针移在虚拟机master上,单击鼠标右键,选择管理,再选择克隆在这里插入图片描述
点击下一页在这里插入图片描述
选择虚拟机中的当前状态,再点击下一页在这里插入图片描述
选择创建完整克隆,再点击下一页在这里插入图片描述
这里虚拟机名称填slave1(表示集群的从节点1),安装位置自己选择(默认安装在c盘,但不建议安装在c盘,自己最好文件夹分类,比如此节点为slave1,我安装的文件夹名称就为slave1),然后点击完成在这里插入图片描述
重复上述克隆操作,克隆第二台虚拟机,名称为slave2(为hadoop集群的从节点2)
至此虚拟机的安装结束!

二:配网

1. 配置内网

点击编辑中的虚拟网络编辑器在这里插入图片描述
选择VMnet8,再点击更改设置在这里插入图片描述
这个界面继续选择VMnet8,其余几个地方与标红处一样即可在这里插入图片描述
点击NAT设置在这里插入图片描述
网关IP设置192.168.121.2 然后点击确定在这里插入图片描述
点击DHCP设置在这里插入图片描述
设置起始IP地址 192.168.121.128 结束IP地址 192.168.121.254(这里需要注意,后面使用虚拟机时,ip范围只能在128-254之间),然后点击确定在这里插入图片描述
点击确定,至此内网已配置完毕!在这里插入图片描述

2. 外网配置

点击WiFi中的网络和Internet设置在这里插入图片描述
点击更改适配器选项
在这里插入图片描述
双击VMware Network Adapter VMnet8在这里插入图片描述
点击属性在这里插入图片描述
双击Internet协议版本4在这里插入图片描述
IP地址设置 192.168.121.1 子网掩码设置 255.255.255.0 默认网关设置 192.168.121.2
首选DNS服务器设置 8.8.8.8 如图所示设置,设置完后一次点击确定在这里插入图片描述
点击关闭,至此外网已经配置完毕在这里插入图片描述

三:hadoop集群搭建

在这里先介绍两个软件,后面会用到
(1)xshell:简单说就是一个客户端,用于后续连接linux虚拟机,在xshell里面执行命令就等于在虚拟机内执行命令,基于xshell一些特定的功能,我们选择使用它。 下载链接:xshell下载
(2)xftp:简单说也是一个客户端,用于后续连接linux虚拟机,实现windows系统与linux系统的文件传输。 下载链接:xftp下载
上述都是官网下载,可能涉及到只能试用的情况,自己可以去百度下载破解版,或者直接找我共享。

1. 安装准备

1.1 准备工作

开启三台虚拟机
在这里插入图片描述
在localhost login后面输入root,然后敲回车键,再输入你的密码(这里输入密码时,密码不会显示),再敲回车键。(三台机子都执行)
在这里插入图片描述
来到这个界面,说明登录成功
在这里插入图片描述
输入ifconfig查看网络配置信息(三台机子都执行)在这里插入图片描述
在主节点slave上输入ifconfig ens32 192.168.121.141,在从节点slave1上输入ifconfig ens32 192.168.121.142,在从节点slave2上输入ifconfig ens32 192.168.121.143,分别设置三台机子的临时IP(注意上一个图标红处是ens32就和上述代码一样,如果是ens33,那么就把代码中的ens32改成ens33,IP范围可随便设,但是不能超出128-254的范围,像我这样设置方便记忆)
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

至此,可以不用在VMware平台使用虚拟机执行命令了,我们将用到xshell远程连接虚拟机来执行命令
打开xshell软件,点击新建
在这里插入图片描述
为了方便操作,名称(N)处填写:master,主机(H)处填写主节点master的IP(就是我们上面所设置的临时IP:192.168.121.141)
在这里插入图片描述
点击接受并保存
在这里插入图片描述
此处输入登录的用户名:root,下面记住用户名打上勾,然后点击确定
在这里插入图片描述
输入密码,下面记住密码打上勾,然后点击确定
在这里插入图片描述
出现这个界面则表示远程连接成功
在这里插入图片描述
按照上述远程连接操作分别再新建两个对话,用于远程连接从节点slave1,slave2(注意:为了方便操作,名称为slave1,它对应的IP为:192.168.121.142,;名称为slave2,它对应的IP为:192.168.121.143)

1.2 配置网卡

这里我们点开VMware平台,先分别查看三台机子的MAC地址,并记录下来,后面设置要用到;右键虚拟机,选择设置
在这里插入图片描述
点击网络适配器,再点击右边的高级
在这里插入图片描述
记住这个MAC地址(三台机子都要查看,每台的MAC地址都不一样)
在这里插入图片描述

在xshell中输入代码vi /etc/sysconfig/network-scripts/ifcfg-ens32(如果自己的是ens33,代码的最后就写ens33),进入文本模式,按下按键i,进入编辑模式,这里需要改一些参数,(1)dhcp改为static,(2)增加HWADDR=你的虚拟机的MAC地址,就是上面事先查看的MAC地址,注意每台机子必须对应,我们在主节点master上面操作的,那么就填的是master节点的MAC,在slave1上面操作的就填slave1的MAC,在slave2上面操作的,就填slave2的MAC。(3)no改为yes,(4)增加IPADDR=192.168.121.141(注意,如果之前的每一步操作都和我一样,那么这里按照我的步骤来就行,如果IP设置不一样,那么就按照自己设置的IP来。(4)NETMASK=255.255.255.0,GATEWAY=192.168.121.2,DNS1=8.8.8.8(这三行都是一样的)
修改完后先按Esc退出编辑模式,再输入:wq保存退出
在这里插入图片描述

输入代码service network restart,重启网络
在这里插入图片描述
输入代码ping www.baidu.com,出现这种情况,说明网络已配通
在这里插入图片描述
上述配置网卡操作都是在主节点master上操作的,从节点slave1,slave2,也需要配置,重复上述操作即可(注意,需要更改的地方就是MAC地址和IP,因为三台机子的MAC和IP都不一样,其余地方都一样)

1.3 修改主机名

在主节点master上输入代码hostnamectl set-hostname master修改主机名为master
在从节点slave1上输入代码hostnamectl set-hostname slave1,修改主机名为slave1
在从节点slave2上输入代码hostnamectl set-hostname slave2,修改主机名为slave2
然后可以在每台机子上输入代码hostname,查看主机名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 设置主机名与IP地址映射

输入代码vi /etc/hosts,进入文本模式,按下按键i进入编辑模式,修改文档,在里面添加代码:

192.168.121.141 master
192.168.121.142 slave1
192.168.121.143 slave2

然后按Esc退出编辑模式,在输入:wq保存退出(三台机子都要这样操作)
在这里插入图片描述
做到这里我们可以断开一次远程连接,再从新连接,这样我们在对话框中才能看见改过之后的主机名
在这里插入图片描述
在这里插入图片描述

1.5 ssh免密

分别在三台节点输入命令ssh-keygen -t rsa,连按4次回车。出现如下图案
在这里插入图片描述
分别在三台节点输入代码ssh-copy-id master,敲一次回车,输入yes,再敲一次回车,输入密码(密码不会显示),再敲一次回车即可在这里插入图片描述
分别在三台节点输入代码ssh-copy-id slave1,敲一次回车,输入yes,再敲一次回车,输入密码(密码不会显示),再敲一次回车即可
在这里插入图片描述
分别在三台节点输入代码ssh-copy-id slave2,敲一次回车,输入yes,再敲一次回车,输入密码(密码不会显示),再敲一次回车即可
在这里插入图片描述
到这里节点之间的免密通信已经完成,可以通过输入代码ssh 主机名,来检验是否免密成功,如下进行节点之间的切换不需要输入密码则表示免密成功
在这里插入图片描述

2. hadoop集群搭建

2.1 准备工作

到相应网站下载JDK和Hadoop安装包
JDK安装包下载链接JDK下载链接;Hadoop安装包下载链接hadoop下载链接
使用xftp上传JDK,Hadoop安装包至linux系统

打开xftp软件,点击新建
在这里插入图片描述
名称处填写master;主机处填写master对应的IP,也就是之前设置的192.168.121.141;用户名处填写root;再填写密码,然后点击连接(同样以此方法再新建两个对话,连接slave1,slave2,,连接时注意IP就行,slave1对应IP为192.168.121.142,;slave2对应IP为192.168.121.143)
在这里插入图片描述
这个界面,左边表示windows文件路径,右边表示linux文件路径,这里可以实现windows系统与linux系统之间的文件传输(比如我们在windows系统下载的文件,在左边找到该文件路径,在右边选择想要传输的文件路径,然后在左边双击需要传输的文件就能传输到右边)
在这里插入图片描述

2.2 JDK和Hadoop的安装

在根目录下,右边空白处点击鼠标右键新建文件夹,命名为export,再在export文件下创建子文件software用于存放各类安装包,再创建一个子文件servers用于存放解压后的文件(此创建方式也可以在客户端内通过代码创建,只不过这种创建文件方式个人觉得更为方便)
在这里插入图片描述
在这里插入图片描述

将windows系统下的JDK和Hadoop安装包上传至linux系统下的/export/software路径。
在这里插入图片描述

2.2.1 解压

解压JDK安装包至指定路径/export/servers(解压安装包时,需要先进入安装包所在路径,否则在执行解压命令时,要写安装包的绝对路径,因为linuv系统搜索文件路径是一级一级搜索的)
在这里插入图片描述
解压Hadoop安装包至指定路径/export/servers
在这里插入图片描述

2.2.2 改名

解压后的文件名带有版本号,后续使用起来不太方便,所以我们执行mv命令对JDK和Hdoop进行改名(注意改名命令的执行,也需要进入文件所在路径)
在这里插入图片描述

2.2.3 配置系统环境变量

执行命令vi /etc/profile编辑文档,在最后添加JDK和Hadoop的环境变量,内容如下:

# jdk环境变量
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# hadoop环境变量
export HADOOP_HOME=/export/servers/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

编辑完后,保存退出,再执行命令source /etc/profile使环境变量生效(此命令一定要执行,否则所配置环境变量无效)
在这里插入图片描述
在这里插入图片描述

2.2.4 JDK和Hadoop环境验证

执行命令java -version验证java环境,执行命令hadoop version验证hadoop环境,出现如下情况说明JDK和Hadoop安装和配置成功
在这里插入图片描述

2.3 Hadoop集群配置

2.3.1 配置hadoop集群主节点

(1)修改hadoop-env.sh文件
进入hadoop安装目录下的etc/hadoop/目录下(下面的配置文件都是在这个目录下),执行命令vi hadoop-env.sh编辑文档,找到JAVA_HOME参数位置进行修改,具体如下:

export JAVA_HOME=/export/servers/jdk
修改完,保存退出

在这里插入图片描述
在这里插入图片描述
(2)修改core-site.xml文件
编辑文件core-site.xml,向文档末尾添加如下内容:

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/export/servers/hadoop/tmp</value>
  </property>
</configuration>

编辑完,保存退出
在这里插入图片描述
(3)修改hdfs-site.xml文件
编辑文件hdfs-site.xml,向文档末尾添加如下内容:

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>slave1:50090</value>
  </property>
</configuration>

编辑完,保存退出
在这里插入图片描述
(4)修改mapred-site.xml文件
在该目录下原本是没有此文件的,我们需要先执行命令cp mapred-site.xml.template mapred-site.xml复制一个mapred-site.xml文件,再进入该文件进行编辑,向文档末尾添加如下内容:

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

修改完后,保存退出
在这里插入图片描述
在这里插入图片描述
(5)修改yarn-site.xml文件
编辑该文档,向文档末尾添加如下内容:

<configuration>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
</configuration>

编辑完,保存退出
在这里插入图片描述
(6)修改slaves文件
该文件里面默认是localhost,把它删除,再添加如下内容:

master
slave1
slave2

编辑完,保存退出
在这里插入图片描述

2.3.2 将集群主节点的配置文件分发到从节点slave1,slave2

(1)将系统环境配置文件分发到从节点slave1,slave2,执行如下命令:

scp /etc/profile slave1:/etc/profile
scp /etc/profile slave2:/etc/profile

在这里插入图片描述
(2)将JDK安装目录和Hadoop安装目录分发到从节点slave1,slave2,执行如下命令:

scp -r /export/ slave1:/
scp -r /export/ slave2:/

在这里插入图片描述
最后在从节点slave1,slave2上分别执行命令source /etc/profile,刷新配置文件,
在这里插入图片描述
在这里插入图片描述

2.4 Hadoop集群测试

2.4.1 格式化文件系统

初次启动HDFS集群时,必须对主节点master进行格式化处理,执行如下命令:

hdfs namenode -format

在这里插入图片描述
出现successfully说明格式化成功
在这里插入图片描述

2.4.2 启动集群

在主节点master上执行命令start-all.sh,一键启动集群(停止进程则为stop-all.sh
在这里插入图片描述
此时可通过在三台节点上分别输入命令jps,来查看各节点的进程启动情况,主节点master上启动了DataNode、NameNode、ResourceManager和NodeManager四个进程;从节点slave1上启动了DataNode、SecondaryNameNode和NodeManager三个进程;从节点slave2上启动了DataNode和NodeManager两个进程;下图依次为主节点master效果图,从节点slave1,slave2效果图
主节点master效果图
从节点slave1效果图
从节点slave2效果图

2.4.3 通过UI界面查看Hadoop运行状态

hadoop集群正常启动后,他默认开放了50070和8088两个端口,分别用于监控HDFS集群和YARN集群的运行状态,通过UI可以方便地进行集群的管理和查看,只需要在本地操作系统的浏览器输入集群服务的IP和对应端口号即可访问
首先我们需要进入windows系统下的路径:C:\Windows\System32\drivers\etc,修改文件hosts,设置windows浏览器与虚拟机的映射关系,文档末尾添加如下内容:

192.168.121.141 master
192.168.121.142 slave1
192.168.121.143 slave2

修改完,保存即可。(这里保存的时候可能会出现限权问题,自己百度去修改该文件的限权)
在这里插入图片描述
要想通过windows系统下的浏览器访问虚拟机,那么我们还需要关闭虚拟机的防火墙,在三台节点上分别执行代码systemctl stop firewalld,关闭防火墙,再分别执行代码systemctl disable firewalld,禁止开机自动启动防火墙
在这里插入图片描述
此时我们就可以通过浏览器访问http://master:50070和http://master:8088查看HDFS和YARN集群状态,如下图:
HDFS集群状态图
YARN集群状态图

四: 附加教程

centos 7 常用命令集合

命令含义
cd /home进入 ‘/home’ 目录
cd …返回上一级目录
cp file1 file2将file1复制为file2
cp -a dir1 dir2复制一个目录
ls显示文件信息
pwd显示工作路径
mkdir dir1创建 ‘dir1’ 目录
mkdir dir1 dir2同时创建两个目录
mv dir1 dir2移动/重命名一个目录
rm -f file1删除 ‘file1’
rm -rf dir1删除 ‘dir1’ 目录及其子目录内容
cat file1从第一个字节开始正向查看文件的内容
vi file打开并浏览文件
find / -name file1从 ‘/’ 开始进入根文件系统查找文件和目录
find / -user user1查找属于用户 ‘user1’ 的文件和目录
tar -xvf archive.tar解压一个包
tar -xvf archive.tar -C /tmp把压缩包释放到 /tmp目录下

五: 结语

通过自己的学习与理解,整理了hadoop集群的配置详细过程;该文章主要讲述了虚拟机的安装、配网以及hadoop集群搭建的详细过程,每一步都非常详细,其中有不清楚的地方,欢迎大家提出,我会尽自己最大努力去帮大家解决。学习此门课程,是个漫长的过程,是一个积累的过程,对于刚学的人来说,可能是有点难,但是只要自己用心,细心的去学,定会有收获。后面我会继续分享有关大数据的文章,对分布式协调服务zookeeper和hive数据仓库感兴趣的可以去看看这两篇文章,这两篇文章主要讲了zookeeper集群的部署以及hive数据仓库的本地/远程模式的搭建:zookeeper集群搭建数据仓库hive本地/远程模式搭建

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐