在VMware Workstation中安装完CentOS-7.6-Minimal版后的常用配置

1. 网络配置

(1) 设置静态IP地址

首先确定可以设置的IP地址,在vmware的虚拟网络配置中查看自己的虚拟网络网段:

我这里的虚拟机子网地址是192.168.152.0,意味着我的虚拟机的IP地址必须为192.168.152.xxx,其中xxx是主机号,主机号的取值范围是[0, 255],同时主机号不能为0,因为192.168.152.0代表一个网段,不能是255,因为192.168.152.255代表广播地址,不能是2,因为我们要设置网关和DNS为192.168.152.2,所以这里的xxx实际上可以用的值为1和[3, 254],同时xxx不能和已有的IP地址冲突,假如你有另外一个虚拟机的IP地址设置为192.168.152.100,那么你这个虚拟机的主机号就不能是100。

看到这里,各位老爷可能要问,博主当我们是智障吗?配个IP地址你BB这么多?事实上,我这个文档曾经被一个女生鄙视了,说根本看不懂,于是我想,写东西就尽量详细一点吧......

编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件(这个文件名称为ifcfg-ensxx,每个人的虚拟机中这个文件的最后两位数字可能不一样,可能是33或者32或者其他),作如下修改:

# 修改的内容
BOOTPROTO=static
ONBOOT=yes

# 新增的内容:
NM_CONTROLLED=no # 不使用 NetworkManager 来管理网络
IPADDR=192.168.152.101
# GATEWAY的网段和IP的网段一样,最后一位主机号固定为2
GATEWAY=192.168.152.2 
# DNS1和GATEWAY的值一样
DNS1=192.168.152.2
# 以下配置写死
NETMASK=255.255.255.0 # 子网掩码
DNS2=114.114.114.114
DNS3=8.8.8.8

# (可选) 删除的内容
# 假如你的虚拟机还要被克隆,那么删除UUID这个配置
UUID=XXXXXXXXXXXXXXXXXXXX

保存退出后, 停止NetworkManager服务、禁用NetworkManager服务

systemctl stop NetworkManager.service
systemctl disable NetworkManager.service

(2) 配置DNS

在(1) 设置静态IP地址中,在/etc/sysconfig/network-scripts/ifcfg-ens33文件中已经添加了DNS服务地址:

DNS1=192.168.152.2
DNS2=114.114.114.114
DNS3=8.8.8.8

那么重启网络服务后,查看/etc/resolv.conf文件就可以看到增加的DNS服务地址:

[hadoop@beh01 ~]$ sudo cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.152.2
nameserver 114.114.114.114
nameserver 8.8.8.8

而如果你没有在/etc/sysconfig/network-scripts/ifcfg-ens33文件中配置DNS,那么可以直接在/etc/resolv.conf文件中添加,格式为nameserver DNS地址,CentOS-7最多支持3个NDS地址,即使配置超过3个,多余的也不起作用。

建议在/etc/sysconfig/network-scripts/ifcfg-ens33中配置DNS并重启网络服务来修改NDS的配置。

(3) 修改主机名

编辑/etc/hostname文件,设置主机名,例如我的主机名为beh01

[hadoop@beh01 ~]$ sudo cat /etc/hostname
beh01

假如你在安装虚拟机的时候,在UI界面配置了主机名,那么这里就不需要在额外配置了。

(4) 配置主机名与IP地址的映射

编辑/etc/hosts文件,增加你的IP地址和主机名的映射

[hadoop@beh01 ~]$ sudo cat /etc/hosts
127.0.0.1       localhost
::1             localhost
192.168.152.101 beh01

同时在windows的C:\Windows\System32\drivers\etc\hosts文件中也增加同样的内容:192.168.152.101 beh01

执行完(1)-(4)步骤后,重启网络服务:

systemctl restart network

测试网络配置:

  • 查看IP地址

什么?你没有ifconfig命令?yum install net-tools -y,我也是使用yum安装的,毕竟系统是Minimal版的。

虚拟机ping外网:

windows ping 虚拟机:

(5) 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

(6) 禁用SELINUX

编辑/etc/selinux/config文件:

# 原来为 SELINUX=enforcing
SELINUX=disabled

禁用SELINUX后需要重启虚拟机生效。

2. 配置阿里云的yum源

  • 下载wget
yum install wget -y
  • 备份旧的yum源文件
cd /etc/yum.repos.d/
rename .repo .repo.bak *
  • 下载阿里云的yum源文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  • 编辑CentOS-Base.repo,将其中的gpgcheck的值设置为0(总共有5个gpgcheck需要修改为0)
  • 重新生成yum缓存
yum clean all
yum makecache

在执行yum makecache报错:

http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/fbebcd3de05e22bd1cd526e594f235968401471d4a9aef3c1ad356b6d1965365-other.sqlite.bz2: 
[Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"

在网上找资料解决问题:

  • 方法一:配置DNS 我在网络配置的时候已经设置过DNS,114.114.114.1148.8.8.8这两个都配置上了,没有解决问题。
  • 方法二:修改系统版本

查看CentOS的版本信息

[hadoop@beh01 ~]$ cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core)

编辑CentOS-Base.repo,将$releasever替换为真实的版本(我这里是7.6.1810)

在vim中查找替换的命令::%s/$releasever/7.6.1810/g

替换后的效果:

问题还是没有解决。

看日志发现:

(4/7): extras/x86_64/prestodelta                                                                      |  52 kB  00:00:00     
extras/x86_64/other_db         FAILED                                          
http://mirrors.aliyuncs.com/centos/7.6.1810/extras/x86_64/repodata/e3fc99b365562ee4f9dbd898f8acbbad55e2a5e5cf787dab83017026971ccbc9-other.sqlite.bz2: 
[Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"

于是我在浏览器访问http://mirrors.aliyuncs.com

可见mirrors.aliyuncs.com有点问题,而不是我们服务器的DNS有问题,我又访问了http://mirrors.aliyun.com,可以正常访问,而网址http://mirrors.cloud.aliyuncs.com也不能正常访问,这说明: 阿里云提供的3个下载包路径:

baseurl=http://mirrors.aliyun.com/centos/7.6.1810/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/7.6.1810/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/7.6.1810/centosplus/$basearch/

只有第一个可以使用,那就干脆不使用这两个没用的网址,只使用第一个,所以把CentOS-Base.repo文件中的baseurl这个配置,只留一个有用的网址http://mirrors.aliyun.com/centos/7.6.1810/centosplus/$basearch/

[base]
name=CentOS-7.6.1810 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.6.1810/os/$basearch/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-7.6.1810 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.6.1810/updates/$basearch/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-7.6.1810 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.6.1810/extras/$basearch/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7.6.1810 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.6.1810/centosplus/$basearch/
gpgcheck=0
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#contrib - packages by Centos Users
[contrib]
name=CentOS-7.6.1810 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.6.1810/contrib/$basearch/
gpgcheck=0
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

再次生成yum缓存:

[hadoop@beh01 yum.repos.d]$ yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: base extras updates
Cleaning up list of fastest mirrors
Other repos take up 64 M of disk space (use --verbose for details)
[hadoop@beh01 yum.repos.d]$ yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
base                                                                                                  | 3.6 kB  00:00:00     
extras                                                                                                | 3.4 kB  00:00:00     
updates                                                                                               | 3.4 kB  00:00:00     
(1/7): extras/x86_64/prestodelta                                                                      |  52 kB  00:00:01     
(2/7): extras/x86_64/other_db                                                                         | 120 kB  00:00:04     
(3/7): extras/x86_64/filelists_db                                                                     | 236 kB  00:00:06     
(4/7): updates/x86_64/prestodelta                                                                     | 511 kB  00:00:04     
(5/7): updates/x86_64/filelists_db                                                                    | 3.0 MB  00:00:37     
(6/7): base/x86_64/filelists_db                                                                       | 7.1 MB  00:00:44     
(7/7): base/x86_64/other_db                                                                           | 2.6 MB  00:00:47     
元数据缓存已建立

OK,问题解决! 这时候,你可能会问,你删除了两个网址,会不会有些包就下载不到了呢?是这样,假如某个包的位置是http://mirrors.aliyuncs.com/centos/7.6.1810/some/path/xxx.rpm,那么在http://mirrors.aliyun.com/centos/7.6.1810/some/path路径下也可以找到xxx.rpm,因为我去找了几个,发现都有,所以我这里果断下结论:http://mirrors.aliyun.com可以下载到3个网址能下载到的全部包,同时,在阿里云的yum源文件(就是CentOS-Base.repo)的注释中,发现这么一行内容:

# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.

我就装X翻译一下,咳咳,假如提供的镜像站不能使用,你可以自己定义一些镜像站,通过 baseurl= line 来定义,我们就不定义了,删除两个没用的就可以了,毕竟还有一个能用不是?

3. 用户管理

创建一个新用户吧,别老用 root 登录。 创建 hadoop 用户和 hadoop 组:

useradd hadoop # 创建hadoop用户
passwd hadoop # 给hadoop用户设置密码
groupadd hadoop # 增加hadoop组
usermod -G hadoop hadoop # 让hadoop用户属于hadoop组,usermod -G [group] [user]

给 hadoop 用户添加 sudo 权限,并且设置 hadoop 用户可以不输入密码就执行 sudo 命令,编辑/etc/sudoers文件:

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
# 这一行是新增加的
hadoop  ALL=(ALL)       NOPASSWD:ALL

当然了,编辑这个文件还是要用root用户的。

4. 时间同步

让虚拟机的时间和国家授时中心的时间保持一致

  • 安装 ntp
[hadoop@beh01 ~]$ sudo yum install ntp -y
  • 写定时脚本,每10分钟去国家授时中心同步一次时间
[hadoop@beh01 ~]$ crontab -e

# 内容如下:
*/10 * * * * sudo ntpdate cn.pool.ntp.org

# 这是安装crontab定时任务成功之后的提示
crontab: installing new crontab

Tips: 查看当前时间:

[hadoop@beh01 ~]$ date
2019年 04月 29日 星期一 00:27:27 CST

这可不是程序员熟悉的格式啊,编写脚本,命名为now,内容如下:

#!/bin/bash
date '+%Y-%m-%d %H:%M:%S'

给now脚本赋予执行权限后,直接扔到/usr/bin目录下,然后执行now:

[hadoop@beh01 ~]$ now
2019-04-28 16:33:40

美滋滋。

5. 安装常用的软件

(1) JDK

不多说了,下载.tar.gz包,上传到服务器,解压,配置环境变量,执行java -version,不多提了,不管谁看不懂,这里都不多提了....

(2) 安装Python3

  • Python官网下载最新的python3源码包(例如:Python-3.7.2.tgz)上传到服务器、解压并进入解压后的目录。
  • 安装编译依赖的包
sudo yum install gcc gcc-c++ zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel -y
  • 编译安装
[hadoop@beh01 Python-3.7.2]$ ./configure --prefix=/usr/local/python3.7
[hadoop@beh01 Python-3.7.2]$ make 
[hadoop@beh01 Python-3.7.2]$ sudo make install
  • 设置软链接 进入/usr/bin目录下 原来的python链接如下:
[hadoop@beh01 bin]$ ll | grep python
-rwxr-xr-x. 1 root   root      11312 11月 14 00:00 abrt-action-analyze-python
lrwxrwxrwx. 1 root   root          7 4月  27 01:57 python -> python2
lrwxrwxrwx. 1 root   root          9 4月  27 01:57 python2 -> python2.7
-rwxr-xr-x. 1 root   root       7216 10月 31 07:46 python2.7

解除python对python2的引用:

[hadoop@beh01 bin]$ sudo unlink /usr/bin/python

设置python3的软链接

[hadoop@beh01 bin]$ sudo ln -s /usr/local/python3.7/bin/python3.7 python3.7
[hadoop@beh01 bin]$ sudo ln -s python3.7 python3
[hadoop@beh01 bin]$ sudo ln -s python3 python
[hadoop@beh01 bin]$ sudo ln -s /usr/local/python3.7/bin/pip3.7 pip

[hadoop@beh01 bin]$ ll | grep python
-rwxr-xr-x. 1 root   root      11312 11月 14 00:00 abrt-action-analyze-python
lrwxrwxrwx  1 root   root         37 4月  28 17:01 pip -> /usr/local/python3.7/bin/pip3.7
lrwxrwxrwx  1 root   root          7 4月  28 17:00 python -> python3
lrwxrwxrwx. 1 root   root          9 4月  27 01:57 python2 -> python2.7
-rwxr-xr-x. 1 root   root       7216 10月 31 07:46 python2.7
lrwxrwxrwx  1 root   root          9 4月  28 17:00 python3 -> python3.7
lrwxrwxrwx  1 root   root         40 4月  28 17:00 python3.7 -> /usr/local/python-3.7.2/bin/python3.7
  • 修改 /usr/bin/yum文件和/usr/libexec/urlgrabber-ext-down这两个文件,将文件开头的#!/usr/bin/python修改为#!/usr/bin/python2.7
  • 测试

执行以下命令:

yum clean all
yum makecache

yum 应该可以正常使用。

测试python3:

[hadoop@beh01 Python-3.7.2]$ python -V
Python 3.7.2

[hadoop@beh01 Python-3.7.2]$ python
Python 3.7.2 (default, Mar 20 2019, 13:28:05) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("hello")
hello
>>> exit()
[hadoop@beh01 Python-3.7.2]$

测试python2:

[hadoop@beh01 bin]$ python2
Python 2.7.5 (default, Oct 30 2018, 23:45:53) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[hadoop@beh01 bin]$ 

目前的情况是python2和python3共存,默认的python版本为python3,而要修改默认版本为python2,只需要执行以下命令(进去/usr/bin目录执行):

sudo unlink /usr/bin/python # 解除python对python3的引用
sudo ln -s python2 python # 将python命令指向python2

(3) Maven

解压后配置环境变量,这里需要额外配置maven的JVM参数用于优化:

[hadoop@beh01 ~]$ vim ~/.bash_profile

export MAVEN_OPTS="-Xms512m -Xmx1024m"
export MAVEN_HOME=/opt/apps/maven-3.5.4
export PATH=$PATH:$MAVEN_HOME/bin

[hadoop@beh01 jdk-1.8.192]$ source ~/.bash_profile

修改$MAVEN_HOME/conf/settings.xml文件,以下是一份通用的配置(设置了阿里云的仓库,删除了注释,配置了编译Java代码的JDK版本),只需要修改仓库路径和JDK版本即可:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <localRepository>/path/to/local/repo</localRepository>
  <interactiveMode>true</interactiveMode>
  <offline>false</offline>

  <pluginGroups>
    <!--
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
  </pluginGroups>

  <proxies>
    <!--
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
  </proxies>

  <servers>
    <!--
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    -->
  </servers>

  <mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

  <profiles>
    <profile>
      <id>jdk-1.8</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile>
  </profiles>

  <!--
  <activeProfiles>
    <activeProfile>alwaysActiveProfile</activeProfile>
  </activeProfiles>
  -->
</settings>

(4) Mariadb 10

Mariadb 是 Mysql的一个分支,CentOS-7.6已经不再支持Mysql,这里说一下如果卸载旧版本的Mariadb,安装最新的Mariadb 10

  • 卸载原有的Mariadb
[hadoop@beh01 ~]$ rpm -qa | grep -i mysql
[hadoop@beh01 ~]$ rpm -qa | grep -i mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[hadoop@beh01 ~]$ sudo rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
[hadoop@beh01 ~]$ sudo rm -rf /usr/lib/mysql
[hadoop@beh01 ~]$ sudo rm -rf /usr/include/mysql
[hadoop@beh01 ~]$ sudo rm -rf /etc/my.cnf
[hadoop@beh01 ~]$ sudo rm -rf /var/lib/mysql
  • 添加 MariaDB yum 仓库 新建/etc/yum.repos.d/MariaDB.repo文件,内容如下:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
  • 安装 MariaDB
sudo yum install MariaDB-server MariaDB-client -y
  • 启动数据库服务,并设置为开机自启动
[hadoop@beh01 ~]$ sudo systemctl enable mariadb
[hadoop@beh01 ~]$ sudo systemctl start mariadb
[hadoop@beh01 ~]$ sudo systemctl status mariadb
● mariadb.service - MariaDB 10.3.14 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: active (running) since 日 2019-04-28 19:01:58 CST; 7s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  ......
[hadoop@beh01 ~]$ 
  • 修改root密码,配置远程登录权限
# 首次登录root没有密码
[hadoop@beh01 ~]$ mysql -uroot 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.14-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# 设置root用户的密码为root
MariaDB [(none)]> SET PASSWORD = PASSWORD('root');
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
Query OK, 0 rows affected (0.001 sec)

MariaDB [mysql]> delete from user where user = '';
Query OK, 2 rows affected (0.001 sec)

MariaDB [mysql]> delete from user where host != '%';
Query OK, 0 rows affected (0.000 sec)

MariaDB [mysql]> select user, host from user;
+------+------+
| user | host |
+------+------+
| root | %    |
+------+------+
1 row in set (0.000 sec)

MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
  • 使用远程连接工具连接,成功则Mariadb安装配置成功!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券