(说明一下哈就是桌面版和服务器版没什么太大的区别,桌面版为个人电脑所配置,预装了图形界面和一些其他软件,比如LibreOffice,音乐播放器,游戏等等,而服务器版没有这些东西,服务器版启动之后只有一个黑屏+光标,所有的操作都是命令形式的)
打开VMware点击-----创建新的虚拟机弹出窗口选择典型安装即可----下一步:

弹出以下窗口 选择 稍后安装操作系统----下一步:

选择需要安装的操作系统----下一步:

这里设置虚拟机的名字和要安装的位置----下一步:

设置磁盘容量----下一步:

这里先不要点击完成选择自定义硬件

这里指定自己ISO镜像的位置----关闭

点击完成

可以看到VMware下生成了一个名为master的虚拟机----点击开启此虚拟机。
(现在虚拟机还不能使用,现在就相当于一个没有安装操作系统的空电脑,只有躯体没有灵魂)

点开之后会一阵加载文件,等一会会出现下面界面:

这里选择继续而不更新----摁回车

这里是设置键盘默认就可以了----摁回车

这里也是直接默认就可以了----摁回车

这里是设置代理服务器的,不用填写直接回车就可以了

设置下载源


选择Done直接回车就可以了

这里也是默认直接回车

上一步回车之后会弹出一个对话框如下图:----选择Continue回车

设置用户名和主机名设置完之后选在Done进行下一步

选择安装OpenSSH 服务

直接选择Done进行下一步

安装页面

更新包和重启虚拟机,选择完之后还要等一会

经过漫长的等待出现下面界面直接按回车继续执行

出现下面界面摁回车就可以

执行上一步的话会出现下面界面使用用户密码登录

使用用户名登陆上去就说明这台虚拟机已经可以工作了

节点
IP地址
主机名
master
192.168.100.100
master
slave1
192.168.100.101
slave1
slave2
192.168.100.102
slave2
在配置静态IP之前要看一下VMware虚拟网卡的网段

配置静态IP
cd /etc/netplan
ls

查看完配置文件使用 vi 命令进行配置
sudo vi 00-installer-config.yaml

vi 编辑器刚进入的时候默认是命令模式,要按一下 i 进入编辑模式。如果编辑完成想要退出,首先先按一下Esc到命令模式然后输如
:wq!
保存退出,如果不想保存退出就使用:q!命令。


退出之后启动网卡
sudo netplan apply
ip a 查看IP的命令

hosts文件是本地域名解析,一个本地的DNS。它将IP地址和主机名相互解析
也是使用vi 编辑器进行编辑
vi /etc/hosts

先关闭master虚拟机然后点击虚拟机-----管理----克隆----下一步----下一步----选择创建完全克隆----下一步----更改虚拟机名称为slave1,位置自己选择即可。点击完成。即可看到VMware里多了一台名为slave1的虚拟机。slave2操作相同,就是虚拟机名称改为slave2即可。创建完如下图:

注意此时slave1和slave2虚拟机是克隆的,所以说配置文件和master是完全相同的,登录的话也是master的用户和密码(用户:hadoop 密码:你自己设置的)登录上咱们要给他更改一下主机名和IP地址。打开slave1、slave2虚拟机进行以下操作:
对slave1虚拟机进行操作的命令,操作的时候会让你输入密码
就输入hadoop用户的密码
hostnamectl set-hostname slave1 这个命令是永久更改主机名
sudo login 执行完这个命令会让你重新登录以下直接hadoop用户登录
对slave2虚拟机进行相同操作
hostnamectl set-hostname slave2 注意这里是slave2
sudo login
更改slave1的IP地址
vi /etc/netplan/00-installer-config.yaml
sudo netplan apply 配置完启动一下网络服务
ip a 查看一下是否配置成功

操作跟slave1命令一样,把 0 改成 2 保存退出即可,也要使用
sudo netplan apply
命令启动一下网络服务。使用ip a查看一下是否配置成功

ssh-keygen -t rsa 每台机器都要执行这个命令,一路回车就可以了
执行完上面的命令,会发现用户目录下有一个.ssh的目录,使用下面的命令查看一下
cd ~/.ssh/
ls

现在在master节点touch一个名为authorized_keys的文件然后使用cat命令将master的公钥追加到这个文件里。命令如下:
touch authorized_keys
cat id_rsa.pub >> authorized_keys

然后将slave1的公钥使用
scp命令传到master节点上
scp ~/.ssh/id_rsa.pub hadoop@msater:~/

可以看到master节点用户命令下多了一个id_rsa_pub的文件

同样使用cat命令将slave1的公钥追加到authorized_keys文件里
cat id_rsa_pub >> .ssh/authorized_keys
cat .ssh/authorized_keys

使用相同的命令将slave2的公钥传到master节点里并写入authorized_keys文件里
scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:~/ 在slave2里执行
(这里说明一下执行完上面这个命令会把之前咱们传的slave1的公钥文件覆盖掉,没什么影响。在master节点里执行下面的命令)
cat id_rsa_pub >> .ssh/authorized_keys
cat .ssh/authorized_keys

然后使用scp命令将master节点里的authorized_keys文件分别上传到slave1和slave2节点的.ssh/目录下
scp /home/hadoop/.ssh/authorized_keys hadoop@slave1:~/.ssh/
scp /home/hadoop/.ssh/authorized_keys hadoop@slave2:~/.ssh/
验证ssh免密登录
ssh slave1 远程登录slave1命令,如果想登录其他节点,将slave1改成其他主机的主机名即可
exit 这个是退出命令

注意:使用Xftp之前要确保宿主机(就是自己的电脑)和虚拟机相互通信。

出现下面界面,咱们可以直接把左面电脑里的文件拖到右面的虚拟机里。当然虚拟机里的文件也可以直接拖到自己电脑里。

将hadoop、jdk压缩文件拖到虚拟机里

也可以到master用户目录下查看

解压hadoop、jdk
sudo tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/ -C参数是指定解压到哪个目录下
sudo tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/
cd /usr/local/ 到这个目录下
ls 查看一下

给这两个权限,归hadoop用户所有
sudo chown -R hadoop hadoop-2.7.7/
sudo chown -R hadoop jdk1.8.0_251
ll 查看一下

vi .bashrc 在这个文件最后添加如下内容,三台机器都需要添加。
source .bashrc 添加完成之后执行这个条命令,让其生效。

验证一下是否添加成功
java -version

首先进入存放Hadoop配置文件的目录
cd /usr/local/hadoop-2.7.7/etc/hadoop/ 进入此目录
ls 查看一下

vi core-site.xml 打开文件,添加以下内容
fs.defaultFS
hdfs://192.168.100.100:9000
hadoop.tmp.dir
/home/hadoop/hadoopdata

vi hadoop-env.sh 添加JDK的安装目录
export JAVA_HOME=/usr/local/jdk1.8.0_251

vi hdfs-site.xml
dfs.replication
3

vi yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.address
192.168.100.100:18040
yarn.resourcemanager.scheduler.address
192.168.100.100:18030
yarn.resourcemanager.resource-tracker.address
192.168.100.100:18025
yarn.resourcemanager.admin.address
192.168.100.100:18141
yarn.resourcemanager.webapp.address
192.168.100.100:18088

使用cp命令复制mapred-site.xml.template文件为mapred-site.xml
cp mapred-site.xml.template mapred-site.xml 使用cp命令进行复制
vi mapred-site.xml 添加以下内容
mapreduce.framework.name
yarn

vi yarn-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_251

在master节点执行下面命令
sudo scp -r /usr/local/hadoop-2.7.7 hadoop@slave1:~/
sudo scp -r /usr/local/hadoop-2.7.7 hadoop@slave2:~/
sudo scp -r /usr/local/jdk1.8.0_251 hadoop@slave1:~/
sudo scp -r /usr/local/jdk1.8.0_251 hadoop@slave2:~/
此时已经将这两个文件复制到slave1、slave2节点的用户目录下
在slave1、slave2节点执行下面命令
sudo mv /home/hadoop/hadoop-2.7.7/ /usr/local/
sudo mv /home/hadoop/jdk1.8.0_251/ /usr/local/
source .bashrc 生效一下环境变量,每台节点都要执行。

hdfs namenode -format 进行格式化
start-all.sh

查看slave1节点的进程

查看slave2节点的进程

192.168.100.100:50070


至此Hadoop完全分布式搭建完成