下载镜像

CentOS 7镜像下载

官网下载链接:http://isoredirect.centos.org/centos/7/isos/x86_64/

step1: 进入下载页,选择阿里云站点进行下载

Actual Country 国内资源 Nearby Countries 周边国家资源

阿里云站点:http://mirrors.aliyun.com/centos/7/isos/x86_64/

每个链接都包括了镜像文件的地址、类型及版本号等信息

选择当前国家资源区站点下载,获取资源速度比较快

step1: 进入阿里云站点,选择 CentOS-7-x86_64-DVD-1804.iso下载

各个版本的ISO镜像文件说明:

CentOS-7-x86_64-DVD-1708.iso 标准安装版(推荐)

CentOS-7-x86_64-Everything-1708.iso 完整版,集成所有软件(以用来补充系统的软件或者填充本地镜像)

CentOS-7-x86_64-LiveGNOME-1708.iso GNOME桌面版

CentOS-7-x86_64-LiveKDE-1708.iso KDE桌面版

CentOS-7-x86_64-Minimal-1708.iso 精简版,自带的软件最少

CentOS-7-x86_64-NetInstall-1708.iso 网络安装版(从网络安装或者救援系统)

安装linux系统

使用vmware安装的centos,这一步就不说了,有时间在补充教程吧。

这里我使用的是DVD版的,所以需要安装各种软件

更新软件、基础设置

我们是新的系统,所以先更新yum源

1
yum -y update

安装lrzsz方便我们传文件,rz直接传文件就ok了

1
yum -y install lrzsz

这里我们要使用ifconfig来查看网络命令,但是DVD版本没有,我们先安装。是一个工具里面的

1
yum -y install net-tools.x86_64

这个时候大致配置完了,我们可以使用shell客户端来连接我们的linux了

配置java开发环境

身为一个java开发,肯定先配置java环境,我们配置8

下载链接:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

我们下载解压版的Linux x64 Compressed Archive

解压

1
tar -zxvf 名称

配置环境变量,打开配置

1
vi /etc/profile

在 【export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL】下面加一行

1
2
3
# JAVA_HOME
JAVA_HOME=/usr/local/jdk1.8.0_231
PATH=$PATH:$JAVA_HOME/bin

这里有一个坑,JAVA_HOME后面不要加空格,不然报【-bash: JAVA_HOME: 未找到命令】错误。

然后刷新权限

1
source /etc/profile

不报错就ok了,直接java就有信息了。

安装docker

我们需要安装redis、mysql、es等软件,直接docker安装方便点。

直接使用菜鸟教程,链接:https://www.runoob.com/docker/centos-docker-install.html

卸载旧版:

1
2
3
4
5
6
7
8
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

设置仓库:

1
2
3
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

设置稳定的仓库:

1
2
3
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

直接安装:

1
yum install docker-ce docker-ce-cli containerd.io

一路y下去就完事了,然后我们启动docker

1
systemctl start docker

docker切换国内下载源

1
vi /etc/docker/daemon.json

输入

1
2
3
{
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"]
}

重启docker就行

1)、Docker 官方中国区
https://registry.docker-cn.com

2)、网易
http://hub-mirror.c.163.com

3)、中国科技大学
https://docker.mirrors.ustc.edu.cn

4)、阿里云
https://pee6w651.mirror.aliyuncs.com

安装mysql

下载mysql5.6

1
docker pull mysql:5.6

查看镜像

1
docker images

删除镜像

1
docker rmi id或者名称

开启容器

1
docker run -d --name my_mysql -e MYSQL_ROOT_PASSWORD 123456 -p 3306:3306 mysql:5.6

进入容器

1
docker exec -it my_mysql /bin/bash

进入mysql

1
mysql -uroot -p 123456

docker安装网盘

拉镜像,最新版的

1
docker pull nextcloud

开启网盘,我们映射目录,先创建

1
mkdir -p /data/nextcloud
1
docker run --name my_nextcloud -v /data/nextcloud:/var/www/html/data -d -p 8080:80 nextcloud

网盘需要访问mysql,我们容器之间ip是不互通的,所以容器搭建的mysql不能直接连接。这个以后再看。

这里使用frp进行内网映射网盘,提供其他接口访问,但是报请求不安全,需要改设置,奇葩的是docker容器没有vim命令,我们于是

1
apt-get -y install vim

但是下载不了,网络有问题,于是有了【Docker 更改debian 源 并安装 vim 工具】操作

然后我们去config/config.php修改文件内容,找到’trusted_domains’,增加一条记录就好了

1
2
3
4
array (
0 => '192.168.188.4:8080',
1 => 'ip:端口',
)

Docker 更改debian 源 并安装 vim 工具

把容器里的文件cp到我们的物理机

1
docker cp 容器id或者名称:/etc/apt/sources.list /tmp

修改物理机/tmp下面的sources.list为:

1
2
deb http://mirrors.163.com/debian/ buster main
deb-src http://mirrors.163.com/debian/ buster main

物理机文件cp到容器

1
docker /tmp/sources.list 容器id或者名称:/etc/apt

容器在更新一下

1
apt-get -y update

下面就可以更新源了。

安装nginx

Nginx官网提供了三个类型的版本
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版

nginx下载地址:http://nginx.org/en/download.html

我们这里使用Stable version版本

下载完毕后解压压缩包

1
tar -zxvf 路径nginx

安装需要编译的依赖

1
2
3
4
5
6
7
yum -y install pcre
yum -y install pcre-devel
yum -y install zlib
yum -y install zlib-devel
yum -y install gcc
yum -y install openssl
yum -y install openssl-devel

我们是源文件,所以先安装,./configure配置命令,安装到/usr/local/nginx,–with-http_ssl_module是开启https支持

1
./configure --prefix=/usr/local/nginx --with-http_ssl_module

编译

1
make

安装

1
make install

增加环境变量省略。。。

开启nginx

1
nginx

关闭nginx

1
nginx -s stop

linux搭建集群分发文件脚本

核心功能就是scp、rsync等拷贝到其他服务器的命令。如

1
scp -r 本地路径 用户名@ip:拷贝路径

就能把本地路径的东西,拷贝到对应ip的路径。

rsync也是拷贝命令,但是他比scp快,并且只做差异化操作。命令和scp一样简单:

选项 功能
-r 递归
-v 显示复制过程
-l 拷贝符号连接
1
rsync -rvl 本地路径 用户名@ip:拷贝路径

安装rsync

1
yum install rsync

所以,我们用rsync来写操作批量分发脚本。

第一步,判断脚本后面是否有参数,$#是取后面参数个数的

1
2
3
4
5
6
7
#!/bin/bash
#获取输入参数的个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

第二步,获取文件名称,应为参数可能是/opt/xxx 或者xxx,等于说我们直接获取xxx

1
2
3
4
5
6
#2.获取文件名称
##获取第一个参数
p1=$1
## ``是执行命令的意思,basename 路径 获取的是文件名称
fname=`basename $p1`
echo 拷贝文件名称:$fname

第三步,获取文件上一级绝对路径

1
2
3
#3.获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo 拷贝文件上级绝对路径:$pdir

第四步,获取当前用户

1
2
3
#4.当前用户
user=`whoami`
echo 当前用户:$user

第五步,我们路径用户都有了,直接分发文件,注意直接在/etc/hosts加入我们想要分发文件的服务器,方便我们分发,入xxx01,xxx02这种格式

1
2
3
4
5
#5.循环
for((host=2;host<4;host++)); do
echo --------------------当前操作用户hadoop0$host---------------------
rsync -rvl $pdir/$fname $user@hadoop0$host:$pdir
done

脚本需要授权777,可以放在/usr/local/bin全局脚本路径里。

linux无密访问,配合分发脚本

免登陆原理图

image-20200820164919889

生成秘钥对,一路回车就行,最终秘钥文件地址在cd ~

1
ssh-keygen -t rsa

有两个文件,id_rsa私钥,id_rsa.pub是公钥。

然后将公钥拷贝到免密登录服务器,注意自己给自己也拷贝一份

1
ssh-copy-id 目标服务器ip

然后我们再把其他服务器,都弄一遍就ok了,这样做的目的是为了群发文件无密码。判断是否成功,直接

1
ssh ip

看链接是否需要密码即可

linux集群时间同步

我们linux集群执行定时任务的时候,如果时间不同步,肯定会出现问题,所以我们需要同步时间的应用【ntp】,和linux自带的定时任务【corntab】同步脚本。

查看是否安装ntp:

1
rpm -qa | grep ntp

如果没有任何输出,就是没有安装,我们安装下

1
yum -y install ntp

设置ntp开机启动

1
systemctl enable ntpd

需要修改ntp文件

1
vi /etc/ntp.conf
  1. 授权192.168.188.0-192.168.188.255网段上的所有机器可以从这台机器上查询和同步时间,这里注意需要看你自己服务器的网段

    1
    restrict 192.168.188.0 mask 255.255.255.0 nomodify notrap

  2. ntp可以联网更新,但是我们集群是局域网下,我们不用,所以注释掉联网更新

    1
    2
    3
    4
    #server 0.centos.pool.ntp.org iburst
    #server 1.centos.pool.ntp.org iburst
    #server 2.centos.pool.ntp.org iburst
    #server 3.centos.pool.ntp.org iburst

  3. 当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同,直接在文件最后添加即可。

    1
    2
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10

修改/etc/sysconfig/ntpd 文件

1
vim /etc/sysconfig/ntpd
  1. 增加下面内容即可

    1
    SYNC_HWCLOCK=yes

直接可以启动ntpd

1
systemctl start ntpd

编写corntab脚本:

corntab -e

1
*/10 * * * * /usr/sbin/ntpdate hadoop01

corn,和corn表达式就不多说了。

centos7修改Ip

进入目录,找到ifcfg-ens33

1
cd /etc/sysconfig/network-scripts/

这里为什么找ifcfg-ens33呢?因为你ip对应的就是这个配置,我们ifconfig看下

image-20210311161419138

然后编辑ifcfg-ens33

1
vi ifcfg-ens33

找到IPADDR

image-20210311161535240

修改你想要的ip。然后重启即可

1
reboot

修改linux主机名称

1
hostnamectl set-hostname 名称

Centos7直接安装Mysql(转载)

https://dev.mysql.com/downloads/repo/yum/ 找到 yum 源 rpm 安装包

安装 mysql 源

1
2
3
4
# 下载
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# 安装 mysql 源
yum localinstall mysql57-community-release-el7-11.noarch.rpm

用下面的命令检查 mysql 源是否安装成功

1
yum repolist enabled | grep "mysql.*-community.*"

image-20210311163149859

使用 yum install 命令安装

1
yum install -y mysql-community-server

开启,其他命令就不说了简单

1
systemctl start mysqld

设置开机启动

1
2
3
systemctl enable mysqld
# 重载所有修改过的配置文件
systemctl daemon-reload

mysql 安装完成之后,生成的默认密码在 /var/log/mysqld.log 文件中。使用 grep 命令找到日志中的密码。

1
grep 'temporary password' /var/log/mysqld.log

image-20210311163401892

登录上,直接修改。注意:mysql 5.7 默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误

1
2
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

添加远程登录用户

普通

1
GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%' IDENTIFIED BY 'Zhangsan2018!' WITH GRANT OPTION;

root

1
2
3
use mysql;
UPDATE user SET Host='%' WHERE User='root';
flush privileges;

设置默认编码为 utf8

mysql 安装后默认不支持中文,需要修改编码。
修改 /etc/my.cnf 配置文件,在相关节点(没有则自行添加)下添加编码配置,如下:

1
2
3
4
5
6
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

重启mysql服务,查询编码。可以看到已经改过来了

1
2
3
systemctl restart mysqld
mysql -uroot -p
show variables like 'character%';

image-20210311163739465

搭建nacas

nacos很出名,配置中心,这边我们搭建,然后去应用我们的项目,具体的说明看官网nacos.io,这边只讲安装。

需要环境

java、maven安装很简单,就不说明了,nacos安装包官网下载就行,这里就不详细说明了。

安装配置

解压

1
tar -zxvf nacos-server-2.0.3.tar.gz -C ../module/

配置

进入conf目录,找到配置文件application.properties

修改端口为我们想要的端口,这里不建议默认

1
server.port=端口

然后看到nacos好像有支持mysql,于是我们需要配置下,看装mysql,看上面

image-20211024210920447

给注释删掉配置好mysql,设置好数据库配置,但是这个时候不是设置好了,你看配置文件有一个nacos-mysql.sql

image-20211024212452432

我们到新建的nacos数据库执行下。然后把以下配置取消掉注释

1
2
spring.datasource.platform=mysq
db.num=1

这样就ok了,可以启动

启动

启动命令(standalone代表着单机模式运行,非集群模式):

1
sh startup.sh -m standalone

提示我们启动成功,然后可以去logs目录下看日志

image-20211024212846680

看日志,都是没有问题的

image-20211024212949054

访问配置web

都启动好了,我们可以访问ip:端口/nacos,进入配置中心web。安装到此结束,开始尽情的玩耍吧。