一、模板机的部署
1.设置好子网ip和子网掩码以及网关
保证有NAT模式
子网IP着重记住前三段:192.168.222.xxx
2.开始建立虚拟机
注意:路径中不要有中文
3.安排8个内核
4.安排2GB内存
创建初步成功,接着
5.开启此虚拟机
6.选择中文
7.日期&时间保存与所处时间一致
8.安装目标位置
设置/root 1G
设置swap 2G
设置 / 47G
9.kDUMP启用
root密码写成123456
登录一下,ping看一下是否成功ping通
10.安装好vim
yum -y install vim wget curlnet-tools zip unzip
可能出现问题:
解决办法见centos7 yum安装使用时提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
上传刚才下载CentOS-7repo
mv /etc/yum.repos.d/CentOS-7.repo /etc/yum.repos.d/CentOS-Base.repo
11.修改配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改如图:
注意IPADDR=192.168.222.100,和前面对应
service network restart 网络服务重启
永久关闭防火墙命令
systemctl disable firewalld.service
reboot 重启虚拟机
vim /etc/hostname
12. 修改主机名称
useradd star 添加用户star
passwd star
123456
13.修改配置文件添加权限
vim /etc/sudoers
找到位置,再去添加star用户权限
star ALL=(ALL) NOPASSWD:ALL
14.连接shell
我这里使用的是XShell
sudo star 进入star用户
sudo mkdir module
sudo mkdir software
15.设置全局变量
创建文本文档,用记事本编辑内容
C:\Windows\System32\drivers\etc位置下有hosts文件,覆盖掉
vim /etc/hosts
安装好一下包:
sudo yum install lrzsz -y
sudo yum -y install rsync
sudo yun -y install nc
sudo yum install net-tools
16.整体步骤
1) 虚拟机启动与登录
输入登录名 root 和密码 123456
2) ping 测试主机之间的网络连通性
[root@localhost ~] ping www.badiu.com
3) 安装 vim
[root@localhost ~]yum -y install vim wget curl
net-tools zip unzip
4) 修改 ip 地址
[root@localhost~]#vim
/etc/sysconfig/network-scripts/ifcfg-ens33
============修改内容如下============= BOOTPROTO="static" ONBOOT="yes" 系统启动的时候网络接收是否有效
**VM=>编辑=>虚拟网络编辑器==>查看 VM8 子网 ip 192.168.88.0
IPADDR=192.168.88.100
**网关设置
GATEWAY=192.168.88.2
**域名解析器
DNS1=192.168.88.2
============================ 编辑完成后输入 ESC+:wq!保存
5) 重启网络服务
[root@localhost ~]service network restart
6) 查看网络情况
[root@localhost ~]ifconfig
2.1.4 配置主机名
1) 修改主机名
[root@localhost ~]vim /etc/hostname
=========修改内容如下====
hadoopbase ======================== 编辑完成后输入 ESC+:wq!保存
2.1.5 关闭防火墙
1) 查看防火墙状态
[root@localhost ~]systemctl status firewalld
2) 关闭防火墙(临时)
[root@localhost ~]systemctl stop firewalld
3) 永久关闭防火墙
[root@localhost ~]systemctl disable
firewalld.service
4) 重启虚拟机
[root@localhost ~]reboot
2.1.6 添加用户并提升权限
1) 添加用户并设置密码
[root@localhost ~]useradd star
[root@localhost ~]passwd star
输入两次密码 123456
2) 修改配置文件添加权限
[root@localhost ~]vim /etc/sudoers
=========修改内容如下====
root ALL=(ALL) ALL(定位位置用的只需要添加下面就可以)
star ALL=(ALL) NOPASSWD:ALL
======================== 编辑完成后输入 ESC+:wq!保存
2.1.7 创建 module(安装路径)和 software(软件包)
1) 切换到 star 用户
[root@localhost ~]su star
2) 创建目录
[star@localhost ~]cd /opt
[star@localhost ~]sudo mkdir /module
[star@localhost ~]sudo mkdir /software
3) 修改目录权限
[star@localhost ~]su root
[root@localhost ~]cd /opt
[root@localhost ~]chown star:star module/
[root@localhost ~]chown star:star oftware/
2.1.8 设置全局变量变量
[root@localhost ~]su star
[star@localhost ~]mkdir /home/star/bin
2.1.9 设置网络名称
1) 设置 Linux 系统 切换到 root 用户
[root@localhost ~]su root
[root@localhost ~]vim /etc/hosts
=========添加内容如下====
192.168.88.100 hadoop100
192.168.88.101 hadoop101
192.168.88.102 hadoop102
192.168.88.103 hadoop103
192.168.88.104 hadoop104
192.168.88.105 hadoop105
192.168.88.106 hadoop106
192.168.88.107 hadoop107
192.168.88.108 hadoop108 ======================== 编辑完成后输入 ESC+:wq!保存
2) 设置 Windows 系统 网络名称
到 C:\Windows\System32\drivers\etc 目录下
打开 hosts 文件 添加以下内容
=========注意左对齐===========
192.168.88.100 hadoop100
192.168.88.101 hadoop101
192.168.88.102 hadoop102
192.168.88.103 hadoop103
192.168.88.104 hadoop104
192.168.88.105 hadoop105
192.168.88.106 hadoop106
192.168.88.107 hadoop107
192.168.88.108 hadoop108 ======================== 将 hosts 复制粘贴到桌面 修改之后保存
将桌面的 hosts 文件覆盖原先的 hosts 搞定
2.1.10 下载其他插件
1) 在 root 权限下载
[root@localhost ~]sudo yum install lrzsz -y
[root@localhost ~]sudo yum -y install rsync
[root@localhost ~]sudo yum -y install nc[root@localhost ~]sudo yum install net-tools --- ifconfig 命令检验
二、虚拟机克隆
1.克隆机的部署
1.1 AUSTBase的虚拟机
右击===>管理===>克隆==>克隆Hadoop101 Hadoop102 Hadoop103
1.2 设置各个克隆机的hostname
[root@localhost ~]vim /etc/hostname
==========修改内容如下=========
hadoop100 修改成 hadoop101 或者 hadoop102 或者hadoop103
==============================
1.3 设置各个克隆机的ip地址
[root@localhost~]#vim
/etc/sysconfig/network-scripts/ifcfg-ens33
=========修改内容如下=============
将ipaddr后面的 100分别修改成 101 102 103
==============================
1.4 使用xShell连接hadoop101,hadoop102,hadoop103
卸载现有的JDK
rpm -qa | grep -i java | xargs -n1 sudo rm -e --nodeps
2 上传安装包
(在hadoop101上)
插件 rz -E是上传文件(上传比较小的压缩包)
# cd /opt/software
# rz -E
不好用,还会传乱码,检验使用Xttp程序(仅只针对XShell程序传输文件)
安装官网网址
点击后就是打开xftp
个人感觉FinalShell更方便FinalShell官网网址
3 解压缩安装包
(在hadoop101上)
cd /opt/software
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
cd /opt/module/
ll
4 配置环境变量
(在hadoop101上)
# 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.d/my_env.sh
检查是否安装成功: java -version
5.Hadoop的安装与部署
5.1 上传安装包(在hadoop101上)
# cd /opt/software
点击xftp上传hadoop安装文件
5.2 解压缩安装包(在hadoop101上)
# cd /opt/software
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
5.3 配置环境变量(在hadoop101上)
# sudo vim /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.d/my_env.sh
# hadoop version
6.实现集群间文件传输
su star
cd /home/star/bin
sudo vim xsync.sh
内容如下:
#!/bin/bash
# 1.判断参数个数
if [ $# -lt 1 ]
then
echo "Not Enough Arguement!"
exit;
fi
# 2.遍历集群所有机器
for host in hadoop101 hadoop102 hadoop103
do
echo ==========$host=========
#3.遍历所有目录,逐个发送
for file in $@
do
# 4.判断文件是否存在
if [ -e $file ]
then
# 5.获取父目录
pdir=$(cd -P $(dirname $file);pwd)
# 6.获取当前文件的名称
fname=$(basename $file)
# 7.使用ssh创建目标文件夹
ssh $host "mkdir -p $pdir"
# 8.rsync拷贝异同文件
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
- 首先,脚本会遍历集群中的所有机器(hadoop101、hadoop102 和 hadoop103)。
- 对于每台机器,它会遍历传入的文件列表。
- 对于每个文件,脚本会检查文件是否存在。
- 如果文件存在,它会获取文件的父目录和文件名。
- 使用 SSH 在目标机器上创建相应的目录。
- 最后,它使用 rsync 命令将文件从本地拷贝到目标机器上的相应目录。
sudo chmod +x xsync.sh
sudo cp xsync.sh /bin/
将 “xsync.sh” 文件复制到 “/bin/” 目录
这样,您就可以在任何位置运行该脚本,而不需要指定完整的路径。
这里插入一个知识盲点,debug一晚上(欲哭无泪)
运行优先级问题--优先执行root bin下面的sh同名文件--再执行/home/star创建的用户bin下面的文件
我因为第一次写的shell语句与错误,就导致我把/home/star/bin里的sh文件删了,结果还是一样,运行出报错命令,解决办法是在root/bin下面的sh文件,原来它一直都在,只是我未曾发现
好在独自解决出来了,颇有收获,花费些许时间,但我却记住了这辈子可能都还记得的一个知识点,继续加油!
sudo xsync.sh /home/star/bin
运行 “xsync.sh” 脚本,并将 “/home/star/bin” 目录中的文件同步到集群中的其他机器。
成功结果页面: