Winter乡里别
Live2D

Linux分布式环境安装(待补充)

OnoLemon·2022-12-11 01:25·68 次阅读

Linux分布式环境安装(待补充)

Linux环境安装😋#

Zero、环境说明🎉#

0.1 基础环境说明#

Copy
yum -y install vim #文本编辑器
yum -y install net-tools #网络工具
yum -y install wget #下载工具
yum -y install gcc gcc-c++ #C语言编译器
yum -y install perl #增强版本的shell,是一种脚本语言
yum -y install pcre-devel #解析正则表达式(nginx 的 http 模块使用)
yum -y install zlib-devel #对应软件包的开发包

0.2 版本说明#

序号 程序(包)名称 版本
1 CentOS 7
2 JDK 1.8.0_192
3 Tomcat 8.5.35
4 MySQL 5.7.33
5 Zookeeper 3.4.13
6 libfastcommon 1.0.39
7 FastDFS 5.11
8 nginx 1.15.6
9 fastdfs-nginx-module 1.20

安装文件链接在文章末尾

0.3 安装前准备工作#

  • Linux CentOS 7操作系统(虚拟机 or 云服务器)☁
  • Xshell(连接客户端)、Xftp(文件上传)⬆
  • 一双勤快的手手👐 + 一个转动的大脑💦

by 小野🥇


先开启防火墙‼

Copy
#开启防火墙
systemctl start firewalld

一、Java☕#

1. 安装JDK#

使用 Xftp 上传 jdk-8u192-linux-x64.tar.gz 到 ~目录(/root目录)

解压到 指定目录

Copy
cd ~
tar -zxvf jdk-8u192-linux-x64.tar.gz -C /usr/local/

2. 配置环境变量#

Copy
#编辑profile文件
vim /etc/profile
#在 profile 文件末尾添加
export JAVA_HOME=/usr/local/jdk1.8.0_192/
export PATH=$PATH:$JAVA_HOME/bin

3. 文件生效#

Copy
source /etc/profile

4. 测试#

Copy
java
javac

二、Tomcat😸#

1. 安装#

使用 Xftp 上传 apache-tomcat-8.5.35.tar.gz 到 ~目录(/root目录)

解压到 指定目录

Copy
cd ~
tar -zxvf apache-tomcat-8.5.35.tar.gz -C /usr/local/

2. 启动#

Copy
cd /usr/local/apache-tomcat-8.5.35/bin
./startup.sh

3. 防火墙端口放行#

查看监听端口,检查 8080 有没有开放

Copy
netstat -nltp

开启防火墙 8080 端口( --permanent 永久生效,没有此参数 重启 后失效)

Copy
#必须也确保 腾讯云服务器控制台 有添加8080端口入站规则
firewall-cmd --zone=public --add-port=8080/tcp --permanent

更新防火墙规则(注意修改后一定要做此操作生效)

Copy
firewall-cmd --reload

查看是否开放8080端口

Copy
firewall-cmd --zone=public --list-ports

三、MySQL🐬#

在CentOS中默认安装有MariaDB,这个是MySQL的分支。

但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

1. 安装#

下载官方 mysql 包

Copy
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

安装 mysql 包

Copy
yum -y install mysql57-community-release-el7-10.noarch.rpm

安装 mysql 服务器

Copy
yum -y install mysql-community-server

这里可能提示一个问题

Failing package is: mysql-community-client-5.7.40-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

这里需要禁掉GPG验证检查。

Copy
#禁掉GPG验证检查,重新安装
yum -y install mysql-community-server --nogpgcheck

如果执行命令过程中还提示:Unable to find a match: mysql-community-server

则可以通过命令解决

Copy
yum module disable mysql

2. 启动#

Copy
#启动
systemctl start mysqld
#查看状态
systemctl status mysqld
#重启mysql
systemctl restart mysqld

3. 配置#

获取安装时的临时密码

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

登录数据库

Copy
mysql -u root -p #然后输入密码(刚刚获取的临时密码)
临时密码不能登录的解决方案(如果没有此问题,可以跳过)
Copy
1.修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2.重启 mysqld 服务:systemctl restart mysqld 3.使用 root 用户登录到 mysql:mysql -u root 4.切换到mysql数据库 show databases; use mysql; 更新 user 表:update user set authentication_string = password('Abcd1234$'),password_expired = 'N', password_last_changed = now() where user = 'root'; 这样密码就改成了 'Abcd1234$' 在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string 5.退出 mysql,编辑 /etc/my.cnf 文件,删除 skip-grant-tables=1 的内容 6.重启 mysqld 服务,再用新密码登录即可

修改初始密码

此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库

Copy
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Abcd1234$';
#注意:这里会进行密码强度校验(密码设置时必须包含大小写字母.特殊符号.数字,并且长度大于8位),如不满足会报错!

查看 mysql版本 以及 数据库编码格式

Copy
#查看版本
select version();
#查看数据库编码格式
show variables like "%char%";

image-20221205231420721

开启 mysql 远程访问

Copy
#下面命令开启的所有的,如要开启单个的,用IP代替% 这里的 password 是你设置你的mysql远程登录密码。
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "Abcd1234$";
#注意:远程链接密码要写对要不然连不上
Copy
#刷新MySQL的系统权限相关表
flush privileges;

具体参考:

image-20221205231115446

退出mysql

Copy
exit

4. 防火墙端口放行#

开放 mysql 3306 端口

Copy
#必须也确保 腾讯云服务器控制台 有添加3306端口入站规则
firewall-cmd --zone=public --add-port=3306/tcp --permanent

更新防火墙规则(注意修改后一定要做此操作生效)

Copy
firewall-cmd --reload

查看是否开放3306端口

Copy
firewall-cmd --zone=public --list-ports

四、Zookeeper👨‍🌾#

1. 安装#

使用 Xftp 上传 zookeeper-3.4.13.tar.gz 到 ~目录(/root目录)

解压到指定目录

Copy
cd ~
tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local/

2. 配置#

在解压好的zookeeper文件夹下创建data目录用于存放运行时产生的数据:

Copy
cd /usr/local/zookeeper-3.4.13
mkdir data

复制zookeeper/conf目录下的zoo_sample.cfgzoo.cfg

Copy
cd conf
cp zoo_sample.cfg zoo.cfg

进入zoo.cfg

Copy
vim zoo.cfg

添加如下内容:

Copy
dataDir=/usr/local/zookeeper-3.4.13/data #修改项

配置全局 在任何地方都可以启动 进入profile

Copy
vim /etc/profile
#添加如下代码:
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.13/
export PATH=$PATH:$ZOOKEEPER_HOME/bin

修改完后确保文件生效

Copy
#文件生效
source /etc/profile

开启防火墙 2181 端口( --permanent 永久生效,没有此参数 重启 后失效)

Copy
#必须也确保 腾讯云服务器控制台 有添加2181端口入站规则
firewall-cmd --zone=public --add-port=2181/tcp --permanent

更新防火墙规则(注意修改后一定要做此操作生效)

Copy
firewall-cmd --reload
#查看是否开放2181端口
firewall-cmd --zone=public --list-ports

3. 启动与关闭#

Copy
zkServer.sh start #启动
zkServer.sh stop #关闭
zkServer.sh status #查看状态

注意:Zookeeper需要依赖JDK环境,如果启动失败,检查JDK环境是否配置好!

五、FastDFS📁#

1. 安装libfastcommon#

Copy
cd ~
tar -zxvf libfastcommon-1.0.39.tar.gz -C /usr/local/
cd /usr/local/libfastcommon-1.0.39
./make.sh
./make.sh install

2. 安装FastDFS#

使用 Xftp 上传 fastdfs-5.11.tar.gz 到 ~目录(/root目录)

解压到指定目录

Copy
cd ~
tar -zxvf fastdfs-5.11.tar.gz -C /usr/local/
cd /usr/local/fastdfs-5.11
./make.sh
./make.sh install

在配置tracker和storage之前先将/usr/local/fastdfs-5.11/conf下的文件全都复制到/etc/fdfs下(因为fastDFS启动的时候默认使用这个位置的配置文件):

Copy
cp /usr/local/fastdfs-5.11/conf/* /etc/fdfs/
#进到fsfs文件夹里删除冗余文件
cd /etc/fdfs/
rm -rf ./*.sample

为了更清晰的管理tracker和storage,我们可以设计如下的文件目录来记录运行时产生的数据和日志:

Copy
/root/fdfs #(需手工创建,base_path)
|_data #运行期间产生的数据,包括用户上传的文件(自动产生,无需我们创建)
|_logs #运行期间产生的日志(自动产生,无需我们创建)

输入如下指令准备好相应文件夹:

Copy
mkdir /root/fdfs

3. 单机部署#

3.1 配置tracker

打开/etc/fdfs/tracker.conf进行编辑:

Copy
vim /etc/fdfs/tracker.conf

编辑如下内容:

Copy
base_path=/root/fdfs
http.server_port=80
3.2 配置storage

打开/ect/fdfs/storage.conf进行编辑:

Copy
vim /etc/fdfs/storage.conf

编辑如下内容:

Copy
base_path=/root/fdfs
store_path0=/root/fdfs #storage实际存放上传文件的目录在/root/fdfs/data下
tracker_server=192.168.149.88:22122 #tracker服务器所在的ip地址(服务器ip)
http.server_port=80 #http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

开启防火墙 22122 和 23000 端口( --permanent 永久生效,没有此参数 重启 后失效)

Copy
#必须也确保 腾讯云服务器控制台 有添加22122和23000端口入站规则
#tracker服务器端口
firewall-cmd --zone=public --add-port=22122/tcp --permanent
#storage服务端口
firewall-cmd --zone=public --add-port=23000/tcp --permanent

更新防火墙规则(注意修改后一定要做此操作生效)

Copy
firewall-cmd --reload
#查看是否开放22122和23000端口
firewall-cmd --zone=public --list-ports
3.3 启动、关闭与测试
Copy
service fdfs_trackerd start #stop/restart(修改配置一定要restart)
service fdfs_storaged start #stop/restart(修改配置一定要restart)

查看是否成功启动tracker和storage:

Copy
netstat -unltp|grep fdfs

成功状态下应显示如下信息:

测试tracker和storage是否在通讯:

Copy
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

成功状态下应显示如下信息:

4. 分布式部署#

六、Nginx🐱‍👤#

1. 安装#

使用 Xftp 上传 nginx-1.15.6.tar.gz 到 ~目录(/root目录)

解压到指定目录

Copy
cd ~
tar -zxvf nginx-1.15.6.tar.gz -C /usr/local/
cd /usr/local/nginx-1.15.6
./configure
make
make install

2. 配置#

配置全局 在任何地方都可以启动 进入profile

Copy
vim /etc/profile
#添加如下代码:
export NGINX_HOME=/usr/local/nginx/
export PATH=$PATH:$NGINX_HOME/sbin

修改完后确保文件生效

Copy
#文件生效
source /etc/profile

开启防火墙 80 端口( --permanent 永久生效,没有此参数 重启 后失效)

Copy
#必须也确保 腾讯云服务器控制台 有添加80端口入站规则
firewall-cmd --zone=public --add-port=80/tcp --permanent

更新防火墙规则(注意修改后一定要做此操作生效)

Copy
firewall-cmd --reload
#查看是否开放80端口
firewall-cmd --zone=public --list-ports

3. 启动与关闭#

Copy
#nginx启动是没有提示的
nginx #启动
nginx -s reload #重启
nginx -s stop #快速关闭
nginx -s quit #优雅关闭
nginx -v #查看nginx版本

在浏览器地址栏输入nginx服务器地址即可看到nginx首页:

Copy
http://192.168.149.88

七、整合FastDFS与Nginx🧲#

1. 安装 fastdfs-nginx-module-1.20#

使用 Xftp 上传 fastdfs-nginx-module-1.20.tar.gz 到 ~目录(/root目录)

解压到指定目录

Copy
cd ~
tar -zxvf fastdfs-nginx-module-1.20.tar.gz -C /usr/local/

修改 fastdfs-nginx-module-1.20/src/config

Copy
vim /usr/local/fastdfs-nginx-module-1.20/src/config
#vim编辑如下内容
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon"

先停掉nginx

Copy
nginx -s quit #优雅关闭 或 nginx -s stop快速关闭

进入nginx根目录,使用configure添加fastdfs-nginx-module-1.20,然后重新编译和安装nginx

Copy
cd /usr/local/nginx-1.15.6
./configure --add-module=/usr/local/fastdfs-nginx-module-1.20/src
make
make install

查看fastdfs-nginx-module是否安装成功:

Copy
#注意是大写“V”,查看ngix版本、编译器版本和configure参数(添加的模块信息在这里可以看到)
nginx -V

2. 在fastDFS中启用fastdfs-nginx-module#

将fastdfs-nginx-module配置文件拷贝至/etc/fdfs:

Copy
cp /usr/local/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs

修改文件内容:

Copy
vim /etc/fdfs/mod_fastdfs.conf

编辑如下内容:

Copy
base_path=/root/fdfs #存放log文件信息
store_path0=/root/fdfs #storage实际存放上传文件的目录在/root/fdfs/data下
tracker_server=192.168.149.88:22122 #tracker服务器ip和端口(服务器ip)
url_have_group_name = true #url中是否包含组名

3. 在nginx中启用fastdfs-nginx-module#

打开/usr/local/nginx/conf/nginx.conf

Copy
cd /usr/local/nginx/conf/
vim nginx.conf

编辑如下:

Copy
user root; #最好加上,尤其是base_path设置在/root/fdfs这样的位置
server {
listen 80;#该端口与storage.conf中的http.server_port相同
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location ~/group([0-9])/ {
ngx_fastdfs_module;
}
}

4. 测试#

开启所有服务:

Copy
service fdfs_trackerd start
service fdfs_storaged start
nginx

编辑上传测试所用的client.conf文件:

Copy
vim /etc/fdfs/client.conf

修改为:

Copy
base_path=/root/fdfs
tracker_server=192.168.149.88:22122

上传文件

Copy
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf ~/nginx-1.15.6.tar.gz

上传成功的话,控制台会输出上传文件的fileId,类似于

Copy
group1/M00/00/00/CgAECGOVu6SAQg26AA-m4XS01fA.tar.gz

得到fileId以后,在主机浏览器地址栏输入以下完整URL即可进行文件下载:

Copy
http://192.168.149.88/group1/M00/00/00/CgAECGOVu6SAQg26AA-m4XS01fA.tar.gz

八、Redis🧰#

1. 安装#

使用 Xftp 上传 redis-5.0.2.tar.gz 到 ~目录(/root目录)

解压到指定目录

Copy
cd ~
tar -zxvf redis-5.0.2.tar.gz -C /usr/local/
cd /usr/local/redis-5.0.2
make
make install

2. 配置#

/usr/local/redis-5.0.2/redis.conf进行修改:

Copy
vim /usr/local/redis-5.0.2/redis.conf

编辑如下

Copy
daemonize yes #后台方式启动
# 默认只能本地连接redis服务,如果需要允许远程连接的话,需要配置下面两项
# 1.注释掉bind选项,或者直接指定bind的ip,表示只允许bind指定的ip访问
# bind 127.0.0.1
# 2.关闭保护模式
protected-mode no

3. 启动与关闭#

Copy
redis-server /usr/local/redis-5.0.2/redis.conf #通过指定配置文件的方式启动
redis-cli #操作redis 如果想存取中文可以在后面加上--raw参数
set xxx #设置值 key:value
get xxx #获取值 key
exit #退出
redis-cli shutdown #关闭redis服务

开启防火墙 6379 端口( --permanent 永久生效,没有此参数 重启 后失效)

Copy
#必须也确保 腾讯云服务器控制台 有添加6379端口入站规则
firewall-cmd --zone=public --add-port=6379/tcp --permanent

更新防火墙规则(注意修改后一定要做此操作生效)

Copy
firewall-cmd --reload
#查看是否开放6379端口
firewall-cmd --zone=public --list-ports

九、Elasticsearch🌈#

1. 安装#

使用 Xftp 上传 elasticsearch-6.8.23.tar.gz 到 ~目录(/root目录)

解压到指定目录

Copy
cd ~
tar -zxvf elasticsearch-6.8.23.tar.gz -C /usr/local/

2. 配置#

ES不能以root用户启动,所以需要创建一个新用户:

Copy
#创建elasticsearch用户组
groupadd elasticsearch
#创建es用户,添加至elasticsearch用户组,密码为admin
useradd es -g elasticsearch -p admin

由于ES对于系统最大打开文件数、进程中内存映射区域的最大数量有最低限制要求,所以需要对以下两份系统文件进行修改:

修改系统最大打开文件数:

Copy
#服务器如果有默认的
* soft nofile 100001
* hard nofile 100002
#则可以不用添加以下配置
vim /etc/security/limits.conf
#在文件最后,增加如下配置
* soft nofile 65536
* hard nofile 65536
#其中*表示所有用户,也可以使用es来指定用户名

修改进程中内存映射区域的最大数量:

Copy
vim /etc/sysctl.conf
#将这行配置添加至文件末尾
vm.max_map_count=655360
#添加完后执行命令查看
sysctl -p

修改jvm内存占用

Copy
vim /usr/local/elasticsearch-6.8.23/config/jvm.options
#Xms、Xmx分别为ES初始化和最大使用内存(如不设置,默认为1G,硬件受不了)
-Xms256m
-Xmx256m

开启远程访问

Copy
#ES默认不允许远程访问,需要修改
vim /usr/local/elasticsearch-6.8.23/config/elasticsearch.yml
#编辑如下
network.host: 0.0.0.0

进入ES的根目录,然后创建data logs文件夹

Copy
cd /usr/local/elasticsearch-6.8.23/
mkdir data
#mkdir logs
#由于logs已存在,我们不再创建

给es用户授权

Copy
#"/root"文件夹以递归的方式授予es用户访问权
chown -R es:elasticsearch /usr/local/elasticsearch-6.8.23

开启防火墙 6379 端口( --permanent 永久生效,没有此参数 重启 后失效)

Copy
#必须也确保 腾讯云服务器控制台 有添加9200和9300端口入站规则
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent

更新防火墙规则(注意修改后一定要做此操作生效)

Copy
firewall-cmd --reload
#查看是否开放9200和9300端口
firewall-cmd --zone=public --list-ports

3. 启动与关闭#

Copy
#切换到es用户
su es
#启动
/usr/local/elasticsearch-6.8.23/bin/elasticsearch #ctrl+c停止服务
#以后台方式启动服务
#/usr/local/elasticsearch-6.8.23/bin/elasticsearch -d
#后台方式运行,停止服务的方式为:首先查询ES的进程编号(一般为4位数),然后通过kill终止
#netstat -unltp|grep java #查看java进程,留意9200和9300端口的进程编号(进程编号是一样的)
#kill 进程编号

启动后,在浏览器地址栏输入:

Copy
http://192.168.149.88:9200

即可看到elasticsearch输出的版本信息等。

4. IK中文分词器#

  1. 在 elasticsearch-6.8.23/plugins 目录下新建文件夹 ik

    Copy
    cd /usr/local/elasticsearch-6.8.23/plugins
    mkdir ik
  2. 使用 Xftp 上传 elasticsearch-analysis-ik-6.8.23.zip 到 ik目录中

    Copy
    #记得传到这个目录下
    /usr/local/elasticsearch-6.8.23/plugins/ik
  3. 解压

    Copy
    #进入文件夹解压
    cd /usr/local/elasticsearch-6.8.23/plugins/ik
    #unzip命令未找到,可以使用yum -y install unzip在线安装
    #yum -y install unzip
    unzip elasticsearch-analysis-ik-6.8.23.zip
  4. 重启ES

    1. 先关闭ES

      Copy
      netstat -unltp #查看进程
      kill 2136#强行结束进程

      image-20221210234506538

    2. 启动ES

      Copy
      su es #先切换用户
      /usr/local/elasticsearch-6.8.23/bin/elasticsearch -d #后台启动ES

5. Kibana(可选,ES可视化平台)#

Kibana介绍

Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。

你可以用kibana搜索、查看存放在Elasticsearch中的数据。

Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。

Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。

一种很典型的MVC思想,模型持久层,视图层和控制层。

Logstash担任控制层的角色,负责搜集和过滤数据。

Elasticsearch担任数据持久层的角色,负责储存数据。

Kibana担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在Elasticsearch中的数据。

Kibana安装
1. 安装

使用 Xftp 上传 kibana-6.8.23-linux-x86_64.tar.gz 到 ~目录(/root目录)

解压到指定目录

Copy
cd ~
tar -zxvf kibana-6.8.23-linux-x86_64.tar.gz -C /usr/local/
2. 配置

/usr/local/kibana-6.8.23-linux-x86_64/config/kibana.yml进行修改:

Copy
vim /usr/local/kibana-6.8.23-linux-x86_64/config/kibana.yml

编辑如下内容:

Copy
#开启远程访问
server.host=0.0.0.0
#切换中文
i18n.locale: "zh-CN"

开启防火墙 5601 端口( --permanent 永久生效,没有此参数 重启 后失效)

Copy
#必须也确保 腾讯云服务器控制台 有添加80端口入站规则
firewall-cmd --zone=public --add-port=5601/tcp --permanent

更新防火墙规则(注意修改后一定要做此操作生效)

Copy
firewall-cmd --reload
#查看是否开放5601端口
firewall-cmd --zone=public --list-ports
3. 启动
Copy
/usr/local/kibana-6.8.23-linux-x86_64/bin/kibana #启动 ctrl+c停止服务
nohup /usr/local/kibana-6.8.23-linux-x86_64/bin/kibana & #后台启动

在浏览器地址栏输入Kibana服务器地址即可看到Kibana首页:

Copy
http://192.168.149.88:5601

十、RabbitMQ🐰#

待补充#

文件链接:

https://www.123pan.com/s/5ub8Vv-Yt44 提取码:1211

posted @   OnoLemon  阅读(68)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示
目录