Linux分布式环境安装(待补充)
Linux环境安装😋#
Zero、环境说明🎉#
0.1 基础环境说明#
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 小野🥇
先开启防火墙‼
#开启防火墙 systemctl start firewalld
一、Java☕#
1. 安装JDK#
使用 Xftp 上传 jdk-8u192-linux-x64.tar.gz 到 ~目录(/root目录)
解压到 指定目录
cd ~ tar -zxvf jdk-8u192-linux-x64.tar.gz -C /usr/local/
2. 配置环境变量#
#编辑profile文件 vim /etc/profile #在 profile 文件末尾添加 export JAVA_HOME=/usr/local/jdk1.8.0_192/ export PATH=$PATH:$JAVA_HOME/bin
3. 文件生效#
source /etc/profile
4. 测试#
java javac
二、Tomcat😸#
1. 安装#
使用 Xftp 上传 apache-tomcat-8.5.35.tar.gz 到 ~目录(/root目录)
解压到 指定目录
cd ~ tar -zxvf apache-tomcat-8.5.35.tar.gz -C /usr/local/
2. 启动#
cd /usr/local/apache-tomcat-8.5.35/bin ./startup.sh
3. 防火墙端口放行#
查看监听端口,检查 8080 有没有开放
netstat -nltp
开启防火墙 8080 端口( --permanent 永久生效,没有此参数 重启 后失效)
#必须也确保 腾讯云服务器控制台 有添加8080端口入站规则 firewall-cmd --zone=public --add-port=8080/tcp --permanent
更新防火墙规则(注意修改后一定要做此操作生效)
firewall-cmd --reload
查看是否开放8080端口
firewall-cmd --zone=public --list-ports
三、MySQL🐬#
在CentOS中默认安装有MariaDB,这个是MySQL的分支。
但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。
1. 安装#
下载官方 mysql 包
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
安装 mysql 包
yum -y install mysql57-community-release-el7-10.noarch.rpm
安装 mysql 服务器
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验证检查。
#禁掉GPG验证检查,重新安装 yum -y install mysql-community-server --nogpgcheck
如果执行命令过程中还提示:Unable to find a match: mysql-community-server
则可以通过命令解决
yum module disable mysql
2. 启动#
#启动 systemctl start mysqld #查看状态 systemctl status mysqld #重启mysql systemctl restart mysqld
3. 配置#
获取安装时的临时密码
grep 'temporary password' /var/log/mysqld.log
登录数据库
mysql -u root -p #然后输入密码(刚刚获取的临时密码)
临时密码不能登录的解决方案(如果没有此问题,可以跳过)
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默认必须修改密码之后才能操作数据库
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Abcd1234$'; #注意:这里会进行密码强度校验(密码设置时必须包含大小写字母.特殊符号.数字,并且长度大于8位),如不满足会报错!
查看 mysql版本 以及 数据库编码格式
#查看版本 select version(); #查看数据库编码格式 show variables like "%char%";
开启 mysql 远程访问
#下面命令开启的所有的,如要开启单个的,用IP代替% 这里的 password 是你设置你的mysql远程登录密码。 GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "Abcd1234$"; #注意:远程链接密码要写对要不然连不上
#刷新MySQL的系统权限相关表 flush privileges;
具体参考:
退出mysql
exit
4. 防火墙端口放行#
开放 mysql 3306 端口
#必须也确保 腾讯云服务器控制台 有添加3306端口入站规则 firewall-cmd --zone=public --add-port=3306/tcp --permanent
更新防火墙规则(注意修改后一定要做此操作生效)
firewall-cmd --reload
查看是否开放3306端口
firewall-cmd --zone=public --list-ports
四、Zookeeper👨🌾#
1. 安装#
使用 Xftp 上传 zookeeper-3.4.13.tar.gz 到 ~目录(/root目录)
解压到指定目录
cd ~ tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local/
2. 配置#
在解压好的zookeeper文件夹下创建data目录用于存放运行时产生的数据:
cd /usr/local/zookeeper-3.4.13 mkdir data
复制zookeeper/conf目录下的zoo_sample.cfg
为zoo.cfg
:
cd conf cp zoo_sample.cfg zoo.cfg
进入zoo.cfg
vim zoo.cfg
添加如下内容:
dataDir=/usr/local/zookeeper-3.4.13/data #修改项
配置全局 在任何地方都可以启动 进入profile
vim /etc/profile #添加如下代码: export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.13/ export PATH=$PATH:$ZOOKEEPER_HOME/bin
修改完后确保文件生效
#文件生效 source /etc/profile
开启防火墙 2181 端口( --permanent 永久生效,没有此参数 重启 后失效)
#必须也确保 腾讯云服务器控制台 有添加2181端口入站规则 firewall-cmd --zone=public --add-port=2181/tcp --permanent
更新防火墙规则(注意修改后一定要做此操作生效)
firewall-cmd --reload #查看是否开放2181端口 firewall-cmd --zone=public --list-ports
3. 启动与关闭#
zkServer.sh start #启动 zkServer.sh stop #关闭 zkServer.sh status #查看状态
注意:Zookeeper需要依赖JDK环境,如果启动失败,检查JDK环境是否配置好!
五、FastDFS📁#
1. 安装libfastcommon#
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目录)
解压到指定目录
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启动的时候默认使用这个位置的配置文件):
cp /usr/local/fastdfs-5.11/conf/* /etc/fdfs/ #进到fsfs文件夹里删除冗余文件 cd /etc/fdfs/ rm -rf ./*.sample
为了更清晰的管理tracker和storage,我们可以设计如下的文件目录来记录运行时产生的数据和日志:
/root/fdfs #(需手工创建,base_path) |_data #运行期间产生的数据,包括用户上传的文件(自动产生,无需我们创建) |_logs #运行期间产生的日志(自动产生,无需我们创建)
输入如下指令准备好相应文件夹:
mkdir /root/fdfs
3. 单机部署#
3.1 配置tracker
打开/etc/fdfs/tracker.conf
进行编辑:
vim /etc/fdfs/tracker.conf
编辑如下内容:
base_path=/root/fdfs http.server_port=80
3.2 配置storage
打开/ect/fdfs/storage.conf进行编辑:
vim /etc/fdfs/storage.conf
编辑如下内容:
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 永久生效,没有此参数 重启 后失效)
#必须也确保 腾讯云服务器控制台 有添加22122和23000端口入站规则 #tracker服务器端口 firewall-cmd --zone=public --add-port=22122/tcp --permanent #storage服务端口 firewall-cmd --zone=public --add-port=23000/tcp --permanent
更新防火墙规则(注意修改后一定要做此操作生效)
firewall-cmd --reload #查看是否开放22122和23000端口 firewall-cmd --zone=public --list-ports
3.3 启动、关闭与测试
service fdfs_trackerd start #stop/restart(修改配置一定要restart) service fdfs_storaged start #stop/restart(修改配置一定要restart)
查看是否成功启动tracker和storage:
netstat -unltp|grep fdfs
成功状态下应显示如下信息:
测试tracker和storage是否在通讯:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
成功状态下应显示如下信息:
4. 分布式部署#
六、Nginx🐱👤#
1. 安装#
使用 Xftp 上传 nginx-1.15.6.tar.gz 到 ~目录(/root目录)
解压到指定目录
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
vim /etc/profile #添加如下代码: export NGINX_HOME=/usr/local/nginx/ export PATH=$PATH:$NGINX_HOME/sbin
修改完后确保文件生效
#文件生效 source /etc/profile
开启防火墙 80 端口( --permanent 永久生效,没有此参数 重启 后失效)
#必须也确保 腾讯云服务器控制台 有添加80端口入站规则 firewall-cmd --zone=public --add-port=80/tcp --permanent
更新防火墙规则(注意修改后一定要做此操作生效)
firewall-cmd --reload #查看是否开放80端口 firewall-cmd --zone=public --list-ports
3. 启动与关闭#
#nginx启动是没有提示的 nginx #启动 nginx -s reload #重启 nginx -s stop #快速关闭 nginx -s quit #优雅关闭 nginx -v #查看nginx版本
在浏览器地址栏输入nginx服务器地址即可看到nginx首页:
http://192.168.149.88
七、整合FastDFS与Nginx🧲#
1. 安装 fastdfs-nginx-module-1.20#
使用 Xftp 上传 fastdfs-nginx-module-1.20.tar.gz 到 ~目录(/root目录)
解压到指定目录
cd ~ tar -zxvf fastdfs-nginx-module-1.20.tar.gz -C /usr/local/
修改 fastdfs-nginx-module-1.20/src/config
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
nginx -s quit #优雅关闭 或 nginx -s stop快速关闭
进入nginx根目录,使用configure添加fastdfs-nginx-module-1.20,然后重新编译和安装nginx
cd /usr/local/nginx-1.15.6 ./configure --add-module=/usr/local/fastdfs-nginx-module-1.20/src make make install
查看fastdfs-nginx-module是否安装成功:
#注意是大写“V”,查看ngix版本、编译器版本和configure参数(添加的模块信息在这里可以看到) nginx -V
2. 在fastDFS中启用fastdfs-nginx-module#
将fastdfs-nginx-module配置文件拷贝至/etc/fdfs:
cp /usr/local/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs
修改文件内容:
vim /etc/fdfs/mod_fastdfs.conf
编辑如下内容:
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
:
cd /usr/local/nginx/conf/ vim nginx.conf
编辑如下:
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. 测试#
开启所有服务:
service fdfs_trackerd start service fdfs_storaged start nginx
编辑上传测试所用的client.conf文件:
vim /etc/fdfs/client.conf
修改为:
base_path=/root/fdfs tracker_server=192.168.149.88:22122
上传文件
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf ~/nginx-1.15.6.tar.gz
上传成功的话,控制台会输出上传文件的fileId,类似于
group1/M00/00/00/CgAECGOVu6SAQg26AA-m4XS01fA.tar.gz
得到fileId以后,在主机浏览器地址栏输入以下完整URL即可进行文件下载:
http://192.168.149.88/group1/M00/00/00/CgAECGOVu6SAQg26AA-m4XS01fA.tar.gz
八、Redis🧰#
1. 安装#
使用 Xftp 上传 redis-5.0.2.tar.gz 到 ~目录(/root目录)
解压到指定目录
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
进行修改:
vim /usr/local/redis-5.0.2/redis.conf
编辑如下
daemonize yes #后台方式启动 # 默认只能本地连接redis服务,如果需要允许远程连接的话,需要配置下面两项 # 1.注释掉bind选项,或者直接指定bind的ip,表示只允许bind指定的ip访问 # bind 127.0.0.1 # 2.关闭保护模式 protected-mode no
3. 启动与关闭#
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 永久生效,没有此参数 重启 后失效)
#必须也确保 腾讯云服务器控制台 有添加6379端口入站规则 firewall-cmd --zone=public --add-port=6379/tcp --permanent
更新防火墙规则(注意修改后一定要做此操作生效)
firewall-cmd --reload #查看是否开放6379端口 firewall-cmd --zone=public --list-ports
九、Elasticsearch🌈#
1. 安装#
使用 Xftp 上传 elasticsearch-6.8.23.tar.gz 到 ~目录(/root目录)
解压到指定目录
cd ~ tar -zxvf elasticsearch-6.8.23.tar.gz -C /usr/local/
2. 配置#
ES不能以root用户启动,所以需要创建一个新用户:
#创建elasticsearch用户组 groupadd elasticsearch #创建es用户,添加至elasticsearch用户组,密码为admin useradd es -g elasticsearch -p admin
由于ES对于系统最大打开文件数、进程中内存映射区域的最大数量有最低限制要求,所以需要对以下两份系统文件进行修改:
修改系统最大打开文件数:
#服务器如果有默认的 * soft nofile 100001 * hard nofile 100002 #则可以不用添加以下配置 vim /etc/security/limits.conf #在文件最后,增加如下配置 * soft nofile 65536 * hard nofile 65536 #其中*表示所有用户,也可以使用es来指定用户名
修改进程中内存映射区域的最大数量:
vim /etc/sysctl.conf #将这行配置添加至文件末尾 vm.max_map_count=655360 #添加完后执行命令查看 sysctl -p
修改jvm内存占用
vim /usr/local/elasticsearch-6.8.23/config/jvm.options #Xms、Xmx分别为ES初始化和最大使用内存(如不设置,默认为1G,硬件受不了) -Xms256m -Xmx256m
开启远程访问
#ES默认不允许远程访问,需要修改 vim /usr/local/elasticsearch-6.8.23/config/elasticsearch.yml #编辑如下 network.host: 0.0.0.0
进入ES的根目录,然后创建data logs文件夹
cd /usr/local/elasticsearch-6.8.23/ mkdir data #mkdir logs #由于logs已存在,我们不再创建
给es用户授权
#将"/root"文件夹以递归的方式授予es用户访问权 chown -R es:elasticsearch /usr/local/elasticsearch-6.8.23
开启防火墙 6379 端口( --permanent 永久生效,没有此参数 重启 后失效)
#必须也确保 腾讯云服务器控制台 有添加9200和9300端口入站规则 firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --zone=public --add-port=9300/tcp --permanent
更新防火墙规则(注意修改后一定要做此操作生效)
firewall-cmd --reload #查看是否开放9200和9300端口 firewall-cmd --zone=public --list-ports
3. 启动与关闭#
#切换到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 进程编号
启动后,在浏览器地址栏输入:
http://192.168.149.88:9200
即可看到elasticsearch输出的版本信息等。
4. IK中文分词器#
-
在 elasticsearch-6.8.23/plugins 目录下新建文件夹 ik
cd /usr/local/elasticsearch-6.8.23/plugins mkdir ik -
使用 Xftp 上传 elasticsearch-analysis-ik-6.8.23.zip 到 ik目录中
#记得传到这个目录下 /usr/local/elasticsearch-6.8.23/plugins/ik -
解压
#进入文件夹解压 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 -
重启ES
-
先关闭ES
netstat -unltp #查看进程 kill 2136#强行结束进程 -
启动ES
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目录)
解压到指定目录
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
进行修改:
vim /usr/local/kibana-6.8.23-linux-x86_64/config/kibana.yml
编辑如下内容:
#开启远程访问 server.host=0.0.0.0 #切换中文 i18n.locale: "zh-CN"
开启防火墙 5601 端口( --permanent 永久生效,没有此参数 重启 后失效)
#必须也确保 腾讯云服务器控制台 有添加80端口入站规则 firewall-cmd --zone=public --add-port=5601/tcp --permanent
更新防火墙规则(注意修改后一定要做此操作生效)
firewall-cmd --reload #查看是否开放5601端口 firewall-cmd --zone=public --list-ports
3. 启动
/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首页:
http://192.168.149.88:5601
十、RabbitMQ🐰#
待补充#
文件链接:
https://www.123pan.com/s/5ub8Vv-Yt44 提取码:1211
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?