大数据Hadoop之——部署hadoop+hive+Mysql环境(Linux)

news2024/11/24 9:31:36

目录

一、JDK的安装

1、安装jdk

2、配置Java环境变量 

 3、加载环境变量

4、进行校验

二、hadoop的集群搭建

1、hadoop的下载安装 

2、配置文件设置

2.1. 配置 hadoop-env.sh

2.2. 配置 core-site.xml

2.3. 配置hdfs-site.xml

2.4. 配置 yarn-site.xml

2.5. 配置 mapred-site.xml

2.6. 配置 workers(伪分布式不配置)

 2.7 配置sbin下启停命令

3、复制hadoop到其他节点(伪分布式不执行此步)

4、Hdfs格式化 

5、启动hdfs分布式文件系统

三、msyql安装

1、卸载旧MySQL文件

2、下载mysql安装包

3、配置环境变量 

4、删除用户组

5、创建用户和组

6、创建文件夹

7、更改权限

8、初始化

9、记住初始密码

10、配置文件

11 将mysql加入到服务中

12、设置开机启动并查看进程

13、 创建软连接

14、授权修改密码

四、HIve安装 

1、下载安装

2、配置环境变量

3、配置文件

4、拷贝jar包

5、初始化

6、启动hive


一、JDK的安装

1、安装jdk

sudo  yum search  openjdk

yum install java-1.8.0-openjdk.x86_64

yum install java-1.8.0-openjdk-devel.x86_64

2、配置Java环境变量 

vi  ~/.bash_profile

export JAVA_HOME=/usr/local/jdk1.8.0_11

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

 3、加载环境变量

source  ~/.bash_profile

验证环境变量是否生效:

env | grep HOME

env | grep PATH

4、进行校验

二、hadoop的集群搭建

1、hadoop的下载安装 

1.1. 下载

https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/
​下载 hadoop-3.3.4.tar.gz  安装包

1.2 上传
使用xshell上传到指定安装路径

此处是安装路径是 /usr/local

1.3 解压重命名

tar -xzvf hadoop-3.3.4.tar.gz

mv hadoop-3.3.4 hadoop

1.4 配置环境变量

vi  ~/.bash_profile

export JAVA_HOME=/usr/local/jdk1.8.0_11

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

1.5 加载环境变量

source  ~/.bash_profile

验证环境变量是否生效:

env | grep HOME

env | grep PATH

1.6检验安装

hadoop version

出现下图说明安装成功

2、配置文件设置

2.1. 配置 hadoop-env.sh

hadoop伪分布式配置

export HADOOP_OS_TYPE=${HADOOP_OS_TYPE:-$(uname -s)}
export JAVA_HOME=/usr/local/jdk1.8.0_11

hadoop集群配置(root指的是用户名)

export HADOOP_OS_TYPE=${HADOOP_OS_TYPE:-$(uname -s)}
export JAVA_HOME=/usr/local/jdk1.8.0_11

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root

2.2. 配置 core-site.xml

<configuration>
    <!-- 指定HDFS中NameNode的地址 默认 9000端口-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop001:9000</value>
        <description>配置NameNode的URL</description>
    </property>

    <!-- 指定Hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/data</value>
    </property>

    分布式集群配置下面内容,伪分布式只需配置上面内容
    <!--配置所有节点的root用户都可作为代理用户-->
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>

    <!--配置root用户能够代理的用户组为任意组-->
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>

    <!--配置root用户能够代理的用户为任意用户-->
    <property>
        <name>hadoop.proxyuser.root.users</name>
        <value>*</value>
    </property>
</configuration>

2.3. 配置hdfs-site.xml

以下配置集群和伪分布式均可用

<configuration>
<!-- 数据的副本数量 --> 
    <property> 
        <name>dfs.replication</name> 
        <value>3</value>  <!-- 伪分布式此时为1-> 
    </property> 
    <!-- nn web端访问地址 默认也是9870--> 
    <property> 
        <name>dfs.namenode.http-address</name> 
        <value>hadoop001:9870</value> 
    </property> 

    <!--设置权限为false-->
    <property>
        <name>dfs.permissions.enabled </name>
        <value>false</value>
    </property>

   <!--设置元数据存储目录-->
   <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:///usr/local/hadoopdata/dfs/name</value>
   </property>
   <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:///usr/local/hadoopdata/dfs/data</value>
  </property>

 集群配置使用

  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop003:9868</value>
  </property>  


    <!-- 2nn web端访问地址 可以不配置--> 
    <property> 
        <name>dfs.namenode.secondary.http-address</name> 
        <value>hadoop104:9868</value> 
    </property>

</configuration>

2.4. 配置 yarn-site.xml

<configuration>

    <!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MR程序。--> 
    <property>    
        <name>yarn.nodemanager.aux-services</name>  
        <value>mapreduce_shuffle</value> 
    </property>

 伪分布式以下无需配置

<!-- Site specific YARN configuration properties -->
<!-- yarn集群主角色RM运行机器。--> 
    <property>    
        <name>yarn.resourcemanager.hostname</name>    
        <value>hadoop002</value>
    </property> 
 <!-- 每个容器请求的最小内存资源(以MB为单位)。-->
    <property>     
        <name>yarn.scheduler.minimum-allocation-mb</name> 
        <value>512</value> 
    </property> 
 <!-- 每个容器请求的最大内存资源(以MB为单位)。--> 
    <property>     
        <name>yarn.scheduler.maximum-allocation-mb</name> 
        <value>2048</value>
    </property>
    <!-- 容器虚拟内存与物理内存之间的比率。--> 
    <property>    
        <name>yarn.nodemanager.vmem-pmem-ratio</name>  
        <value>4</value> 
    </property>
    
    <!-- 关闭yarn内存检查 flink on hadoop 配置-->
    <!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>

    <!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>

2.5. 配置 mapred-site.xml

<configuration>
    <!-- mr程序默认运行方式。yarn集群模式 local本地模式-->
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>

   以下配置为集群配置使用
    <!-- MR App Master环境变量。-->
    <property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <!-- MR MapTask环境变量。-->
    <property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <!-- MR ReduceTask环境变量。-->
    <property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>

  <!-- 历史服务器端地址伪分布式和集群分布式都可以不配置 --> 
    <property> 
        <name>mapreduce.jobhistory.address</name> 
        <value>hadoop003:10020</value> 
    </property> 
    <!-- 历史服务器web端地址 --> 
    <property> 
        <name>mapreduce.jobhistory.webapp.address</name> 
        <value>hadoop003:19888</value> 
    </property> 
</configuration>

2.6. 配置 workers(伪分布式不配置)

配置三台主机名,在集群中使用。如果不是集群可以不用配置

hadoop102
hadoop103
hadoop104

 2.7 配置sbin下启停命令

在 sbin下的start-dfs.sh和stop-dfs.sh中顶部配置

#!/usr/bin/env bash
HDFS_DATANODE_USER=root 
HADOOP_SECURE_DN_USER=hdfs 
HDFS_NAMENODE_USER=root 
HDFS_SECONDARYNAMENODE_USER=root

在 sbin下的start-yarn.sh和stop-yarn.sh中顶部配置

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root 
HADOOP_SECURE_DN_USER=yarn 
YARN_NODEMANAGER_USER=root

3、复制hadoop到其他节点(伪分布式不执行此步)

scp /usr/local/hadoop root@hadoop002:/usr/local/

4、Hdfs格式化 

cd /usr/local/hadoop/

bin/hdfs  namenode  -format

find /usr/local/data/hadoop/

5、启动hdfs分布式文件系统

cd /usr/local/hadoop

./sbin/start-dfs.sh

使用 jps 查看启动进程

访问hadoop分布式文件系统

6、启动yarn

cd /usr/local/hadoop

./sbin/start-yarn.sh

使用 jps 查看启动进程

访问hadoop分布式yarn页面

三、msyql安装

1、卸载旧MySQL文件

执行命令 
    # yum remove mysql mysql-server mysql-lib mysql-server
•再查看当前安装mysql的情况看卸载情况:
    # rpm -qa|grep -i mysql
可以看到之前安装的包,然后执行删除命令,全部删除
    # rpm -ev MySQL-devel--5.1.52-1.el6.i686 --nodeps
•查找之前老版本MySQL的目录,并删除老版本的MySQL的文件和库
    # find / -name mysql
删除查找到的所有目录
#例如:rm -rf /run/lock/subsys/mysql    
#例如: rm -rf /etc/selinux/targeted/active/modules/100/mysql    # rm -rf /var/lib/mysql
•手动删除/etc/my.cnf
    # rm -rf /etc/my.cnf
•再次查询如果无,则删除干净
    # rpm -qa|grep -i mysql

删除 mariadb
 rpm -qa|grep mariadb 
 rpm -e --nodeps mariadb-libs
 rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64

2、Mysql下载安装

1.1 下载

官网网址:MySQL :: Download MySQL Community Server

在这里下载的是如下版本的mysql
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

1.2 上传

使用xshell上传到到linux服务器指定安装路径

此处是安装路径是 /usr/local

1.3 解压重命名

cd  /usr/local/

tar -xzvf  mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C

# 如果是xz结尾压缩包用  tar -xvJf,如  tar -xvJf  mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

重命令

mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql

3、配置环境变量 

vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin

使环境生效
source /etc/profile

4、删除用户组

删除用户组
cat /etc/group|grep mysql
groupdel mysql
userdel mysql

5、创建用户和组

 groupadd mysql
 useradd -r -g mysql mysql

6、创建文件夹

mkdir /usr/local/mysql/data

7、更改权限

更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及赋予可执行权限

chown -R mysql:mysql /usr/local/mysql/data/
chown -R mysql:mysql /usr/local/mysql/
chmod -R 755 /usr/local/mysql/

8、初始化

安装依赖包

yum install libaio 或者下面的

yum install -y mariadb-server 安装mariadb-server 5.X版本使用

执行初始化

 /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize

9、记住初始密码

10、配置文件

5.x版本

[mysqld]
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#character config
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true

8.0版

[mysql]
socket=/usr/local/mysql/tmp/mysql.sock
port=3306
user=mysql
default-character-set=utf8

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/tmp/mysql.sock
port=3306
user=mysql
log_timestamps=SYSTEM
collation-server = utf8_unicode_ci
character-set-server = utf8
default_authentication_plugin= mysql_native_password

[mysqld_safe]
log-error=/usr/local/mysql/log/mysqld_safe.err
pid-file=/usr/local/mysql/tmp/mysqld.pid
socket=/usr/local/mysql/tmp/mysql.sock

[mysql.server]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/tmp/mysql.sock
port=3306
user=mysql

11 将mysql加入到服务中

复制
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

#赋予可执行权限
chmod +x /etc/init.d/mysql 
 #添加服务    
chkconfig --add mysql  
 #显示服务列表   
chkconfig --list mysql  

12、设置开机启动并查看进程

设置开机启动:chkconfig mysql on

启动mysql :service mysql start;

查看进程:ps -ef|grep mysql;

查看状态:service mysql status; 

13、 创建软连接

ln -s /usr/local/mysql/bin/mysql /usr/bin

14、授权修改密码

mysql -uroot -p

    输入密码(初始化时候的密码)

8.0以下修改密码:

use mysql;

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');

flush privileges;

8.0以上修改密码

use mysql;
UPDATE user SET authentication_string="" WHERE user="root";
FLUSH PRIVILEGES; 
update user set Host="%" where User="root";
flush privileges;
alter user "root"@"%" identified by "root";
flush privileges;

8.0以下授权
grant all privileges on *.* to 'root'@'%' identified by '密码123456' with grant option;
flush privileges;

8.0以上授权

use mysql;

#还原密码验证插件,将MySQL8的密码认证插件由caching_sha2_password更换成mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
 #刷新权限 
flush privileges;

四、HIve安装 

1、下载安装

1.1下载

下载地址:http://archive.apache.org/dist/hive/

我们选择apache-hive-3.1.3-bin.tar.gz版本学习

1.2 上传

1.3 解压重命名

2、配置环境变量

vi ~/.bash_profile 
export HIVE_HOME=/usr/local/hive

export PATH=$PATH:$HIVE_HOME/bin

刷新配置
source ~/.bash_profile

3、配置文件

配置hive-env.sh

export HADOOP_HOME=/usr/local/hadoop


export HIVE_CONF_DIR=/usr/local/hive/conf

配置hive-site.xml

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>   
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>   
  </property>
</configuration>

4、拷贝jar包

4.1 拷贝mysql驱动

      需要提前现在对应的驱动包,并解压

      cp mysql-connector-java-5.1.49/mysql-connector-java-5.1.49-bin.jar /usr/local/hive/lib/ 

4.2 拷贝guava包

      #hadoop和hive里面的guava包版本可能不一致,那么用hadoop里面的覆盖掉hive里面的
      cp /usr/local/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /usr/local/hive/lib/

      #删除hive的旧依赖包
      rm /opt/hive/lib/guava-19.0.jar 

5、初始化

5.1 启动msyql

     # 先查看mysql是否启动

      service mysql status;

      #未启动则进行启动

      service mysql start

5.2 启动hadoop

      #进入hadoop安装目录

      cd /usr/local/hadoop/

      #启动hadoop

      sbin/start-all.sh

5.3 初始化hive

      #进入hive安装目录

      cd /usr/local/hive

      #执行初始化命令,#初始化Hive
      bin/schematool -dbType mysql -initSchema

6、启动hive

#进入hive安装目录

cd /usr/local/hive

#使用命令验证hive是否安装成功

bin/hive

#进入hive shell,使用show databases; 查看数据,说明安装成功!

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

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

相关文章

11-15 周三 softmax 回归学习

11-15 周三 softmax 回归学习 时间版本修改人描述2023年11月15日11:17:27V0.1宋全恒新建文档 简介 softmax分享可以参考什么是softmax 回归估计一个连续值&#xff0c;分类预测一个离散类别。 恶意软件的判断 回归和分类 分类可以认为从回归的单输出变成多输出 B站学习 softm…

RT-DETR优化改进:IoU系列篇 | Inner-IoU融合MPDIoU,创新十足,2023年11月最新IoU改进

🚀🚀🚀本文改进: Inner-IoU(基于辅助边框的IoU损失)结合MPDIoU进行创新,创新十足,全网首发 🚀🚀🚀RT-DETR改进创新专栏:http://t.csdnimg.cn/vuQTz 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; RT-DETR模型创新优化,涨点技巧分享,科研小助手…

轻量封装WebGPU渲染系统示例<33>- 单精度浮点纹理(源码)

在WebGPU中创建纹理使用纹理很方便&#xff0c;只是js中只有Float32Array而默认不支持Float16Array&#xff0c;所以略微费点事。不过网上的大神多的是&#xff0c;摇摇小手就能获得解决方案。 废话多了容易挨胖揍&#xff0c;看代码。 js中float16单精度float数值转换: // …

【vue2绘制echarts环状图】vue2使用echarts绘制环状图

效果图&#xff1a; 鼠标悬浮的效果图&#xff1a; 1&#xff1a;安装echarts yarn add echarts5.3.2 或 npm install echarts5.3.2 --save2.局部引入使用 在vue页面引入 <template><div><divref"myChart"style"{width: 400px;height: 350…

C语言再学习 -- 编程规范

C语言编程规范这部分一直想总结一下。现在终于付诸行动了。 其实之前讲过一些面试题&#xff0c;参看&#xff1a;嵌入式面试知识点总结 – C语言篇 里面已经有包含一部分了&#xff0c;比如《高质量C C编程指南》.林锐着.pdf。 此次主要参考 华为技术有限公司c语言编程规范 …

Radau Quadrature

https://mathworld.wolfram.com/RadauQuadrature.html 这一部分&#xff0c;见书籍《JShen_TTang_LLWang_Spectral Methods-Algorithms Analysis and applications》

BMS系统项目

1、通过电压监测是否冲满&#xff0c;通过电压可以监测是否放完电 电池得参数 单体过压&#xff08;充满电&#xff09; 过压恢复&#xff08;百分之90多&#xff09; 欠压保护&#xff08;百分之几得电&#xff0c;快关机了&#xff09; 欠压恢复&#xff08;就是欠压之上…

2023年【陕西省安全员C证】最新解析及陕西省安全员C证试题及解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 陕西省安全员C证最新解析根据新陕西省安全员C证考试大纲要求&#xff0c;安全生产模拟考试一点通将陕西省安全员C证模拟考试试题进行汇编&#xff0c;组成一套陕西省安全员C证全真模拟考试试题&#xff0c;学员可通过…

百面深度学习-图神经网络

百面深度学习-图神经网络部分 什么是图神经网络&#xff1f; 图神经网络&#xff08;Graph Neural Networks&#xff0c;GNNs&#xff09;是深度学习模型的一个类别&#xff0c;专门设计来处理图结构数据。在图结构数据中&#xff0c;实体以节点&#xff08;vertex&#xff0…

复现YOLO v1 PyTorch

复现YOLO v1 PyTorch Paper: [1506.02640] You Only Look Once: Unified, Real-Time Object Detection (arxiv.org) Github: EclipseR33/yolo_v1_pytorch (github.com) 数据集 VOC2007&#xff1a;The PASCAL Visual Object Classes Challenge 2007 (VOC2007) VOC2012&…

Python in Visual Studio Code 2023年11月发布

排版&#xff1a;Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2023 年 11 月发布&#xff01; 此版本包括以下公告&#xff1a; 改进了使用 Shift Enter 在终端中运行当前行弃用内置 linting 和格式设置功能对 Python linting 扩展的改进重…

单片机的冷启动、热启动、复位

一文看懂STC单片机冷启动和复位有什么区别-电子发烧友网 单片机的冷启动、热启动和复位是不同的启动或重置方式&#xff0c;它们在系统状态和初始化方面有所不同&#xff1a; 1.冷启动&#xff08;Cold Start&#xff09;&#xff1a; 定义&#xff1a; 冷启动是指系统从完全关…

2023.11.14 关于 Spring Boot 创建和使用

目录 Spring Boot Spring Boot 项目的创建 网页版创建 Spring Boot 项目 Spring Boot 目录说明 项目运行 Spring Boot Spring Boot 是基于 Spring 设计的一个全新的框架&#xff0c;其目的是用来简化 Spring 的应用、初始搭建、开发的整个过程Spring Boot 就是一个整合了…

Redis配置、Redis类型

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

Opengauss到Oracle增量同步, 使用debezium

一、概述 PG到Oracle的同步方案使用debezium kafka kafka-connect-jdbc。debezium是一款开源的变更捕获软件&#xff0c;它以kafka的connector形式运行&#xff0c;可以捕获PostgreSQL、MySQL、Oracle中的变更数据&#xff0c;保存到kafka。kafka-connect-jdbc是confluent公…

stable diffusion到底是如何工作的

stable diffusion简单入门 stable diffusion是一个文生图模型&#xff0c;主要由CompVis、Stability AI和LAION的研究者们创建。这个模型主要是在512X512分辨率的图像上训练的&#xff0c;训练数据集是LAION-5B&#xff0c;该数据集是目前可访问的最大的多模态数据集。 在这篇…

springboot服务和python服务如何自定义启动banner

shigen日更文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 shigen最近在修改ruoyi的框架&#xff0c;看到了框架自带的banner图&#xff0c;就是一个不爽&#xff0c;于是…

基于JavaWeb+SSM+微信小程序基金优选系统的设计和实现

基于JavaWebSSM微信小程序基金优选系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 基金优选是金融机构的核心&#xff0c;是必不可少的一个部分。在金融机构的整个服务行业中…

怎么恢复删除的数据? 8个有效的数据恢复方法

无论您在保存备份方面多么小心&#xff0c;灾难有时还是会发生。有时您的备份软件无法按预期运行。 如果您的外部驱动器靠近您的设备&#xff0c;发生火灾/洪水/故障时&#xff0c;有时备份会与原始文件一起丢失。即使是云存储也不能避免故障。 还有一个事实是&#xff0c;我…

微信@all bug复现及原理分析

1、复现 条件&#xff1a; 1、Windows PC 端微信 2、自建一个群聊拥有群管权限可以所有人 废话不多说&#xff0c;直接上图 所有人 剪切后&#xff0c;到另一个群中&#xff0c;引用任意一个群里成员的消息&#xff0c;并将刚才剪切的粘贴至此&#xff0c;发送 便可完成非群…