1)下载VMware进行安装
链接:https://pan.baidu.com/s/1wWLGqRgc2-xTss8EAueF-g
提取码:hjl4
可以参考:最新超详细VMware虚拟机下载与安装_隐秀_-CSDN博客_vmware虚拟机安装
2)下载Centos7
链接:https://pan.baidu.com/s/1psZpZMinrCuL57Bg0Kev1w
提取码:hjl4
3)打开VMware进行虚拟机的创建
点击创建新的虚拟机
直接下一步
直接下一步
选择稍后安装操作系统
选择Linux,版本按照下载的版本进行选择,我的是Centos7
修改虚拟机的名字,方便辨认
这里处理器的配置,我选的是2、2,是因为后面还需要用到Windows的任务
虚拟机的内存,我设的是4g,设的太小,那么在后期进行测试的时候,会溢出
选择NAT,因为需要独立的IP地址进行访问
直接下一步
直接下一步
创建新虚拟磁盘
磁盘我选的是50g,在虚拟机不用或者用的存储空间达不到50g的时候,它是不会直接占用这50g存储的,放心使用
这边也是方便管理,修改目录
点击完成
会出现这个
点击编辑虚拟机设置
点击CD/DVD,在右侧点击使用ISO映像文件,选择下载的Centos7ISO文件,点击确定即可
点击编辑,点击虚拟网络编辑器
点击更改设置
选择NAT模式,修改子网IP,改成192.168.10.0 (这个10可以随机设置,这里设置为10)
再点击NAT设置
把网关IP也进行修改,把第三个改成10即可,末位通常是2,然后点击确定
然后开启虚拟机
直接回车
然后等待安装
选择中文,简体中文
修改时间,改为与本地一致
软件选择
选择带桌面的GNOME,这个比较友好
选择安装位置
选择我要配置分区,然后点击完成
点击+号
添加如下配置
启动时所分配的容量
当内存不够时,可临时使用的内存空间
跟路径下的容量
点击完成即可
点击接受更改
这个选项是当虚拟机意外关闭时,是否进行备份的选择
我这边并没有选择,因为是自己的电脑,占内存,如果是公司的电脑,则可以勾选
接下来设置网络和主机名
按照如下设置即可
这个是选择安全策略的,因为我的电脑没有这个,选择未选择,然后直接点击开始安装即可
会进入这个页面,设置root密码
接下来等待安装完成即可
安装完毕,点击重启即可
回车即可
点击
点击同意许可协议,再点击完成即可
点击完成配置
点击前进
点击前进
点击前进
选择上海,上海,中国,然后点击前进
点击跳过
设置用户名
设置密码
点击开始使用
到这里,虚拟机安装完毕了,接下来是进行内部配置的设置
打开本地电脑网络配置
选择以太网,点击更改适配器选项
选择VMnet8,右键点击选择属性
修改以下配置
如果找不到VMnet8,打开虚拟机
点击编辑
点击虚拟网络编辑器,进入如下页面,点击还原默认设置即可
接下来进入安装好的虚拟机
右键打开终端
切换root用户,方便接下来的操作输入命令 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="82e3e39d-f3f5-4d24-9f77-0a9d16d91ea3" DEVICE="ens33" onBOOT="yes" IPADDR=192.168.10.100 GATEWAY=192.168.10.2 DNS1=192.168.10.2
修改主机名
vi /etc/profile
修改主机名称映射
vi /etc/hosts
添加如下代码
192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 192.168.10.104 hadoop104 192.168.10.105 hadoop105 192.168.10.106 hadoop106 192.168.10.107 hadoop107 192.168.10.108 hadoop108
重启虚拟机 reboot
查看ip ifconfig
查看网络是否畅通 ping www.baidu.com
查看主机名 hostname
安装下载xshell和xftp,这个大家可以去参考一下其他文章
Windows 下 xshell 和 xftp 安装与使用_沉觞的博客-CSDN博客_xshell安装xftp
接下来安装软件库,因为在红帽体系的Linux系统中,有些软件是找不到的
yum install -y epel-release
如果安装的是最小版的Linux,还需要执行以下两步,因为我安装的是桌面版,所以这里省略
net-tool:工具包集合,包含 ifconfig 等命令 vim:编辑器
yum install -y net-tools yum install -y vim
接下来关闭防火墙
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld.service 永久关闭防火墙
给之前创建的用户分配root权限,方便之后使用sudo执行root权限
vi /etc/sudoers
添加如下代码,用户名根据自己设置的更改
这行代码的意思是,给hjl用户root的权限,并且不需要输入密码
hjl ALL=(ALL) NOPASSWD:ALL
需要输入wq!强制退出保存
exit 退出当前账户
cd /opt
使用hjl用户删除rh文件夹
创建module和software目录,方便后期进行软件的存储
同时把这两个文件夹分配用户权限
卸载虚拟机自带的JDK
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
删除完后重启虚拟机 reboot
接下来进行三台虚拟机的克隆
首先要先关闭虚拟机
然后点击克隆
用同样的方式创建另外两台虚拟机,命名hadoop103,hadoop104
在克隆完hadoop102,hadoop103,hadoop104以后,开启三台虚拟机,并按照上述操作,修改ip和主机名
当修改完三台虚拟机的hostname和IP后,reboot重启一下虚拟机
重启完以后,使用命令ifconfig查看网卡
并尝试ping www.baidu.com,查看网络是否畅通
现在可以使用xshell去连接虚拟机,这样方便操作,当然你也可以继续在VMware操作
接下来在hadoop102上安装JDK,hadoop103和hadoop104上的JDK直接拷贝过去即可,这样效率更高。因为后续还有hadoop的安装,所以把JDK和Hadoop都拷贝到/opt/software/目录下。
安装包链接↓
链接:https://pan.baidu.com/s/1a_bqU6D_r8P3L7JMOlKYPA
提取码:hjl4
将JDK加压至/opt/module/目录下
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
接下来是修改环境变量
cd /etc/profile.d/
在这个目录下创建一个文件
sudo vim /etc/profile.d/my_env.sh
然后在这个文件中添加以下内容
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin
然后输入命令更新环境变量
source /etc/profile
查看java是否安装成功
java -version
接下来安装hadoop
cd /opt/software/
解压 tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
接下来配置hadoop的配置文件
sudo vi /etc/profile.d/my_env.sh
添加如下代码
#HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
修改完后保存退出,更新环境变量
source /etc/profile
查看hadoop的安装情况
hadoop version
接下来是将hadoop102的文件拷贝到hadoop103和hadoop104上
输入以下命令
scp -r /opt/module/ hjl@hadoop103:/opt/module/
scp -r /opt/module/ hjl@hadoop104:/opt/module/
输入yes
输入目标虚拟机的密码
然后等待拷贝完成即可
接下来创建一个脚本,这个脚本是用来同步差异文件的
cd /home/hjl/
mkdir /bin
vim xsync
输入以下代码
#!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi for host in hadoop102 hadoop103 hadoop104 do echo ==================== $host ==================== #3. 遍历所有目录,挨个发送 for file in $@ do #4. 判断文件是否存在 if [ -e $file ] then #5. 获取父目录 pdir=$(cd -P $(dirname $file); pwd) #6. 获取当前文件的名称 fname=$(basename $file) ssh $host "mkdir -p $pdir" rsync -av $pdir/$fname $host:$pdir else echo $file does not exists! fi done done ~
修改 xsync的权限 chmod +x xsync
然后执行命令,复制环境变量
sudo ./bin/xsync /etc/profile.d/my_env.sh
期间需要输入密码
复制成功后记得需要更新hadoop103和hadoop104的环境变量
source /etc/profile
接下来,设置ssh免密登录,让三台虚拟机之间可以不使用密码互相登录
在每台虚拟机中运行命令 ssh-keygen -t rsa
然后再使用命令将各自的公钥发送给每台虚拟机
ssh-copy-id hadoop102/103/104 需要输入一次密码
接下来可以使用命令ssh hadoop102/103/104进行登录试验
刚才我们配置的是自己的用户,还需要将root进行配置免密登录,主要是hadoop102对hadoop103和hadoop104的免密登录
切换到root用户使用ssh hadoop103/hadoop104即可,也可以将剩余两台虚拟机的root用户免密登录也设置了
接下来进行集群配置
这里将NameNode和SecondaryNameNode,及resourceManager分开部署到三台虚拟机,因为这三个进程都十分消耗内存,当然如果机器的配置非常好,也可以部署到同一它虚拟机上。
这个集群配置可以去官网下载默认配置文件进行替换。我们这里是自定义配置。首先在hadoop102上配置,之后使用xsync进行复制。
首先针对core-site.xml进行配置
cd /opt/module/hadoop-3.1.3/etc/hadoop
然后是core-site.xml
vi core-site.xml
添加如下内容
fs.defaultFS hdfs://hadoop102:8020 hadoop.tmp.dir /opt/module/hadoop-3.1.3/data hadoop.http.staticuser.user hjl
hdfs-site.xml
vi hdfs-site.xml
dfs.namenode.http-address hadoop102:9870 dfs.namenode.secondary.http-address hadoop104:9868
yarn-site.xml
vi yarn-site.xml
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop103 yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP RED_HOME
mapred-site.xml
vi mapred-site.xml
mapreduce.framework.name yarn
分发配置文件 xsync hadoop
接下来配置workers
vi workers
替换为如下配置
hadoop102 hadoop103 hadoop104
初始化NameNode
hdfs namenode -format
初始化成功会生成两个新的文件夹
接下来启动hdfs,sbin/start-dfs.sh,在hadoop102上启动
通过jps查看进程
可以在浏览器上访问hadoop102:9870进行访问
接下来启动yarn,前往hadoop103上启动
sbin/start-yarn.sh
浏览器访问hadoop103:8088
一个小测试,大家可以去试一下
Hadoop单机和完全分布式自带Mapreduce测试_你可以自己看的博客-CSDN博客
到这里,集群模板已经搭建完成了。更多的操作可以关注后续~~



