01- 安装Centos7虚拟机

安装Centos7

1、下载

网易、阿里、搜狐等公司都有开源镜像站提供CentOS7的镜像文件下载,以阿里云镜像站为例:

Index of /centos/7/isos/x86_64/


../
0_README.txt                                       06-Nov-2020 14:32                2495
CentOS-7-x86_64-DVD-2009.iso                       04-Nov-2020 11:37          4712300544
CentOS-7-x86_64-DVD-2009.torrent                   06-Nov-2020 14:44              180308
CentOS-7-x86_64-Everything-2009.iso                02-Nov-2020 15:18         10200547328
CentOS-7-x86_64-Everything-2009.torrent            06-Nov-2020 14:44              389690
CentOS-7-x86_64-Minimal-2009.iso                   03-Nov-2020 14:55          1020264448
CentOS-7-x86_64-Minimal-2009.torrent               06-Nov-2020 14:44               39479
CentOS-7-x86_64-NetInstall-2009.iso                26-Oct-2020 16:26           602931200
CentOS-7-x86_64-NetInstall-2009.torrent            06-Nov-2020 14:44               23567
sha256sum.txt                                      04-Nov-2020 11:38                 398
sha256sum.txt.asc    

下载最小化安装版本 CentOS-7-x86_64-Minimal-2009.iso

2、配置虚拟机软件

这里使用VmwareStation15.5

为了方便,采用NAT连接方式,NAT模式的虚拟网卡名称默认为VMnet8

为了统一网段,修改虚拟机网络编辑器配置如下,将第三段修改为186

image-20210109071819453

网关也要对应修改

image-20210109071924873

3、创建虚拟机

  1. 创建虚拟机,选择典型,安装程序光盘映像文件选择前面下载的iso文件。
  2. 安装位置不要采用默认设置,最好自己指定
  3. 磁盘大小,为了便于扩展,最大容量选择50G
  4. 为了拷贝方便,选择拆分多个文件
  5. 如果宿主内存足够,虚拟机内存可设置为4096MB,但最好不要超过宿主内存的一半以上
  6. 网络适配器默认采用NAT连接

最终结果

image-20210109072813301

然后选择完成进行系统安装,在安装界面设置

  1. 本地化

    1. 安装界面语言-简体中文
    2. 日期默认亚洲上海时区
    3. 键盘采用默认配置即可
    4. 语言支持除了中文外添加English(United States)
  2. 软件

    1. 安装源 - 无需设置
    2. 软件选择 - 由于已经是最小安装,因此无需设置
  3. 系统

    1. 安装位置

      1. 选择本地标准磁盘(40G)
      2. 选择我要配置分区
        1. 创建挂载点
        2. /boot 200 MiB
        3. /swap 2048 MiB
        4. / 剩余的37.8 GiB
      3. 完成 - 接受更改
    2. KDUMP - 忽略

    3. 网络和主机名(也可以忽略,以后自行修改)

      1. 开启以太网ens33
      2. 编辑ens33网络
        1. 方法手动
        2. 添加地址
        3. IP = 192.168.186.100
        4. 子网掩码 = 255.255.255.0
        5. 网关 192.168.186.2 - 和虚拟机的NAT连接网络设置保持一致
        6. DNS = 223.5.5.5,8.8.8.8 - 前置是国内通用DNS地址,后者是谷歌的DNS地址(可能被墙)
    4. 开始安装

      1. 设置ROOT密码 - niit1234, 两次确认完成简单密码(由于是学习用的虚拟机)的设置
      2. 创建用户 - 忽略,以后可以自行创建
    5. 重启

4、网络配置

测试能否ping通百度

[root@localhost ~]# ping baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=53.5 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=57.5 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128 time=52.5 ms
(Ctrl-C退出)

如果不能,则检查配置,其中注释处重点检查

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"                            # static - 静态分配IP地址
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="b00b9ac0-60c2-4d34-ab88-2413055463cf"
DEVICE="ens33"
ONBOOT="yes"                              # 系统启动时网络接口是否有效
IPADDR="192.168.186.100"                   # 静态IP
PREFIX="24"
GATEWAY="192.168.186.2"                        # 网关
DNS1="223.5.5.5"                          
DNS2="8.8.8.8"
IPV6_PRIVACY="no"
  1. 为了避免动态分配ip造成ip变动导致集群不稳定,一定要修改成为静态ip
  2. ONBOOT="yes" 可以开机时开启网络接口,便于联网
  3. 网关要和虚拟机的VMnet8的配置相同

修改后重启网络服务

[root@localhost ~]# service network restart
Restarting network (via systemctl):                        [  确定  ]

如果报错,则使用reboot命令重启系统

5、主机名配置

查看

[root@localhost ~]# hostname
localhost.localdomain

修改(主机名全小写,且不要有下划线)

[root@localhost ~]# hostnamectl --static set-hostname hadoop100

[root@localhost ~]# hostname
hadoop100

查看虚拟机IP

[hadoop@hadoop100 ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:05:2a:0e brd ff:ff:ff:ff:ff:ff
    inet 192.168.186.100/24 brd 192.168.186.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::ac3e:51e8:9275:6fcd/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

其中ens33的 inet 192.168.186.100 即为当前虚拟机的ipv4的地址

修改虚拟机的IP和主机名映射文件

# vi /etc/hosts vi /etc/hosts

#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.186.100 hadoop100

同时也需要修改Windows的主机映射文件

C:\Windows\System32\drivers\etc\HOSTS

# hadoop
192.168.186.100 hadoop100
192.168.186.101 hadoop101
192.168.186.102 hadoop102

其中

  1. hadoop100-hadoop102为大数据全分布式环境的主机名设置

另,新修改的主机名要重新登录终端或者重启系统后才能显示正常,如 [root@hadoop100 ~]#

6、防火墙设置

为了方便Windows或其他系统可以访问Linux虚拟机内的服务,为了方便学习的目的可以关闭虚拟机的防火墙服务(真实服务器上不要这样做)

关闭防火墙,可以避免端口被限制

[root@hadoop100 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 六 2021-01-09 08:03:31 CST; 38min ago
     Docs: man:firewalld(1)
 Main PID: 706 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─706 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

1月 09 08:03:30 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
1月 09 08:03:31 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
1月 09 08:03:32 localhost.localdomain firewalld[706]: WARNING: AllowZoneDrifting is enabled. This ...w.
Hint: Some lines were ellipsized, use -l to show in full.
[root@hadoop100 ~]# systemctl stop firewalld.service
[root@hadoop100 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

1月 09 08:03:30 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
1月 09 08:03:31 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
1月 09 08:03:32 localhost.localdomain firewalld[706]: WARNING: AllowZoneDrifting is enabled. This ...w.
1月 09 08:42:23 hadoop100 systemd[1]: Stopping firewalld - dynamic firewall daemon...
1月 09 08:42:23 hadoop100 systemd[1]: Stopped firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.

(如果是Centos6,则默认的防火墙服务名为iptables)

  1. systemctl的status可以查看现有服务的状态
  2. systemctl的stop可以临时关闭防火墙
  3. 还可以使用systemctl的disable和enable来永久禁用和启用服务,

这里为了方便禁用自动开机启动防火墙服务

[root@hadoop100 ~]# systemctl disable firewalld.service
[root@hadoop100 ~]# systemctl is-enabled firewalld.service
disabled

7、安装vim

Centos默认没有安装vim, 为了编辑时能得到高亮显示,这里安装vim,并替换原来的vi命令

# yum install vim

[root@hadoop100  ~]# vi ~/.bashrc 

# .bashrc
# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vi=vim

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

使设置生效

[root@hadoop100 ~]# source ~/.bashrc 

8、创建操作用户

root用户具有太大操作权限,实际操作时需要对不同的用户设置不同的限制,所以需要另外创建一个一般用途的用户。

[root@hadoop100 ~]# useradd hadoop
[root@hadoop100 ~]# passwd hadoop
改用户 hadoop 的密码 。
新的 密码:123123
无效的密码: 密码少于 8 个字符
重新输入新的 密码:123123
passwd:所有的身份验证令牌已经成功更新。

修改sudoer配置文件

[root@hadoop100 ~]# source ~/.bashrc 

由于前面已经设置了vim的别名为vi,这里会直接使用vim进行编辑

  1. 在vim中,键入:set nu可以显示行号

  2. 键入100G可以快速跳转到第100行位置

  3. 键入yy复制当前行,键入p拷贝到下一行

  4. 进行如下修改

    ## Next comes the main part: which users can run what software on 
    ## which machines (the sudoers file can be shared between multiple
    ## systems).
    ## Syntax:
    ##
    ##      user    MACHINE=COMMANDS
    ##
    ## The COMMANDS section may have other options added to it.
    ##
    ## Allow root to run any commands anywhere 
    root    ALL=(ALL)       ALL
    hadoop  ALL=(ALL)       NOPASSWD:ALL
    1. 第一个配置ALL=(ALL)是让hadoop用户拥有root权限
    2. 第二个配置NOPASSWD:ALL是当hadoop用户执行sudo命令时,不需要输入hadoop用户的密码

    登录新用户进行测试

    [root@hadoop100 root]$ su hadoop
    [hadoop@hadoop100 ~]$ cd ~
    [hadoop@hadoop100 ~]$ sudo yum install -y net-tools
    [hadoop@hadoop100 ~]$ ifconfig
    ens33: flags=4163  mtu 1500
           inet 192.168.186.100  netmask 255.255.255.0  broadcast 192.168.186.255
           inet6 fe80::ac3e:51e8:9275:6fcd  prefixlen 64  scopeid 0x20
           ether 00:0c:29:05:2a:0e  txqueuelen 1000  (Ethernet)
           RX packets 1338  bytes 431899 (421.7 KiB)
           RX errors 0  dropped 0  overruns 0  frame 0
           TX packets 920  bytes 113806 (111.1 KiB)
           TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73  mtu 65536
           inet 127.0.0.1  netmask 255.0.0.0
           inet6 ::1  prefixlen 128  scopeid 0x10
           loop  txqueuelen 1000  (Local Loopback)
           RX packets 32  bytes 2592 (2.5 KiB)
           RX errors 0  dropped 0  overruns 0  frame 0
           TX packets 32  bytes 2592 (2.5 KiB)
           TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    1. yum install进行软件安装是需要root权限的,因此需要加上sudo来执行
    2. 正常情况下sudo命令需要提供当前用户的密码,确认成功后才能执行命令
    3. 由于我们在/etc/sudoers为hadoop用户配置了root权限以及免sudo密码,所以无需输入密码
    4. 查看ip使用ifconfig要比ip a的方式有更好的显示和更多的选项

9、虚拟机备份

有时候虚拟机可能为因为磁盘损坏导致引导失败,建议为重要的虚拟机制作备份

  1. 可以使用VMwareStation自带的虚拟机克隆向导实现备份
  2. 拍快照
  3. 选择完整克隆
  4. 为克隆的虚拟机另起一个名字

10、远程终端连接工具

由于在VMwareStation的虚拟机界面操作十分不便,无法滚动屏幕看之前的内容,也不能粘贴复制,另外有时我们需要在虚拟机和宿主机器之间传输文件,因此这里使用NetSarang公司的Xshell和Xftp进行对虚拟机的远程ssh连接和远程sftp连接客户端。

image-20210109101251564

具体使用方法请查看官方

https://www.netsarang.com/zh/xshell/

https://www.netsarang.com/zh/xftp/

另外强烈推荐另外一款远程终端产品叫做MobaXTerm, 也是非常好用!

image-20210301005639445

[END]

Views: 68