一、准备宿主机

为了培训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,点击 编辑->虚拟网络编辑器…

虚拟机上安装centos8.0-LMLPHP

1.2.1 查看NAT设置

点击“NAT设置(S) …”,可以查看NAT设置

虚拟机上安装centos8.0-LMLPHP

即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中的“更改设置”

可以点击更改设置,注意,此操作需要管理员才可设置,并且会弹出“用户账户控制”对话框以供确认。

虚拟机上安装centos8.0-LMLPHP

可以点击“NAT设置...”设置网关

虚拟机上安装centos8.0-LMLPHP

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网也需类似操作。
  • 重新启动Windows Time服务,就可以使用宿主作为NTP服务器了。
    • 注意,缺省情况下Windows Time服务是自动(延迟启动),这适用于台式机和笔记本模式,如果是Windows服务器,要修改为“自动”模式。
    • 只用物理网卡才对外提供时间服务,Linux的时间服务器IP一定要对应物理网卡的IP,在本例中时间服务器IP为192.168.3.127

虚拟机上安装centos8.0-LMLPHP

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、准备虚拟机的基础配置

虚拟机上安装centos8.0-LMLPHP

选择“自定义”,点击“下一步”

虚拟机上安装centos8.0-LMLPHP

点击“下一步”

虚拟机上安装centos8.0-LMLPHP

选择“稍后安装操作系统”,点击“下一步”

虚拟机上安装centos8.0-LMLPHP

选择“Red Hat Enterprise Linux 8 64位”, 点击“下一步”

虚拟机上安装centos8.0-LMLPHP

根据个人需要,输入虚拟机的名称,也可以选择存储虚拟机的目录,点击“下一步”

虚拟机上安装centos8.0-LMLPHP

根据宿主机的情况和你的具体规划选择处理器个数和核数,点击“下一步”

虚拟机上安装centos8.0-LMLPHP

根据宿主机的情况和你的具体规划选择或者输入供虚拟机使用的内存,点击“下一步”

虚拟机上安装centos8.0-LMLPHP

根据具体需求选择网络模式,在本例中需要通过宿主机访问互联网,又要禁止外网访问虚拟机,所以采用NAT模式,点击“下一步”

虚拟机上安装centos8.0-LMLPHP

按自动推荐的模式,点击“下一步”

虚拟机上安装centos8.0-LMLPHP

按自动推荐的模式,点击“下一步”

虚拟机上安装centos8.0-LMLPHP

选择“创建新虚拟磁盘”,点击“下一步”

虚拟机上安装centos8.0-LMLPHP

根据具体的磁盘需求,输入磁盘大小,因为要作为克隆的种子,注意不要选择立即分配所有的磁盘空间。为了方便复制,选择“见虚拟磁盘拆分为多个文件”。 点击“下一步”

虚拟机上安装centos8.0-LMLPHP

点击“下一步”

虚拟机上安装centos8.0-LMLPHP

进行优化,删除USB、声卡、打印机等无用的硬件。

点击“自定义硬件”

虚拟机上安装centos8.0-LMLPHP

逐步选择USB控制器、声卡、打印机,点击“移除”

设置显示器,为节省资源,取消“加速3D图形”,设置分辨率为1280×1024

虚拟机上安装centos8.0-LMLPHP

设置光驱采用Centos8的ISO文件

虚拟机上安装centos8.0-LMLPHP

点击“关闭”回到上一界面

虚拟机上安装centos8.0-LMLPHP

点击“完成”。结束虚拟机的准备阶段

虚拟机上安装centos8.0-LMLPHP

2.2、启动虚拟机

接上文,点击“开启此虚拟机”

虚拟机上安装centos8.0-LMLPHP

注意:虚拟机字符界面和宿主机的切换方式为按“Ctrl” + “Alt”键

选择光标到“Install CentOS Linux 8.0.1905”,回车

快速滚动显示许多文字信息后,显示图形界面。

虚拟机上安装centos8.0-LMLPHP

点击“Continue”,显示汇总信息节点,在此界面中我们需要设置软件集合、磁盘分区、日期、网络等常规信息。

虚拟机上安装centos8.0-LMLPHP

2.2.1、设置网络

虚拟机上安装centos8.0-LMLPHP

拖动按钮,选择网络状态为“On”

虚拟机上安装centos8.0-LMLPHP

此时的IP设置为DHCP模式,点击“Configure”,设置手工指定的IP

虚拟机上安装centos8.0-LMLPHP

“General”选项页中选中“Automatically Connect to this network …”,确保自动启动此网络设置。

虚拟机上安装centos8.0-LMLPHP

在IPV4 Settings中设置网络为人工指定的静态IP,按前文的约定,网关指定为192.168.154.2,DNS请按各地情况指定,如天津联通DNS为202.99.96.68

虚拟机上安装centos8.0-LMLPHP

点击“Save”返回上一界面

虚拟机上安装centos8.0-LMLPHP

将“Host Name” 后的输入框中内容修改为规划的服务器域名,如“Hadoop.centos8.cn”,点击“Apply”

虚拟机上安装centos8.0-LMLPHP

点击“Done”回到上一界面。

2.2.2、设置日期

此时网络已经联通,可以同时设置时间以及时间服务器了。

首先选择正确的时区。可以通过下拉菜单选择也可以直接用鼠标在地图上选择。

虚拟机上安装centos8.0-LMLPHP

现在“Network Time”处于“On”的状态,点击旁边的设置按钮虚拟机上安装centos8.0-LMLPHP

虚拟机上安装centos8.0-LMLPHP

增加宿主机的时间服务器,并取消缺省的centos.pool.ntp.org服务器

虚拟机上安装centos8.0-LMLPHP

注意状态“Working”,如果是虚拟机上安装centos8.0-LMLPHP,表示时间服务器正常并且可以访问,反之如果是虚拟机上安装centos8.0-LMLPHP则需要检查网络设置和时间服务器的设置。

选择“OK”确认网络时间服务器的设置。

选择“Done”回到上一界面

2.2.3、配置磁盘空间

虚拟机上安装centos8.0-LMLPHP

虚拟机可以由其自动选择分区,它的规则比较简单,分为boot、根、交换分区,主要空间都在根分区。如果是物理机或者有特殊的需求则可以选择“Custom”

2.2.4、选择安装的软件包

虚拟机上安装centos8.0-LMLPHP

作为服务器,一般不选择GUI,以节省系统占用的资源。

虚拟机上安装centos8.0-LMLPHP

为了开发和调试,一般选择“Performance Tools”和“Development Tools”即可,其他后续软件包都可以通过yum在需要时安装。

点击“Done”回到上一界面

2.2.5、开始安装

虚拟机上安装centos8.0-LMLPHP

点击“Begin Installation”开始安装

虚拟机上安装centos8.0-LMLPHP

2.2.6、设置用户名和密码

虚拟机上安装centos8.0-LMLPHP

注意,如果root的密码过于简单,就需要两次确认(“点击Down”),如下图。

虚拟机上安装centos8.0-LMLPHP

可以再创建一个普通用户

虚拟机上安装centos8.0-LMLPHP

同样,如果密码强度太弱,需要点击两次“Done”

虚拟机上安装centos8.0-LMLPHP

虚拟机上安装centos8.0-LMLPHP

继续等待安装进度完成

虚拟机上安装centos8.0-LMLPHP

2.2.7、安装完成后重启

虚拟机上安装centos8.0-LMLPHP

点击“Reboot”重新启动

虚拟机上安装centos8.0-LMLPHP

2.3、常规配置

2.3.1、配置SecureCRT

虚拟机上安装centos8.0-LMLPHP

创建名为hadoop的Session,IP地址为192.168.154.8,双击连接服务器

首次连接弹出对话框,注:每个虚拟机有单独的Hash值。

虚拟机上安装centos8.0-LMLPHP

选择“Aceept & Save”

虚拟机上安装centos8.0-LMLPHP

输入正确的用户名和密码。注意:尽量不要用root用户登录。

虚拟机上安装centos8.0-LMLPHP

登录成功后可以设置Session选项。菜单“Options”-> “Session Options …”

虚拟机上安装centos8.0-LMLPHP

配置颜色方案和滚动区缓冲

虚拟机上安装centos8.0-LMLPHP

配置字符集和显示字体

2.3.2、设置DVD软件源或ISO软件源

2.3.2.1、设置DVD软件源

2.3.2.1.1、装载光驱

确保虚拟机设置中设备状态为“已连接”。

虚拟机上安装centos8.0-LMLPHP

#切换为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

虚拟机上安装centos8.0-LMLPHP

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

虚拟机上安装centos8.0-LMLPHP

就可以访问ansible的home目录了

三、克隆

3.1、克隆节点

执行关机命令 init 0,关机完成后开始克隆

选中虚拟机hadoop,单击菜单-> 虚拟机->  管理 -> 克隆…

虚拟机上安装centos8.0-LMLPHP

单击“下一步”

虚拟机上安装centos8.0-LMLPHP

单击“下一步”继续

虚拟机上安装centos8.0-LMLPHP

如果新虚拟机就在本机运行,为了节省磁盘,可以选择“创建链接克隆”,反之如果需要复制到其他服务器,则一定要“创建完整克隆”。

单击“下一步”继续

虚拟机上安装centos8.0-LMLPHP

输入克隆虚拟机的名称,单击“完成”开始克隆虚拟机。

虚拟机上安装centos8.0-LMLPHP

单击“关闭”

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,网络地址转换,可实现带宽分享和安全防护。

05-28 20:51