首先确定可以设置的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
在(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的配置。
编辑/etc/hostname
文件,设置主机名,例如我的主机名为beh01
[hadoop@beh01 ~]$ sudo cat /etc/hostname
beh01
假如你在安装虚拟机的时候,在UI界面配置了主机名,那么这里就不需要在额外配置了。
编辑/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
测试网络配置:
什么?你没有ifconfig
命令?yum install net-tools -y
,我也是使用yum安装的,毕竟系统是Minimal版的。
虚拟机ping外网:
windows ping 虚拟机:
systemctl stop firewalld
systemctl disable firewalld
编辑/etc/selinux/config
文件:
# 原来为 SELINUX=enforcing
SELINUX=disabled
禁用SELINUX后需要重启虚拟机生效。
yum install wget -y
cd /etc/yum.repos.d/
rename .repo .repo.bak *
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 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"
在网上找资料解决问题:
114.114.114.114
、8.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 来定义,我们就不定义了,删除两个没用的就可以了,毕竟还有一个能用不是?
创建一个新用户吧,别老用 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用户的。
让虚拟机的时间和国家授时中心的时间保持一致
[hadoop@beh01 ~]$ sudo yum install ntp -y
[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
美滋滋。
不多说了,下载.tar.gz包,上传到服务器,解压,配置环境变量,执行java -version
,不多提了,不管谁看不懂,这里都不多提了....
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
[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
解压后配置环境变量,这里需要额外配置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>
Mariadb 是 Mysql的一个分支,CentOS-7.6已经不再支持Mysql,这里说一下如果卸载旧版本的Mariadb,安装最新的Mariadb 10
[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]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
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没有密码
[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)
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有