首先确定可以设置的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)
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句