【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)

news2024/11/30 14:34:42

本篇文章介绍LNMP架构部署项目,包括Nginx安装配置、PHP安装配置、数据库Mariadb安装配置、Nginx连通PHP、PHP连通MySQL、拆分数据库至独立服务器、拆分静态资源至服务器、扩展一个web服务器。


LNMP架构

Linux Nginx Mysql PHP

Nginx不能处理动态请求,如果是动态请求,就通过fastcgi协议转交给后端的PHP程序处理

Nginx安装配置

第一步:安装nginx

配置官网yum仓库

vim /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

第二步:创建虚拟用户

[root@Web01 ~]# groupadd -g 666 www
[root@Web01 ~]# useradd -u666 -g666 -M -s /sbin/nologin www

第三步:配置Nginx启动用户为www

[root@Web01 ~]# vim /etc/nginx/nginx.conf 

user  www;
worker_processes  auto;

第四步:启动Nginx加入开机自启动

[root@Web01 ~]# systemctl start nginx
[root@Web01 ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

PHP安装配置

第一步:配置PHP软件仓库并安装PHP

#配置PHP仓库
[root@Web01 ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@Web01 ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

[root@Web01 ~]# yum remove php-mysql-5.4 php php-fpm php-common

#配置第三方源
[root@Web01 ~]# vim /etc/yum.repos.d/php.repo
[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0

#安装PHP
[root@Web01 ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb --nogpgcheck

或者是使用rpm包,上传后解压。

yum -y localinstall *.rpm

第二步:修改PHP启动用户为www

[root@Web01 ~]#  sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf 
[root@Web01 ~]# sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf

第三步:启动服务并设置开机自启

[root@Web01 ~]# systemctl start php-fpm
[root@Web01 ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

第四步:查看状态

[root@Web01 ~]# netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1272/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1413/master         
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      4133/php-fpm: maste 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3989/nginx: master  
tcp6       0      0 :::22                   :::*                    LISTEN      1272/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1413/master         
udp        0      0 127.0.0.1:323           0.0.0.0:*                           840/chronyd         
udp6       0      0 ::1:323                 :::*                                840/chronyd         

安装数据库mariadb-server

第一步:安装数据库

[root@Web01 ~]# yum install mariadb-server -y

第二步:启动数据库、设置开机自启动、查看状态

[root@Web01 ~]# systemctl start mariadb
[root@Web01 ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@Web01 ~]# netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1272/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1413/master         
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      4133/php-fpm: maste 
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      4480/mysqld         
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3989/nginx: master  
tcp6       0      0 :::22                   :::*                    LISTEN      1272/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1413/master         
udp        0      0 127.0.0.1:323           0.0.0.0:*                           840/chronyd         
udp6       0      0 ::1:323                 :::*                                840/chronyd         

 第三步:配置用户密码,默认是root

[root@Web01 ~]# mysqladmin password '666666' #设置密码为666666
[root@Web01 ~]# mysql -uroot -p666666 #登录数据库
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.68-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.

MariaDB [(none)]> show databases; #查看有哪些库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> create database hehe; #创建hehe库
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> drop database hehe; #删除hehe库
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> quit #退出数据库
Bye
[root@Web01 ~]#

注意:配置数据库密码需要服务启动后才能配置

Nginx连通PHP

[root@Web01 /]# cat /etc/nginx/conf.d/default.conf 
server {
        listen 80;
        server_name php.koten.com;

        location / {
                root /code;
                index index.php index.html;
        }

        location ~ \.php$ {
                root /code;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        	include fastcgi_params;
}
}
[root@Web01 /]# systemctl restart nginx
[root@Web01 /]# vim /code/index.php 
<?php
        phpinfo();
?>

windows本地hosts解析后,即可访问PHP有关信息

PHP连通MySQL

[root@Web01 /]# vim /code/mysql.php
<?php
    $servername = "localhost";
    $username = "root";
    $password = "lzy123.com";

    // 创建连接
    $conn = mysqli_connect($servername, $username, $password);

    // 检测连接
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    echo "php可以连接MySQL...";
?>

拆分数据库至独立服务器 

为什么要拆分数据库

由于单台服务器运行LNMP架构会导致网站访问缓慢,当内存被占满时,很容易导致系统出现oom从而kill掉MySQL数据库,所以要将web和数据库进行独立部署。

注意:这种的功能是一个整体,属于集群,不属于微服务。

拆分服务器可以解决如下问题:

1.缓解web网站的压力
2.增强数据库读写性能
3.提高用户访问速度

实现流程

1、克隆一台服务器51

2、安装mariadb-server

【省略,上面有流程】

3、导出10.0.0.7上面的所有库文件,并关闭MySQL服务(如果一开始使用的51就省略该步骤了)

[root@Web01 ~]# mysqldump -uroot -p666666 -A > all.sql  
[root@Web01 ~]# ll
total 2508
-rw-r--r--  1 root root 2563044 Apr  6 09:06 all.sql
-rw-------. 1 root root    1519 Mar 29 18:41 anaconda-ks.cfg
[root@Web01 ~]# scp all.sql 10.0.0.51:/root/        #将all.sql发送到10.0.0.51的root下
The authenticity of host '10.0.0.51 (10.0.0.51)' can't be established.
ECDSA key fingerprint is SHA256:zQvI/tCFYssR7l6cr90EtaIA93FXJp8FmUhGtkZshlA.
ECDSA key fingerprint is MD5:0b:a1:ee:d2:75:92:1a:62:05:63:5e:d1:e8:42:13:84.
Are you sure you want to continue connecting (yes/no)? yes    
Warning: Permanently added '10.0.0.51' (ECDSA) to the list of known hosts.
root@10.0.0.51's password: 
all.sql               100% 2503KB  35.0MB/s   00:00    
[root@Web01 ~]# systemctl stop mariadb
[root@Web01 ~]# systemctl disable mariadb
Removed symlink /etc/systemd/system/multi-user.target.wants/mariadb.service.

4、导入到10.0.0.51新数据、检查数据库是否导入成功

[root@MySQL ~]# mysql -uroot -p666666 < all.sql 
[root@MySQL ~]# mysql -uroot -p666666 -e "show databases"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| phpshe             |
| test               |
| wecenter           |
| wordpress          |
+--------------------+
[root@MySQL ~]# 

5、修改代码中连接数据库的信息(服务需要挨个修改)

浏览器访问网址

#授权普通用户,允许远程连接51

[root@MySQL ~]# mysql -uroot -p666666
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.68-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.

MariaDB [(none)]> grant all on  *.* to koten@'%' identified by '666666';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit
Bye


[root@Web01 ~]# vim /code/wordpress/wp-config.php
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );        #数据库名称
define( 'DB_USER', 'koten' );            #数据库用户

/** Database password */
define( 'DB_PASSWORD', '666666' );    #数据库密码

/** Database hostname */
define( 'DB_HOST', '10.0.0.51' );        #修改远程连接IP地址

修改后刷新浏览器,发现恢复(其他服务同理)

拆分静态资源至独立服务器

1、安装NFS

[root@NFS ~]# yum -y install nfs-utils

2、创建匿名压缩用户www

[root@NFS ~]# groupadd -g666 www
[root@NFS ~]# useradd -u666 -g666 -M -s /sbin/nologin www

3、修改配置文件

[root@NFS ~]# cat /etc/exports
/data/wordpress 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/data/wecenter 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

4、创建必要数据文件

[root@NFS ~]# mkdir -p /data/wordpress
[root@NFS ~]# mkdir -p /data/wecenter
[root@NFS ~]# chown www.www /data/*
[root@NFS ~]# ll /data/
total 0
drwxr-xr-x 2 www www 6 Apr  6 10:08 wecenter
drwxr-xr-x 2 www www 6 Apr  6 10:08 wordpress

5、启动NFS

[root@NFS ~]# systemctl start nfs
[root@NFS ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

6、找出业务上传图片的目录并挂载

右键复制图片连接地址:找到上传目录uploads

http://blog.koten.com/wp-content/uploads/2023/04/1.jpg

1)将2023目录拷贝到31的/data/wordpress/

[root@Web01 ~]# scp -r /code/wordpress/wp-content/uploads/* 172.16.1.31:/data/wordpress/
The authenticity of host '172.16.1.31 (172.16.1.31)' can't be established.
ECDSA key fingerprint is SHA256:zQvI/tCFYssR7l6cr90EtaIA93FXJp8FmUhGtkZshlA.
ECDSA key fingerprint is MD5:0b:a1:ee:d2:75:92:1a:62:05:63:5e:d1:e8:42:13:84.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.31' (ECDSA) to the list of known hosts.
root@172.16.1.31's password: 
music-music-1.6.2.zip 100%   67KB   6.5MB/s   00:00    
HTML5中国象棋.zip 100% 1571KB  30.9MB/s   00:00       
小霸王-FC怀旧游 100% 7718KB  48.9MB/s   00:00      
[root@Web01 ~]#

NFS重新授权下面的目录权限

[root@NFS wordpress]# chown -R www.www /data/wordpress/
[root@NFS wordpress]# ll /data/wordpress/
total 0
drwxr-xr-x 3 www www 16 Apr  6 15:22 2023

 2)将31/data/wordpress挂载到uploads目录

web1安装nfs-utils
[root@Web01 ~]# yum -y install nfs-utils

查看共享目录
[root@Web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data/wecenter  172.16.1.0/24
/data/wordpress 172.16.1.0/24

挂载NFS共享目录/data/wordpress并查看挂载信息
[root@Web01 ~]# mount -t nfs 172.16.1.31:/data/wordpress /code/wordpress/wp-content/uploads
[root@Web01 ~]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
devtmpfs                     476M     0  476M   0% /dev
tmpfs                        487M     0  487M   0% /dev/shm
tmpfs                        487M  7.7M  479M   2% /run
tmpfs                        487M     0  487M   0% /sys/fs/cgroup
/dev/sda3                     19G  2.4G   17G  13% /
/dev/sda1                    197M  110M   88M  56% /boot
tmpfs                         98M     0   98M   0% /run/user/0
172.16.1.31:/data/wordpress   19G  2.0G   17G  11% /code/wordpress/wp-content/uploads

扩展一个web节点(web2服务器)

可以直接克隆,也可以创建新服务器自己安装配置服务,同步文件

1、安装Nginx+PHP+NFS

Nginx

[root@Web02 ~]# scp 172.16.1.7:/etc/yum.repos.d/nginx.repo /etc/yum.repos.d/
The authenticity of host '172.16.1.7 (172.16.1.7)' can't be established.
ECDSA key fingerprint is SHA256:zQvI/tCFYssR7l6cr90EtaIA93FXJp8FmUhGtkZshlA.
ECDSA key fingerprint is MD5:0b:a1:ee:d2:75:92:1a:62:05:63:5e:d1:e8:42:13:84.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.7' (ECDSA) to the list of known hosts.
root@172.16.1.7's password: 
nginx.repo            100%  192   110.1KB/s   00:00    
[root@Web02 ~]# yum -y install nginx


PHP
安装PHP软件【文末可以下载】
[root@Web02 ~]# rz -E
rz waiting to receive.
[root@Web02 ~]# ls
anaconda-ks.cfg  php71.tar.gz
[root@Web02 ~]# tar xf php71.tar.gz 
[root@Web02 ~]# yum -y localinstall *.rpm


扩展:批量删除PHP软件
[root@Web02 ~]# rpm -qa|grep php|xargs yum -y remove


NFS
安装nfs-utils,但不用启动
[root@Web02 ~]# yum -y install nfs-utils

2、创建虚拟用户www

[root@Web02 ~]# groupadd -g666 www
[root@Web02 ~]# useradd -u666 -g666 -M -s /sbin/nologin www

3、同步配置文件和WEB01相同(/etc/nginx/,/etc/php-fpm.d/www.conf)

#同步Nginx配置
[root@Web02 ~]# rsync -avz --delete 172.16.1.7:/etc/nginx/ /etc/nginx
root@172.16.1.7's password: 
receiving incremental file list
./
nginx.conf
conf.d/
conf.d/default.conf
conf.d/phpshe.conf
conf.d/wecenter.conf
conf.d/wordpress.conf

sent 155 bytes  received 1,701 bytes  1,237.33 bytes/sec
total size is 9,775  speedup is 5.27

#同步PHP配置
[root@Web02 conf.d]# rsync -avz --delete 172.16.1.7:/etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf 
root@172.16.1.7's password: 
receiving incremental file list
www.conf

sent 199 bytes  received 425 bytes  113.45 bytes/sec
total size is 17,962  speedup is 28.79

4、同步代码文件到WEB02

打包code然后拷贝到web02,进行解压到/目录

[root@Web01 04]# tar zcvf code.tar.gz /code/

[root@Web02 ~]# scp 172.16.1.7:/code/wordpress/wp-content/uploads/2023/04/code.tar.gz /
root@172.16.1.7's password: 
code.tar.gz           100%  168MB  40.6MB/s   00:04    
[root@Web02 /]# tar xf code.tar.gz 
[root@Web02 /]# ll /code
total 8
drwxr-xr-x  8 www www  300 Apr  6 09:56 phpshe
drwxr-xr-x 14 www www 4096 Apr  4 17:13 wecenter
drwxr-xr-x  5 www www 4096 Apr  6 09:21 wordpress

5、启动服务、挂载NFS到本地上传目录

#启动服务
[root@Web02 code]# systemctl start nginx php-fpm
[root@Web02 code]# systemctl enable nginx php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

#挂载NFS到本地上传目录
[root@Web02 code]# mount -t nfs 172.16.1.31:/data/wordpress /code/wordpress/wp-content/uploads/
[root@Web02 code]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
devtmpfs                     476M     0  476M   0% /dev
tmpfs                        487M     0  487M   0% /dev/shm
tmpfs                        487M  7.7M  479M   2% /run
tmpfs                        487M     0  487M   0% /sys/fs/cgroup
/dev/sda3                     19G  2.4G   17G  13% /
/dev/sda1                    197M  110M   88M  56% /boot
tmpfs                         98M     0   98M   0% /run/user/0
172.16.1.31:/data/wordpress   19G  2.2G   17G  12% /code/wordpress/wp-content/uploads

Linux系统PHP软件下载链接:https://pan.baidu.com/s/1E9QfpakeZA1zkA3B7-urjw?pwd=r843 

我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/523249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java如何判空

目录 前言 List的判空 String的判空 Optional 4.1 Optional对象的创建 4.2使用场景 前言 实际项目中我们会有很多地方需要判空校验&#xff0c;如果不做判空校验则可能产生NullPointerException异常。 针对异常的处理我们在上一篇有提及&#xff1a; 先来看一下实际项目…

OpenCV实战(23)——相机标定

OpenCV实战&#xff08;23&#xff09;——相机标定 0. 前言1. 数字图像成像原理2. 相机标定2.1 执行相机校准2.2 使用已知相机参数校准2.3 使用圆网格进行校准 3. 完整代码小结系列链接 0. 前言 我们已经了解了相机如何通过在 2D 传感器平面上投射光线来拍摄 3D 场景&#xf…

使用RobustPCA 进行时间序列的异常检测

鲁棒主成分分析(Robust Principal Component Analysis, RobustPCA)是一种将时间序列矩阵分解为低秩分量和稀疏分量的技术。这种分解能够识别潜在的趋势&#xff0c;以及检测异常和异常值。在本中我们将研究RobustPCA的数学基础&#xff0c;介绍它与传统的PCA之间的区别&#xf…

GcDataViewer for JavaScript 6.1.0 Crack

GcDataViewer是跨平台 JavaScript 数据查看器,使用我们的 JavaScript 数据查看器在 Web 上打开和查看数据文档。 Load Excel &#xff08;XLSX&#xff09;、CSV 和SPREADJS&#xff08;SSJSON&#xff09; 文件&#xff0c;全部在一个查看器中 支持使用排序、筛选器和切片器进…

单词拼写检查textblob模块spellcheck方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 单词拼写检查 textblob模块 spellcheck方法 [太阳]选择题 关于python代码说法错误的一项是&#xff1a; from textblob import Word myWordsuccessfulee print("【显示】myWord …

【Spring事务】Spring事务事件控制,解决业务异步操作

使用背景 在业务中&#xff0c;经常会有这样的需求&#xff0c;在数据库事务提交之后&#xff0c;发送异步消息或者进行其他的事务操作。 例如当用户注册成功之后&#xff0c;发送激活码&#xff0c;如果用户注册后就执行发送激活码&#xff0c;但是在用户保存时出现提交事务…

【利用AI让知识体系化】入门Express框架

思维导图 文章目录 思维导图第一章&#xff1a;介绍Express什么是ExpressExpress优点Express应用场景 第二章&#xff1a;安装和基础用法安装Express搭建第一个Express应用中间件的使用 第三章&#xff1a;路由和控制器路由的原理路由的基本用法路由的进阶用法控制器的使用 第四…

BM 34 判断是否是二叉搜索树

判断是不是二叉搜索树_牛客题霸_牛客网 (nowcoder.com) 二叉搜索树满足每个节点的左子树上的所有节点均小于当前节点且右子树上的所有节点均大于当前节点。 递归去做 &#xff0c;一段一段的去判断是否满足条件 /*** struct TreeNode {* int val;* struct TreeNode *left;* str…

c++ 11标准模板(STL) std::set(二)

定义于头文件 <set> template< class Key, class Compare std::less<Key>, class Allocator std::allocator<Key> > class set;(1)namespace pmr { template <class Key, class Compare std::less<Key>> using se…

超实用!50+个ChatGPT提示词助你成为高效Web开发者(上)

如果你已经感到编写代码的重复和繁琐让你疲惫不堪&#xff0c;想要提高自己的效率&#xff0c;那么你来对地方了。ChatGPT是一款能够帮助你优化工作流程、减少错误并获得提高代码的见解的强大工具。 在这篇博客文章中&#xff0c;我们将向你提供超过50个提示和策略&#xff0c;…

OpenCV教程——形态学操作。膨胀,腐蚀,开操作,闭操作,形态学梯度,顶帽,黑帽

1.形态学操作 图像形态学操作&#xff1a;基于形状的一系列图像处理操作的合集&#xff0c;主要是基于集合论基础上的形态学数学。 形态学有四个基本操作&#xff1a;膨胀、腐蚀、开、闭。 2.膨胀与腐蚀 2.1.膨胀 跟卷积操作类似&#xff0c;假设有图像A和结构元素B&#…

路径规划算法:基于灰狼优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于灰狼优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于灰狼优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法灰狼…

自媒体的孔雀效应:插根鸡毛还是专业才华?

自媒体时代&#xff0c;让许多原本默默无闻的人找到了表达自己的平台。有人声称&#xff0c;现在这个时代&#xff0c;“随便什么人身上插根鸡毛就可以当孔雀了”。可是&#xff0c;事实真的如此吗&#xff1f; 首先&#xff0c;我们不能否认的是&#xff0c;自媒体确实为大众提…

【大数据】通过 docker-compose 快速部署 Presto(Trino)保姆级教程

文章目录 一、概述二、前期准备1&#xff09;部署 docker2&#xff09;部署 docker-compose 三、创建网络四、Trino 编排部署1&#xff09;下载 trino2&#xff09;配置1、coordinator 配置2、worker 配置 3&#xff09;启动脚本 bootstrap.sh4&#xff09;构建镜像 Dockerfile…

多尺度深度特征(下):多尺度特征学习才是目标检测精髓(论文免费下载)...

计算机视觉研究院专栏 作者&#xff1a;Edison_G 深度特征学习方案将重点从具有细节的具体特征转移到具有语义信息的抽象特征。它通过构建多尺度深度特征学习网络 (MDFN) 不仅考虑单个对象和局部上下文&#xff0c;还考虑它们之间的关系。 公众号ID&#xff5c;ComputerVisionG…

MySQL- 存储引擎

MySQL体系结构 连接层 最上层是一些客户端和链接服务&#xff0c;包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程 池的概念&#xff0c;为通过认证安全接入的客户端…

通过自动装箱和拆箱解释所定义基础数据类型和其对应封装类的区别

文章目录 前言一、拆装箱的实质二、拓展1.数值超过128的Integer装箱2.Java内存分配 前言 在刷软中的时候涉及到了值传递和地址传递传参的区别&#xff0c;其中提到不管是将基础数据类型的变量传值给对象数据类型的变量还是反过来都属于值传递&#xff0c;究其原因就是期间发生了…

【本地模式】第一个Mapreduce程序-wordcount

【本地模式】&#xff1a;也就是在windows环境下通过hadoop-client相关jar包进行开发的&#xff0c;我们只需要通过本地自己写好MapReduce程序即可在本地运行。 一个Maprduce程序主要包括三部分&#xff1a;Mapper类、Reducer类、执行类。 map阶段&#xff1a;将每一行单词提…

XShell远程连接

xshell 是一个强大的安全终端模拟软件&#xff0c;它支持SSH1,SSH2以及microsoft windows 平台的TELNET协议。xshell通过互联网到远程主机的安全连接。 xshell可以在windows界面下来访问远程终端不同系统下的服务器&#xff0c;从而比较好的达到远程控制终端的目的。 步骤一 …

MySQL- 索引

索引是帮助MySQL高效获取数据的数据结构(有序)。在数据之外, 数据库系统还维护着满足特定查找算法的数据结构, 这些数据结构以某种方式引用数据, 这样就可以在这些数据结构上实现高级查找算法, 这种数据结构就是索引。 索引结构 MySQL的索引是在存储层实现的, 不同的存储引擎有…