使用 Docker 搭建 Hadoop 集群

1.1. 启用 WSL 与虚拟机平台

1.1.1. 启用功能

启用 WSL并使用 Moba 连接-CSDN博客

1.2 安装 Docker Desktop

最新版本链接:Docker Desktop: The #1 Containerization Tool for Developers | Docker

指定版本链接:Docker Desktop release notes | Docker Docs

(1)安装好 Docker Desktop,接受相关协议后,进入主界面。如果有 docker hub 帐户就用帐户登录,否则就选没有帐号继续即可。

(2)测试 Docker Desktop 是否安装成功?可以在命令行或终端中输入命令:

docker -v
# 或者
docker info

1.3. Docker 常用设置

(1)镜像源设置

这里找的是阿里云的镜像源,链接:容器镜像服务 (aliyun.com)

进入 Docker Desktop 主界面 → 设置(Settings) → Docker 引擎(Docker Engine)

添加如下内容:

"registry-mirrors": ["https://ib71hsz9.mirror.aliyuncs.com"]

如图所示:

(2) 修改 Docker Desktop 分发存储路径

先查看所有已安装的 Windows Subsystem for Linux (WSL) 发行版的详细列表

wsl --list --all -v

在这里插入图片描述

而 Docker Desktop 默认将所有的 WSL2 分发所对应的 vhdx 硬盘映像文件存到路径:C:\Users\用户名\AppData\Local\Docker 下。为了数据安全性及 重用性,一般将上述文件迁移到其它硬盘中。 最新的 Docker Desktop 已支持在设置界面中直接修改 “Resources->Disk image location”,应用并重新启动即可。如下图所示:

执行后,应该可以看到在新的目标文件夹中有 data 与 main 两个子文件夹, 里面分别存放 Docker Desktop 系统及数据。 后面如果重新安装系统或者重新安装了 Docker Desktop,只要保留这两个目 录下的文件,则原来的所有配置及数据都可以还原。可按如下步骤进行:

查看当前分发命令为:

wsl -l --all -v

停止并注销分发(注意,关闭 Docker Desktop 管理端)命令为:

wsl -t docker-desktop
wsl --unregister docker-desktop 
wsl -t docker-desktop-data
wsl --unregister docker-desktop-data

导入分发令为:

wsl --import-in-place docker-desktop-data  D:\WSL\DockerDesktopWSL\data\ext4.vhdx 
wsl --import-in-place docker-desktop  D:\WSL\DockerDesktopWSL\main\ext4.vhdx

重新打开 Docker Desktop 管理端

1.4. 基本镜像制作

为了减少重复工作,可以将集群存储与计算环境中的常用组件全部安装好, 并提交到 Docker Server 中,后续容器在些镜像上创建。

(1) 创建网络

不管是分布式存储还是分布式计算,集群的搭建必须保证在同一个网络中, 让集群内的所有计算机都可以相互访问。为此,我们通过 docker 单独创建一个集群网络,后续所有容器都在这个网络中运行。 查看当前网络命令:

docker network ls

类似结果:

NETWORK ID     NAME      DRIVER    SCOPE
3a6370a8f8eb   bridge    bridge    local
583559d99159   host      host      local
80f6ea320f3b   none      null      local

创建集群网络命令:

docker network create -d bridge cluster

其中参数 -d bridge 表示连接方式为网桥,cluster 表示网络名称

查看网络信息命令:

docker network inspect cluster

(2) 搜索镜像

docker search debian

(3) 拉取镜像

docker pull debian

如果拉取失败可能是镜像源问题,尝试其他镜像源。

1.5. 制作镜像(跳过)

(1)Dockerfile 操作指令

指令含义
FROM 镜像指定新镜像所基于的镜像,第一条指令必须为FROM指令,每创建一个镜像就需要一条FROM指令
MAINTAINER 名字说明新镜像的维护人信息
RUN命令在所基于的镜像上执行命令,并提交到新的镜像中
CMD [“要运行的程序”,“参数1”,“参数2”]指令启动容器时要运行的命令或者脚本,Dockerfile只能有一条CMD命令, 如果指定多条则只能最后一条被执行
EXPOSE 端口号指定新镜像加载到Docker时要开启的端口
ENV 环境变量 变量值设置一个环境变量的值,会被后面的RUN使用
ADD 源文件/目录目标文件/目录将源文件复制到目标文件,源文件要与Dockerfile位于相同目录中,或者是一个URL
COPY 源文件/目录目标文件/目录将本地主机上的文件/目录复制到目标地点,源文件/目录要与Dockerfile在相同的目录中
VOLUME [“目录”]在容器中创建一个挂载点
USER 用户名/UID指定运行容器时的用户
WORKDIR 路径(类似cd)为后续的RUN、CMD、ENTRYPOINT指定工作自录
ONBUILD 命令指定所生成的镜像作为一个基础镜像时所要运行的命令
HEALTHCHECK健康检查

1.6. 创建容器

(1)创建网桥

docker network create hadoop
docker network ls

在这里插入图片描述

(2)创建容器

docker run -itd --name hadoop102 --network hadoop -p 8088:8088 -p 50070:50070 debian

参数说明:--name,表示容器名称;--network 表示使用的网络;-p 表示映射窗口,8088:8088 表示将容器中的 8088 端口映射到主机的 8088 端口;debian,表示创建容器时使用的镜像名,也可镜像 ID(docker image list 查看);

如果之前创建失败过会出现容器已存在,这时候使用 docker rm 把他删了重新创建就好了

(3)查看容器

docker ps

(4)查看网桥

docker network inspect hadoop

1.7. 进入容器搭建集群

1.7.1. 登录容器

1)如果容器已经关闭,重新启动一下

docker start hadoop102

进入容器。

docker exec -it hadoop102 bash

表示以交互的方式附加到正在运行的容器,并执行容器中命令:bash

2)给 root 设置密码

passwd root

1.7.2. 安装软件

在安装基本软件后,可以 Debian 的软件源切换到国内,以提高后续软件安装的速度,减少等待时间,提高效率。下面以阿里云为例,地理位置也可切换为其它的源,例如腾讯,华为,清华。

# 1. 更新系统
apt update# 2. 安装网络工具
apt install -y net-tools# 3. 安装 ping
apt install -y iputils-ping# 4. 安装 vim 工具
apt install -y vim# 5. 安装 ssh
yum install -y openssh
apt install -y openssh-server
apt install -y openssh-client# 6. 安装 https 组件
apt install -y apt-transport-https# 7. 安装 rsync
apt install -y rsync

【可选】更换软件源,以阿里云为例

备份原文件

cd /etc/apt
mv sources.list sources.list.bak

编辑源配置文件命令为:

vim sources.list

在该文件的最上面加入如下内容:

deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

更新软件库清单

apt-get update
apt-get upgrade

1.7.3. 搭建集群

安装 JDK 和 Hadoop

1)在容器中创建安装包目录

mkdir /opt/software
mkdir /opt/module

在本地主机上执行,将 JDK 压缩包复制到 Docker 容器中

# docker cp /本地主机路径/JDK 包 容器 ID:/opt/software/
docker cp jdk-8u144-linux-x64.tar.gz f889ba1fb3d2:/opt/software/
docker cp hadoop-3.3.1.tar.gz f889ba1fb3d2:/opt/software/

在这里插入图片描述

2)在容器中解压 JDK 压缩包

tar -zxvf /opt/software/jdk-8u144-linux-x64.tar.gz -C /opt/module/
tar -zxvf /opt/software/hadoop-3.3.1.tar.gz -C /opt/module/

更改文件夹名称

cd /opt/module/
mv jdk1.8.0_144 jdk

3)配置环境变量

vim /etc/profile

在末尾添加内容如下:

export JAVA_HOME=/opt/module/jdk
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/opt/module/hadoop-3.3.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使环境变量立即生效

source /etc/profile

检测是否配置成功(查看 Java 版本)

java -version
# output
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

4)创建 HDFS 工作目录和 LOG 目录

创建 HDFS 的 NN 和 DN 工作主目录,创建 Hadoop 的 log 日志文件目录(建议将文件放在 /var 目录下,放别的地方也行)

mkdir -p /var/big_data /var/log_hadoop
配置 Hadoop 集群环境

首先,进入$HADOOP_HOME/etc/hadoop目录

cd $HADOOP_HOME/etc/hadoop

1)为 Hadoop 提供 JAVA 解释器路径信息,主要目的是解决远程访问 hadoop 时候JAVA_HOME无法继承的问题,同时将 Hadoop 的日志存储路径修改/var/log_hadoop路径下,其默认在$HADOOP_HOME/etc/hadoop/logs下,一般情况下建议重新指定路径。

vim hadoop-env.sh

添加内容如下:(找到对应位置,没有就加在最后;命令模式下,输入 😒 回车,光标就会定位到最后一行,按 O 在下一行输入内容)

export JAVA_HOME=/opt/module/jdk
export HADOOP_LOG_DIR=/var/log_hadoop

2)为 Yarn 任务、资源管理器提供 Java 运行环境

vim yarn-env.sh

添加内容如下:

export JAVA_HOME=/opt/module/jdk

3)配置 HDFS 主节点信息、持久化和数据文件的主目录

vim core-site.xml

添加如下内容:

	<property><!-- 指定NameNode的地址 --><name>fs.defaultFS</name><value>hdfs://hadoop102:9000</value></property><property><!-- 指定hadoop数据的存储目录 --><name>hadoop.tmp.dir</name><value>/var/big_data</value></property>

4)配置 HDFS 默认的数据存放策略

vim hdfs-site.xml

添加如下内容:

    <property><!-- DataNode存储block的副本量,不大于DataNode的个数--><name>dfs.replication</name><value>3</value></property><property><!-- 2nn web端访问地址--><name>dfs.namenode.secondary.http-address</name><value>hadoop104:9868</value></property><property><!-- 禁用 HDFS ACL(简单权限)--><name>dfs.permissions</name><value>false</value></property>

5)配置 Mapreduce 任务调度策略

vim mapred-site.xml

添加如下内容:

    <property><!-- 指定MapReduce程序运行在Yarn上 --><name>mapreduce.framework.name</name><value>yarn</value></property><property><!-- 历史服务器端地址 --><name>mapreduce.jobhistory.address</name><value>hadoop103:10020</value></property><property><!-- 历史服务器web端地址 --><name>mapreduce.jobhistory.webapp.address</name><value>hadoop103:19888</value></property>

6)配置 YARN 资源管理角色的信息

vim yarn-site.xml

添加如下内容:

	<property><!-- 指定MR走shuffle --><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><!-- 指定ResourceManager的地址--><name>yarn.resourcemanager.hostname</name><value>hadoop102</value></property>

7)配置 DataNode 节点信息

vim workers

添加如下内容(删除原有内容,不要留任何空格):

hadoop102
hadoop103
hadoop104

8)配置主机名对应 IP

vim /etc/hosts

添加如下内容:

172.19.0.2	hadoop102
172.19.0.3	hadoop103
172.19.0.4	hadoop104

9)退出容器,在本地主机上执行

保存镜像

docker commit hadoop102 hadoop

在这里插入图片描述

克隆多个容器(以三台服务器集群为例)

docker run -itd --name hadoop103 --network hadoop hadoop
docker run -itd --name hadoop104 --network hadoop hadoop

进入三台机子

docker exec -it hadoop102 bash
docker exec -it hadoop103 bash
docker exec -it hadoop104 bash
配置 SSH 免密登录

1)免密登录原理,如下图所示

2)查看 ssh 服务状态(以下 ssh 有关所以命令均需在三台机器上执行)

service ssh status

如果没有运行,使用以下命令启动它

service ssh start

如果不是默认启动,设置SSH服务为开机自启:

systemctl enable ssh

3)生成公钥和私钥,注意下面的指令要求3台机器都要执行,Mobaxterm可以使用MultiExec功能开启多执行模式,让三台机器同时执行。

ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)

如果使用的是 root 用户,需要修改权限

vim /etc/ssh/sshd_config

修改如下内容:

PermitRootLogin yes

重新启动 ssh 服务

service ssh restart

4)将公钥拷贝到要免密登录的目标机器上,各自文件下(不知道密码使用 passwd root 重新设置)

ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104

.ssh文件夹下(~/.ssh)的文件功能解释

文件名含义
known_hosts记录ssh访问过计算机的公钥(public key)
id_rsa生成的私钥
id_rsa.pub生成的公钥
authorized_keys存放授权过得无密登录服务器公钥

1.7.4. 集群启停方式

1)各个模块分开启停(配置ssh是前提)

(1)如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode

hdfs namenode -format

(2)整体启停 HDFS/YARN

start-dfs.sh
stop-dfs.sh
start-yarn.sh
stop-yarn.sh

或者

$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/etc/hadoop/sbin/start-yarn.sh
$HADOOP_HOME/etc/hadoop/sbin/stop-yarn.sh

如果使用的 hadoop 版本为 3.x 应该会出现在下述类型报错,显然是参数没有被定义

Starting namenodes on [hadoop102]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoop104]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operati

下面我们需要在定义这些参数

方法一:/etc/profile 文件内配置参数

vim /etc/profile

内容如下:

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

方法二: 修改 start-dfs.shstop-dfs.shstart-yarn.shstop-yarn.sh 四个文件

修改 HDFS 文件

vim $HADOOP_HOME/sbin/start-dfs.sh
vim $HADOOP_HOME/sbin/stop-dfs.sh

在顶部添加以下参数

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

修改 YARN 文件

vim $HADOOP_HOME/sbin/start-yarn.sh
vim $HADOOP_HOME/sbin/stop-yarn.sh

在顶部添加以下参数

YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root

2)各个服务组件逐一启动/停止

(1)启停 HDFS 组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

(2)启停 YARN

yarn --daemon start/stop resourcemanager/nodemanager

(3)启停 JobHistory

mr-jobhistory-daemon.sh start historyserver
mr-jobhistory-daemon.sh stop historyserver

3.x 版本的应该会出现下述警告

WARNING: Use of this script to start the MR JobHistory daemon is deprecated.
WARNING: Attempting to execute replacement "mapred --daemon start" instead.

不想看到的话,可以改为使用下述命令

mapred --daemon start historyserver
mapred --daemon stop historyserver

1.7.5. 编写集群常用脚本

集群启停脚本
vim myhadoop.sh

添加内容如下:

#!/bin/bashif [ $# -lt 1 ]
thenecho "No Args Input..."exit ;
ficase $1 in
"start")echo "=========== 启动 hadoop 集群 ==========="echo "----------- 启动 hdfs -----------------"ssh hadoop102 "$HADOOP_HOME/sbin/start-dfs.sh"echo "----------- 启动 yarn -----------------"ssh hadoop102 "$HADOOP_HOME/sbin/start-yarn.sh"echo "----------- 启动 historyserver --------"ssh hadoop103 "$HADOOP_HOME/bin/mapred --daemon start historyserver"
;;
"stop")echo "=========== 关闭 hadoop 集群 ==========="echo "----------- 关闭 historyserver --------"ssh hadoop103 "$HADOOP_HOME/bin/mapred --daemon stop historyserver"echo "----------- 关闭 yarn -----------------"ssh hadoop102 "$HADOOP_HOME/sbin/stop-yarn.sh"echo "----------- 关闭 hdfs -----------------"ssh hadoop102 "$HADOOP_HOME/sbin/stop-dfs.sh"
;;
*)echo "Input Args Error..."
;;
esac

修改脚本执行权限

chmod 777 myhadoop.sh
查看集群所有服务器进程脚本 jpsall
vim jpsall

添加内容如下:

#!/bin/bashfor host in hadoop102 hadoop103 hadoop104
doecho =============== $host ===============ssh $host jps 
done

修改脚本执行权限

chmod 777 jpsall
集群分发脚本 xsync

/usr/local/bin 目录下创建 xsync 文件

cd /usr/local/bin
vim xsync

添加内容如下:

#!/bin/bash#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); thenecho no args;exit;
fi#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir#4 获取当前用户名称
user=`whoami`#5 循环
for i in hadoop102 hadoop103 hadoop104
doecho ------------------- $i --------------rsync -rvl $pdir/$fname $user@$i:$pdir
done

修改脚本执行权限

chmod 777 xsync

1.7.6. 脚本使用

1)启停 Hadoop 集群全部模块

./myhadoop.sh start
./myhadoop.sh stop

2)查看 Hadoop 集群所有进程

./jpsall

运行代码可以看到 hdfs,yarm,historyserver 三个模块全部启动

如果无法使用可能环境变量问题(把 /etc/profile 里的 java 环境变量添加到 ~/.bashrc

vim ~/.bashrc
source ~/.bashrc

查看三台机器所有进程:

hadoop102:NameNode,DataNode,ResourceManager,NodeManager,Jps
hadoop103:DataNode,NodeManager,JobHistoryServer,Jps
hadoop104:DataNode,SecondaryNameNode,NodeManager,Jps

3)分发文件

退回根目录,准备一个 test.txt 文件,

xsync test.txt

在另外两个服务器的根目录下存在 test.txt 即分发成功。

备注

每次重启容器需要重新启动 ssh 服务,同时容器的 IP 与其启动顺序有关会出现不对应的情况,可以自行写一个 shell 文件每次启动完运行一下,例如:

# 找到并打开文件/root/.bashrc
$ vim /root/.bashrc
# 在.bashrc末尾添加如下代码
$ service ssh start

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.若依前端项目拉取、部署、访问

因为默认RuoYi-Vue是使用的Vue2,所以需要另外去下载vue3来部署。 拉取代码 git clone https://gitee.com/ys-gitee/RuoYi-Vue3.git 安装node才能执行npm相关的命令 执行命令npm install 如果npm install比较慢的话&#xff0c;需要添加上国内镜像 npm install --registrhttp…

Docker安装体验kuboard-k8s多集群管理工具

文章目录 1.kuboard是什么&#xff1f;2.docker安装命令2.1 Linux上docker环境安装命令2.2 Windows上docker环境安装命令 3.登录访问3.1首页访问地址3.2 默认账号密码3.3 登录页3.4 首页 4总结 1.kuboard是什么&#xff1f; 参看官网: https://kuboard.cn/gitHub项目地址&…

重学设计模式-责任链模式

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为设计模式&#xff0c;它通过将请求沿着链传递&#xff0c;使多个对象都有机会处理该请求&#xff0c;从而避免了请求的发送者与接收者之间的耦合关系。本文将详细介绍责任链模式的定义、优缺点、应…

SuperMap iClient3D for Cesium等高线标注

kele 前言 在三维地形分析中&#xff0c;等高线分析是一种非常重要的分析方法&#xff0c;它能直观的表达出地形的高低起伏特征&#xff0c;在三维系统中受到广泛应用。在SuperMap iClient3D for Cesium中&#xff0c;等高线分析是前端GPU分析&#xff0c;能够分析并渲染出等高…

简易共享屏幕工具改进版

昨天心血来潮写了一篇关于简易共享屏幕工具的文章&#xff0c;发现也有一些阅读量&#xff0c;并且我对于它的效果不是很满意 &#xff0c;实际呈现的帧率还是太低了。所以我今天换了更高效的方式来实现。 50 行代码简易屏幕共享工具 改进 降低分辨率 昨天那个测试的帧率低&a…

4.银河麒麟V10(ARM) 离线安装 MySQL

1. 系统版本 [rootga-sit-cssjgj-db-01u ~]# nkvers ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server release V10 (Lance)Kernel: 4.19.90-52.39.v2207.ky10.aarch64Build: Kylin Linux Advanced Server release V10 (SP3) /(La…

图像处理-Ch5-图像复原与重建

Ch5 图像复原 文章目录 Ch5 图像复原图像退化与复原(Image Degradation and Restoration)噪声模型(Noise Models)i.i.d.空间随机噪声(Generating Spatial Random Noise with a Specified Distribution)周期噪声(Periodic Noise)估计噪声参数(Estimating Noise Parameters) 在仅…

「下载」智慧园区及重点区域安全防范解决方案:框架统一规划,建设集成管理平台

智慧园区在基础设施建设和管理上仍存在诸多挑战。园区内场景碎片化、系统独立化、数据无交互、应用无联动等问题普遍存在&#xff0c;导致管理效率低下&#xff0c;安全隐患频发。 各安保系统如视频监控系统、报警管理系统、门禁管理系统等独立运行&#xff0c;数据不共享&…

LeetCode - Google 校招100题 第6天 回溯法(Backtracking) (8题)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144743505 LeetCode 合计最常见的 112 题: 校招100题 第1天 链表(List) (19题)校招100题 第2天 树(Tree) (21题)校招100题 第3天 动态规划(DP) (20题)

Elasticsearch检索之三:官方推荐方案search_after检索实现(golang)

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一&#xff1a;使用fromsize实现分页 快速掌握Elasticsearch检索之二&#xff1a;滚动查询(scrool)获取全量数据(golang) 1、search_after检索 在前面的文章介绍了fromsize的普通分页…

网易企业邮箱登陆:保障数据安全

网易企业邮箱是一款为企业提供安全可靠的电子邮件服务的工具。通过网易企业邮箱&#xff0c;企业可以实现员工之间的高效沟通和信息共享&#xff0c;同时保障数据的安全性。 企业邮箱的安全性是企业信息保护的重要组成部分。网易企业邮箱采用了多层加密技术&#xff0c;确保邮件…

3.银河麒麟V10 离线安装Nginx

1. 下载nginx离线安装包 前往官网下载离线压缩包 2. 下载3个依赖 openssl依赖&#xff0c;前往 官网下载 pcre2依赖下载&#xff0c;前往Git下载 zlib依赖下载&#xff0c;前往Git下载 下载完成后完整的包如下&#xff1a; 如果网速下载不到请使用网盘下载 通过网盘分享的文件…

Hive其十,优化和数据倾斜

目录 Hive优化 1、开启本地模式 2、explain分析SQL语句 3、修改Fetch操作 4、开启hive的严格模式【提高了安全性】 5、JVM重用 6、分区、分桶以及压缩 7、合理设置map和reduce的数量 合理设置map数量&#xff1a; 设置合理的reducer的个数 8、设置并行执行 9、CBO优…

uniapp通过v-if进行判断时,会出现闪屏?【已解决】

1.问题&#xff1a;按钮切换时&#xff0c;通过v-if来判断&#xff0c;会出现闪烁情况&#xff0c;影响用户体验 2.v-if 闪烁问题可能的原因 ‌条件切换频繁‌&#xff1a;如果 v-if 指令的条件在短时间内频繁切换&#xff0c;会导致元素不断被销毁和重新创建&#xff0c;从而…

ida的使用

一.ida的基本设置 在IDA的安装根目录下有许多文件夹&#xff0c;各个文件夹存储不同的内容 1.目录结构 cfg&#xff1a;包含各种配置文件&#xff0c;基本IDA配置文件ida.cfg,GUI配置文件idagui.cfg&#xff0c;文本模式用户界面配置文件idatui.cfg, idc&#xff1a;包含…

Faster R-CNN

文章目录 摘要Abstract1. 引言2. 框架2.1 RPN2.1.1 网络结构2.1.2 损失函数2.1.3 训练细节 2.2 训练过程 3. 创新点和不足3.1 创新点3.2 不足 参考总结 摘要 Faster R-CNN是针对Fast R-CNN缺点改进的目标检测模型。为了解决候选区域生成耗时长的问题&#xff0c;Faster R-CNN提…

嵌入式AI STM32部署卷积神经网络的魔法棒

基于STM32部署卷积神经网络控制设备方案-AI项目-STM32部署卷积神经网络方案-红外信号复制方案-轨迹识别 项目包含下述内容 硬件部分、PCB制板、BOM表文件等等 (Hardware)外壳、3D打印文件 (3D_print)软件程序、用于电子法棒的软件程序 AI Keil等等(Software)QT上位机动作识别…

GCP Cloud Observability 是什么,有什么使用场景

GCP Cloud Observability 是 Google Cloud Platform (GCP) 提供的一组工具和服务&#xff0c;用于监控、日志记录、追踪和调试应用程序和基础设施的健康和性能。通过收集和分析遥测数据&#xff08;如指标、日志和追踪信息&#xff09;&#xff0c;Cloud Observability 有助于理…

UE4_用户控件_2_按钮的动态效果

效果展示&#xff1a; 操作步骤&#xff1a; 1、新建一个触发Actor&#xff0c;更名为BP_EventTrigger。 这个蓝图类可以拖拽到场景中好多次&#xff0c;生成好多实例。但是我希望每次触发创建的用户控件都是不同的。添加Capsule Collision。 修改胶囊体半高和半径都为156 BP_…

Bert各种变体——RoBERTA/ALBERT/DistillBert

RoBERTa 会重复一个语句10次&#xff0c;然后每次都mask不同的15%token。丢弃了NSP任务&#xff0c;论文指出NSP任务有时甚至会损害性能。使用了BPE ALBERT 1. 跨层参数共享 可以共享多头注意力层的参数&#xff0c;或者前馈网络层的参数&#xff0c;或者全部共享。 实验结果…