一、准备宿主机
为了培训Hadoop生态的部署和调优技术,需要准备3台虚拟机部署Hadoop集群环境,能够保证HA,即主要服务没有单点故障,可执行基本功能,完成小内存模式的参数调整。
1.1、准备安装包
宿主机操作系统为Win7 SP1,内存16G,磁盘为256G的SSD盘
1)虚拟机:VMware® Workstation 15 Pro 15.5.0 build-14665864 中文版
2)Linux系统:CentOS-8-x86_64-1905-dvd1.iso (Centos 8.0)
1.2、配置网络
安装VMware后,宿主机除了无线网络外共有3个网卡,分别是:
1) 本地网卡,192.168.3.127,掩码 255.255.255.0
2) Vmnet1(用于支持host only模式),192.168.121.1,掩码 255.255.255.0
3) Vmnet8(用于支持NAT[1]模式),192.168.154.1,掩码 255.255.255.0
在本次实验中,我们部署的虚拟机采用NAT模式网络。
启动VMware Workstation Pro,点击 编辑->虚拟网络编辑器…
1.2.1 查看NAT设置
点击“NAT设置(S) …”,可以查看NAT设置
即NAT的网关为192.168.154.2,在虚拟机中将IP设置为192.168.154段,掩码为255.255.255.0网关设置为192.168.154.2,即可实现虚拟机访问外部网络。
1.2.2 更改设置
如果对虚拟网卡Vmnet1和Wmnet8的IP修改,需要同时修改网卡的信息和vmware pro workstation中的“更改设置”
可以点击更改设置,注意,此操作需要管理员才可设置,并且会弹出“用户账户控制”对话框以供确认。
可以点击“NAT设置...”设置网关
1.3、配置时间服务器
将虚拟机宿主作为时间服务器。
- 在桌面上右击“计算机”,选择“管理”,然后选择“服务”。将Windows Time服务的启动类型设置为 自动(延迟启动)
- “开始”->“运行”-> 输入“regedit”打开注册表。
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer将NetSerVer下Enabled的值设置为1,如果没有Enabled则增加名为Enabled,类型为REG_DWORD,值为1的项。
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\ AnnounceFlags 设定为 5 (5表示稳定源,默认 10)
- 如果笔记本没有插网线,则因为Win7的“媒介探测(Media Sense)”技术会自动关闭网络服务,可以修改注册表,欺骗OS继续提供服务
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters,添加子项
- 名称:DisableDHCPMediaSense
- 数据类型:REG_DWORD(布尔型)
- 值:1
- 副作用,笔记本休眠后,从一个无线网络环境到另外一个无线网络环境,则因为欺骗了DHCP,笔记本唤醒后不会自动申请新IP,导致无法连接无线网络,所以需要手工禁止和启动一下无线网络,其他的DHCP网也需类似操作。
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters,添加子项
- 重新启动Windows Time服务,就可以使用宿主作为NTP服务器了。
- 注意,缺省情况下Windows Time服务是自动(延迟启动),这适用于台式机和笔记本模式,如果是Windows服务器,要修改为“自动”模式。
- 只用物理网卡才对外提供时间服务,Linux的时间服务器IP一定要对应物理网卡的IP,在本例中时间服务器IP为192.168.3.127
1.4、Centos8常用命令
root运行
# systemctl start foo #运行一个服务
# systemctl stop foo #停止一个服务
# systemctl restart foo #重启一个服务
# systemctl status foo #显示一个服务(无论运行与否)的状态
# systemctl enable foo #在开机时启用一个服务
# systemctl disable foo #在开机时禁用一个服务
# systemctl is-enabled foo #查看服务是否开机启动
# reboot #重启主机
# init 0 #立即关机
二、安装Centos8.0
2.1、准备虚拟机的基础配置
选择“自定义”,点击“下一步”
点击“下一步”
选择“稍后安装操作系统”,点击“下一步”
选择“Red Hat Enterprise Linux 8 64位”, 点击“下一步”
根据个人需要,输入虚拟机的名称,也可以选择存储虚拟机的目录,点击“下一步”
根据宿主机的情况和你的具体规划选择处理器个数和核数,点击“下一步”
根据宿主机的情况和你的具体规划选择或者输入供虚拟机使用的内存,点击“下一步”
根据具体需求选择网络模式,在本例中需要通过宿主机访问互联网,又要禁止外网访问虚拟机,所以采用NAT模式,点击“下一步”
按自动推荐的模式,点击“下一步”
按自动推荐的模式,点击“下一步”
选择“创建新虚拟磁盘”,点击“下一步”
根据具体的磁盘需求,输入磁盘大小,因为要作为克隆的种子,注意不要选择立即分配所有的磁盘空间。为了方便复制,选择“见虚拟磁盘拆分为多个文件”。 点击“下一步”
点击“下一步”
进行优化,删除USB、声卡、打印机等无用的硬件。
点击“自定义硬件”
逐步选择USB控制器、声卡、打印机,点击“移除”
设置显示器,为节省资源,取消“加速3D图形”,设置分辨率为1280×1024
设置光驱采用Centos8的ISO文件
点击“关闭”回到上一界面
点击“完成”。结束虚拟机的准备阶段
2.2、启动虚拟机
接上文,点击“开启此虚拟机”
注意:虚拟机字符界面和宿主机的切换方式为按“Ctrl” + “Alt”键
选择光标到“Install CentOS Linux 8.0.1905”,回车
快速滚动显示许多文字信息后,显示图形界面。
点击“Continue”,显示汇总信息节点,在此界面中我们需要设置软件集合、磁盘分区、日期、网络等常规信息。
2.2.1、设置网络
拖动按钮,选择网络状态为“On”
此时的IP设置为DHCP模式,点击“Configure”,设置手工指定的IP
“General”选项页中选中“Automatically Connect to this network …”,确保自动启动此网络设置。
在IPV4 Settings中设置网络为人工指定的静态IP,按前文的约定,网关指定为192.168.154.2,DNS请按各地情况指定,如天津联通DNS为202.99.96.68
点击“Save”返回上一界面
将“Host Name” 后的输入框中内容修改为规划的服务器域名,如“Hadoop.centos8.cn”,点击“Apply”
点击“Done”回到上一界面。
2.2.2、设置日期
此时网络已经联通,可以同时设置时间以及时间服务器了。
首先选择正确的时区。可以通过下拉菜单选择也可以直接用鼠标在地图上选择。
现在“Network Time”处于“On”的状态,点击旁边的设置按钮
增加宿主机的时间服务器,并取消缺省的centos.pool.ntp.org服务器
注意状态“Working”,如果是,表示时间服务器正常并且可以访问,反之如果是则需要检查网络设置和时间服务器的设置。
选择“OK”确认网络时间服务器的设置。
选择“Done”回到上一界面
2.2.3、配置磁盘空间
虚拟机可以由其自动选择分区,它的规则比较简单,分为boot、根、交换分区,主要空间都在根分区。如果是物理机或者有特殊的需求则可以选择“Custom”
2.2.4、选择安装的软件包
作为服务器,一般不选择GUI,以节省系统占用的资源。
为了开发和调试,一般选择“Performance Tools”和“Development Tools”即可,其他后续软件包都可以通过yum在需要时安装。
点击“Done”回到上一界面
2.2.5、开始安装
点击“Begin Installation”开始安装
2.2.6、设置用户名和密码
注意,如果root的密码过于简单,就需要两次确认(“点击Down”),如下图。
可以再创建一个普通用户
同样,如果密码强度太弱,需要点击两次“Done”
继续等待安装进度完成
2.2.7、安装完成后重启
点击“Reboot”重新启动
2.3、常规配置
2.3.1、配置SecureCRT
创建名为hadoop的Session,IP地址为192.168.154.8,双击连接服务器
首次连接弹出对话框,注:每个虚拟机有单独的Hash值。
选择“Aceept & Save”
输入正确的用户名和密码。注意:尽量不要用root用户登录。
登录成功后可以设置Session选项。菜单“Options”-> “Session Options …”
配置颜色方案和滚动区缓冲
配置字符集和显示字体
2.3.2、设置DVD软件源或ISO软件源
2.3.2.1、设置DVD软件源
2.3.2.1.1、装载光驱
确保虚拟机设置中设备状态为“已连接”。
#切换为root用户
su
#创建目录
mkdir /mnt/centos8
#挂载
mount /dev/sr0 /mnt/centos8/
#卸载命令
umount /mnt/centos8
2.3.2.1.2、自动挂载cdrom
vi /etc/fstab
增加一行
/dev/sr0 /mnt/centos8 iso9660 auto,ro 0 0
2.3.2.1.3、创建本地源
cd /etc/yum.repos.d/
ll
-rw-r--r--. 1 root root 731 Aug 14 14:42 CentOS-AppStream.repo
-rw-r--r--. 1 root root 712 Aug 14 14:42 CentOS-Base.repo
-rw-r--r--. 1 root root 798 Aug 14 14:42 CentOS-centosplus.repo
-rw-r--r--. 1 root root 1320 Aug 14 14:42 CentOS-CR.repo
-rw-r--r--. 1 root root 668 Aug 14 14:42 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 756 Aug 14 14:42 CentOS-Extras.repo
-rw-r--r--. 1 root root 338 Aug 14 14:42 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 928 Aug 14 14:42 CentOS-Media.repo
-rw-r--r--. 1 root root 736 Aug 14 14:42 CentOS-PowerTools.repo
-rw-r--r--. 1 root root 1382 Aug 14 14:42 CentOS-Sources.repo
-rw-r--r--. 1 root root 74 Aug 14 14:42 CentOS-Vault.repo
检查哪些源是可使用状态
grep -lrn "enabled=1"
CentOS-AppStream.repo
CentOS-Base.repo
CentOS-Extras.repo
将可使用源改名
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-AppStream.repo CentOS-AppStream.repo.bak
mv CentOS-Extras.repo CentOS-Extras.repo.bak
编辑Base和App Stream源
vi CentOS-Base.repo
[BaseOS]
name=CentOS-$releasever - Base
baseurl=file:///mnt/centos8/BaseOS
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
enabled=1
存盘退出
vi CentOS-AppStream.repo
[AppStream]
name=CentOS-$releasever - AppStream
baseurl=file:///mnt/centos8/AppStream
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
enabled=1
存盘退出
检验本地源
yum clean all
yum list | grep gcc 显示如下风格列表
gcc.x86_64 8.2.1-3.5.el8 @AppStream
gcc-c++.x86_64 8.2.1-3.5.el8 @AppStream
gcc-gdb-plugin.x86_64 8.2.1-3.5.el8 @AppStream
libgcc.x86_64 8.2.1-3.5.el8 @anaconda
gcc-gdb-plugin.i686 8.2.1-3.5.el8 AppStream
gcc-gfortran.x86_64 8.2.1-3.5.el8 AppStream
gcc-offload-nvptx.x86_64 8.2.1-3.5.el8 AppStream
libgcc.i686 8.2.1-3.5.el8 BaseOS
2.3.2.2、设置ISO软件源
2.3.2.2.1、装载iso文件
#创建目录
mkdir /mnt/centos8
#复制iso文件到特定目录,如 /opt/kvm/data/iso/CentOS-8-x86_64-1905-dvd1.iso
#挂载
mount -o loop /opt/kvm/data/iso/CentOS-8-x86_64-1905-dvd1.iso /mnt/centos8
#卸载命令
umount /mnt/centos8
2.3.2.2.2、自动挂载iso文件
vi /etc/fstab
增加一行
/opt/kvm/data/iso/CentOS-8-x86_64-1905-dvd1.iso /mnt/centos8 iso9660 auto,ro 0 0
2.3.2.2.3、创建本地源
同2.3.2.1.3、创建本地源
2.3.3、检查时间同步
安装过程中已经设置了时间同步和时间服务器,此处仅检查配置文件以及服务是否启动
cat /etc/chrony.conf 查看有如下行:
server 192.168.3.127 iburst
下列命令可以将Centos8的chrony时间服务器重启、设置为自动启动、查看状态
systemctl restart chronyd
systemctl enable chronyd
systemctl status chronyd
查看Linux和时间服务器的同步情况
chronyc sourcestats –v
2.3.4、简化的安全设置
关闭防火墙
#检查防火墙状态
systemctl status firewalld.service
#关闭防火墙
systemctl stop firewalld.service
#禁止开机启动防火墙
systemctl disable firewalld.service
关闭SELINUX
# vi /etc/selinux/config
编辑内容:
#SELINUX=enforcing #注释掉
SELINUX=disabled #增加
存盘退出,下次重新启动后生效
如果想使配置立即生效,执行
setenforce 0
2.3.5、安装部分管理包
yum install expect redhat-lsb-core -y
验证
lsb_release –a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 8.0.1905 (Core)
Release: 8.0.1905
Codename: Core
查看内核版本
uname –a
Linux hadoop.centos8.cn 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
2.3.6、部署Samba
yum install samba samba-client -y
已经关闭了防火墙 所以最复杂的问题不会出现了
vi /etc/samba/smb.conf
缺省共享用户目录
另外因为没有安装打印机,所以删除共享打印机的配置
删除[printers] [print$]
启动服务
systemctl enable smb
systemctl enable nmb
systemctl restart smb
systemctl restart nmb
设置访问密码
smbpasswd -a ansible
设置win7的host
C:\Windows\System32\drivers\etc\hosts
192.168.154.8 hadoop
192.168.154.11 hadoop11.centos8.cn hadoop11
192.168.154.12 hadoop12.centos8.cn hadoop12
192.168.154.13 hadoop13.centos8.cn hadoop13
在win7访问hadoop
就可以访问ansible的home目录了
三、克隆
3.1、克隆节点
执行关机命令 init 0,关机完成后开始克隆
选中虚拟机hadoop,单击菜单-> 虚拟机-> 管理 -> 克隆…
单击“下一步”
单击“下一步”继续
如果新虚拟机就在本机运行,为了节省磁盘,可以选择“创建链接克隆”,反之如果需要复制到其他服务器,则一定要“创建完整克隆”。
单击“下一步”继续
输入克隆虚拟机的名称,单击“完成”开始克隆虚拟机。
单击“关闭”
3.2、修改IP地址
启动克隆生成的虚拟机hadoop11
设置IP和主机名
IP 在vi /etc/sysconfig/network-scripts/ifcfg-ens160
vmware不会重新生成UUID,避免重复,需要更新此UUID
UUID="…"
调用uuidgen产生过新的uuid,替换原来的串
如:
uuidgen
bd83dded-76d2-4d23-8799-134f8b7eb984
修改IP地址
IPADDR="192.168.154.8"
为
IPADDR="192.168.154.11"
3.3、修改主机名IP
vi /etc/hostname
hadoop.centos8.cn
修改为
hadoop11.centos8.cn
3.4、重新启动
重复3.1-3.4完成hadoop12,hadoop13的克隆和设置
四、Centos8和Centos7的主要差异
4.1、网络服务
Centos8/RHEL8中网络相关服务管理已经转移到NetworkManager,缺省情况不安装network服务。
systemctl status NetworkManager 可以查看服务状态。
注意:修改IP,如果仅修改网卡配置,然后重启NetworkManager,是不可行的。正确的方式是重新启动网卡:
1、 nmcli connection down ens160 停止网卡
2、 nmcli connection up ens160 启动网卡
注意:此时注意该网卡千万不要是远程管理的网卡呀。
修改配置文件有三种
1、 vi
2、 nmcli connection modify ens160(ens160是网卡名)
3、 nmtui 字符交互界面进行编辑
如果象Centos7一样使用network服务,可以用yum安装
yum install network-scripts
但是按官方资料,将来network服务会从发行包中彻底取消。
[1] NAT:Network Address Translation,网络地址转换,可实现带宽分享和安全防护。