当前位置: 首页 > news >正文

Doris(2):Doris编译部署

1 Doris编译

Apache Doris提供直接可以部署的版本压缩包:https://cloud.baidu.com/doc/PALO/s/Ikivhcwb5

也可以自行编译压缩包后使用(推荐)

1.1 使用 Docker 开发镜像编译(推荐)

这个是官方文档推荐的,可以非常方便顺利的编译源码,如果需要快速部署的,可以使用这种方式。这种方式的优点就是不用配置环境变量,也不用考虑各种版本问题,进入开发镜像系统后直接下载 doris 源码编译即可。

首先需要安装 Docker,Docker 在 Linux 下安装比较简单,这里不做介绍。

启动了 Docker 服务(systemctl status docker)以后,我们直接拉取镜像,开始编译 Doris。

下载Doris镜像

拉取Doris官方提供的Docker镜像,目前可用版本有:build-env、build-env-1.1、build-env-1.2

docker pull apache/doris:build-env-for-0.15.0

查看Docker镜像

docker images

注意:

针对不同的 Doris 版本,需要下载对应的镜像版本。从 Apache Doris 0.15 版本起,后续镜像版本号将与 Doris 版本号统一。

运行镜像

将容器中的maven下载的包保存到宿主机本地指定的文件中,避免重复下载,同时会将编译的Doris文件保存到宿主机本地指定的文件,方便部署

docker run -it -v /u01/.m2:/root/.m2 -v /u01/incubator-doris-DORIS-0.15-release/:/root/incubator-doris-DORIS-0.15-release/ apache/doris:build-env-for-0.15.0

开启之后, 就在容器内了

下载Doris的安装包

进入docker容器

cd /optwget https://mirrors.tuna.tsinghua.edu.cn/apache/doris/0.15.0-incubating/apache-doris-0.15.0-incubating-src.tar.gz

解压安装

tar -zxvf  apache-doris-0.15.0-incubating-src.tar.gz

开始编译

cd apache-doris-0.15.0-incubating-src
sh build.sh

注意:编译使用的jdk版本需要与部署环境的相同,不然会报异常

编译后导出到服务器

编译后文件在output目录中

#docker cp 容器:docker路径   本地路径
docker cp mystifying_swanson:/opt/apache-doris-0.15.0-incubating-src/output   /home/

2 安装部署

Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,我们建议 Doris 的部署遵循以下需求:

  • Linux 操作系统版本需求

Linux系统

版本

Centos

7.1及以上

Ubuntu

16.04及以上

  • 软件需求

软件

版本

Java

1.8及以上

GCC

7.3及以上

  • 开发测试环境

模块

CPU

内存

磁盘

网络

实例数量

Frontend

8核+

8GB+

SSD 或 SATA,10GB+ *

千兆网卡

1

Backend

8核+

16GB+

SSD 或 SATA,50GB+ *

千兆网卡

1-3 *

  • 生产环境

模块

CPU

内存

磁盘

网络

实例数量

Frontend

16核+

64GB+

SSD 或 RAID,100GB+ *

万兆网卡

1-5 *

Backend

16核+

64GB+

SSD 或 SATA,100GB+ *

万兆网卡

10-100 *

注意:

  • FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个 GB 不等。
  • BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 * 3(3副本)计算,然后再预留额外 40% 的空间用作后台 compaction 以及一些中间数据的存放。
  • 一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3 台机器各部署一个 BE 实例(而不是1台机器部署3个BE实例)。多个FE所在服务器的时钟必须保持一致(允许最多5秒的时钟偏差)
  • 测试环境也可以仅适用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟。
  • 所有部署节点关闭 Swap。

注意:FE节点的数量

  • FE 角色分为 Follower 和 Observer,(Leader 为 Follower 组中选举出来的一种角色,以下统称 Follower,具体含义见 元数据设计文档)。
  • FE 节点数据至少为1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
  • Follower 的数量必须为奇数,Observer 数量随意。
  • 根据以往经验,当集群可用性要求很高是(比如提供在线业务),可以部署 3 个 Follower 和 1-3 个 Observer。如果是离线业务,建议部署 1 个 Follower 和 1-3 个 Observer。

        通常我们建议 10 ~ 100 台左右的机器,来充分发挥 Doris 的性能(其中 3 台部署 FE(HA),剩余的部署 BE)

        当然,Doris的性能与节点数量及配置正相关。在最少4台机器(一台 FE,三台 BE,其中一台 BE 混部一个 Observer FE 提供元数据备份),以及较低配置的情况下,依然可以平稳的运行 Doris。

        如果 FE 和 BE 混部,需注意资源竞争问题,并保证元数据目录和数据目录分属不同磁盘。

  • Broker 部署

       Broker 是用于访问外部数据源(如 hdfs)的进程。通常,在每台机器上部署一个 broker 实例即可。

  • 网络需求

        Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口

注意:

  • 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
  • 部署前请确保各个端口在应有方向上的访问权限

3 资源规划

node1

node2

node3

FE(Leader

FE(Follower

FE(Follower

BE

BE

BE

BROKER

BROKER

BROKER

注意:因测试环境资源有限,FE和BE节点部署在相同服务器,生产环境建议分开

4 启动FE

4.1 配置环境变量

(1)拷贝 FE 部署文件到指定节点(node1)

将源码编译生成的 output 的fe文件夹拷贝到 FE 的节点/opt/apache-doris-0.15.0(路径自行选择)路径下

cp -r fe /opt/apache-doris-0.15.0/

(2)配置环境变量

vim /etc/profile

#DORIS_HOME
export DORIS_HOME=/opt/apache-doris-0.15.0
export PATH=:$DORIS_HOME/bin:$PATH

重新加载环境变量:

source /etc/profile

4.2 创建doris-mate

配置文件为 fe/conf/fe.conf。其中注意:meta_dir:元数据存放位置。默认在 fe/doris-meta/ 下。

需手动创建该目录

mkdir -p /opt/apache-doris-0.15.0/fe/doris-meta

配置fe/conf/fe.conf配置文件

vim conf/fe.confmeta_dir = /opt/apache-doris-0.15.0/fe/doris-meta

4.3 修改fe.conf中的JAVA_OPTS

fe.conf 中 JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上

4.4 修改ip绑定(可选)

如果机器有多个ip, 比如内网外网, 虚拟机docker等, 需要进行ip绑定, 以便在配置集群时可以正确识别

修改fe服务的配置文件(ip地址根据环境实际ip进行修改)

vim /opt/apache-doris-0.15.0/fe/conf/fe.confpriority_networks = 192.168.222.0/24

4.5 将安装目录分发到另外两台节点

scp -r /opt/apache-doris-0.15.0/ 192.168.222.144:/opt/scp -r /opt/apache-doris-0.15.0/ 192.168.222.145:/opt/

4.6 启动FE

三台机器分别启动

sh /opt/apache-doris-0.15.0/fe/bin/start_fe.sh --daemon

日志默认存放在 fe/log/ 目录下

5 配置BE

5.1 配置be节点

拷贝BE部署文件到指定节点(node1)

将源码编译生成的 output 下的 be 文件夹拷贝到 BE 的节点/opt/apache-doris-0.15.0路径下

cp -r be /opt/apache-doris-0.15.0/

5.2 创建storage_root_path, 并配置be.conf

配置文件为 be/conf/be.conf。主要是配置 storage_root_path:数据存放目录。默认在be/storage下,需要手动创建该目录。多个路径之间使用 ; 分隔(最后一个目录后不要加 ;)

mkdir -p /opt/apache-doris-0.15.0/be/storage1 /opt/apache-doris-0.15.0/be/storage2

进入be下修改be.conf配置文件

vim conf/be.conf storage_root_path = /opt/apache-doris-0.15.0/be/storage1,10;/opt/apache-doris-0.15.0/be/storage2

6 添加BE

6.1使用mysql连接

删除操作系统自带的mysql库文件(node1)

rpm -qa | grep mariadbrpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64

安装mysql-client

下载mysql-client的rpm上传到服务器节点/opt/mysql-client,当然也可以用yum命令安装

进入/opt/mysql-client进行安装

rpm -ivh *

连接node1服务器上的mysql实例(默认端口9030,默认没有密码)

mysql -uroot -h 192.168.222.143 -P 9030

登陆后,可以通过以下命令修改 root 密码

SET PASSWORD FOR 'root' = PASSWORD('123456');

使用Navicat客户端登录

6.2 添加be

BE 节点需要先在 FE 中添加,才可加入集群(node1)

mysql -uroot -h 192.168.222.143 -P 9030 -p输入密码:123456

登录后添加BE节点port为be上的heartbeat_service_port端口,默认9050

ALTER SYSTEM ADD BACKEND "192.168.222.143:9050";ALTER SYSTEM ADD BACKEND "192.168.222.144:9050";ALTER SYSTEM ADD BACKEND "192.168.222.145:9050";

查看BE状态,alive必须为true

SHOW PROC '/backends';

查看BE运行情况。如一切正常,isAlive列应为 true,现阶段都是异常,BE还未启动。

6.3 修改可打开文件数

命令如下:

ulimit -n 65535

上述方式在重启系统后失效

或者修改配置文件: /etc/security/limits.conf, 添加

* soft nofile 65535 
* hard nofile 65535 
* soft nproc 65535 
* hard nproc 65535

这种方法需要重启机器才能生效(所有BE节点都需要进行配置)

否则启动不成功, 日志报错

6.4 修改ip绑定

如果机器有多个ip, 比如内网外网, 虚拟机docker等, 需要进行ip绑定, 以便在配置集群时可以正确识别

修改fe服务的配置文件(ip地址根据环境实际ip进行修改)

vim /opt/apache-doris-0.15.0/be/conf/be.confpriority_networks = 192.168.222.0/24

6.5 将安装目录分发到另外两台节点

scp -r /opt/apache-doris-0.15.0/be 192.168.222.144:/opt/apache-doris-0.15.0scp -r /opt/apache-doris-0.15.0/be 192.168.222.145:/opt/apache-doris-0.15.0

6.6 启动BE

三台机器分别启动

sh /opt/apache-doris-0.15.0/be/bin/start_be.sh --daemon

日志默认存放在 fe/log/ 目录下

6.7 查看FE 和 BE

  • 在mysql终端中
show proc '/frontends';

show proc '/backends';

查看 BE 运行情况。如一切正常,isAlive 列应为 true

  • 通过前端界面访问FE

http://192.168.222.143:8030/login

 注意:密码和mysql设置的密码一样

http://192.168.222.143:8030/system?path=//frontends

  • 通过前端界面访问BE:

http://192.168.222.143:8030/backend

http://192.168.52.143:8030/system?path=//backends

6.8 添加FS_BROKER(可选)

BROKER以插件的形式,独立于Doris的部署,建议每个PE和BE节点都部署一个Broker,Broker是用于访问外部数据源的进程,默认是HDFS,上传编译好的hdfs_broker

6.8.1 配置broker节点

拷贝源码 fs_broker 的 output 目录下的相应 Broker 目录到需要部署的所有节点上。建议和 BE 或者 FE 目录保持同级。

进入之前的docker编译fs_broker

sh /opt/apache-doris-0.15.0-incubating-src/fs_brokers/apache_hdfs_broker/build.sh

拷贝output目录到本地节点

docker cp 9330fa7d63d6:/opt/apache-doris-0.15.0-incubating-src/fs_brokers/apache_hdfs_broker/output/apache_hdfs_broker /home/

6.8.2 将安装目录分发到另外两台节点

进入/opt/apache-doris-0.15.0目录

scp  -r apache_hdfs_broker/ 192.168.222.143:/opt/apache-doris-0.15.0/scp  -r apache_hdfs_broker/ 192.168.222.144:/opt/apache-doris-0.15.0/scp  -r apache_hdfs_broker/ 192.168.222.144:/opt/apache-doris-0.15.0/

6.8.3 启动 Broker

三台机器分别启动

sh /opt/apache-doris-0.15.0/apache_hdfs_broker/bin/start_broker.sh --daemon

6.8.4 添加broker节点

使用mysql客户端访问pe,添加broker节点

mysql -uroot -h 192.168.222.143 -P 9030 -p输入密码:123456

要让 Doris 的 FE 和 BE 知道 Broker 在哪些节点上,通过 sql 命令添加 Broker 节点列表

ALTER SYSTEM ADD BROKER broker_name "192.168.222.143:8000","192.168.222.144:8000","192.168.222.145:8000";

其中 host 为 Broker 所在节点 ip;port 为 Broker 配置文件中的 broker_ipc_port。

SHOW PROC "/brokers";

注:在生产环境中,所有实例都应使用守护进程启动,以保证进程退出后,会被自动拉起,如 Supervisor (opens new window)。如需使用守护进程启动,在 0.9.0 及之前版本中,需要修改各个 start_xx.sh 脚本,去掉最后的 & 符号。从 0.10.0 版本开始,直接调用 sh start_xx.sh 启动即可。

6.9 扩容缩容

Doris 可以很方便的扩容和缩容 FE、BE、Broker 实例

6.9.1 FE 扩容和缩容

可以通过将 FE 扩容至 3 个以上节点来实现 FE 的高可用。

FE 节点的扩容和缩容过程,不影响当前系统运行

增加 FE 节点

FE 分为 Leader,Follower 和 Observer 三种角色。 默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。其中 Leader 和 Follower 组成一个 Paxos 选择组,如果 Leader 宕机,则剩下的 Follower 会自动选出新的 Leader,保证写入高可用。Observer 同步 Leader 的数据,但是不参加选举。如果只部署一个 FE,则 FE 默认就是 Leader。

第一个启动的 FE 自动成为 Leader。在此基础上,可以添加若干 Follower 和 Observer。

添加 Follower 或 Observer。使用 mysql-client 连接到已启动的 FE,并执行:

ALTER SYSTEM ADD FOLLOWER "ip:port";
或
ALTER SYSTEM ADD OBSERVER "ip:port";

其中host为Follower或Observer所在节点 ip,port 为其配置文件 fe.conf 中的 edit_log_port。

配置及启动 Follower或Observer。Follower 和 Observer 的配置同 Leader 的配置。

第一次启动时,需执行以下命令:

./bin/start_fe.sh --helper host:port --daemon

其中 host 为 Leader 所在节点 ip, port 为 Leader 的配置文件 fe.conf 中的 edit_log_port。--helper 参数仅在 follower 和 observer 第一次启动时才需要。

查看 Follower 或 Observer 运行状态。使用 mysql-client 连接到任一已启动的 FE,并执行:SHOW PROC '/frontends'; 可以查看当前已加入集群的 FE 及其对应角色。

FE 扩容注意事项:

  • Follower FE(包括 Leader)的数量必须为奇数,建议最多部署 3 个组成高可用(HA)模式即可
  • 当 FE 处于高可用部署时(1个 Leader,2个 Follower),我们建议通过增加 Observer FE 来扩展 FE 的读服务能力。当然也可以继续增加 Follower FE,但几乎是不必要的
  • 通常一个 FE 节点可以应对 10-20 台 BE 节点。建议总的 FE 节点数量在 10 个以下。而通常 3 个即可满足绝大部分需求
  • helper 不能指向 FE 自身,必须指向一个或多个已存在并且正常运行中的 Master/Follower FE

删除 FE 节点

使用以下命令删除对应的 FE 节点:

ALTER SYSTEM DROP FOLLOWER[OBSERVER] "fe_host:edit_log_port";

FE 缩容注意事项:

  • 删除 Follower FE 时,确保最终剩余的 Follower(包括 Leader)节点为奇数

操作演示

使用mysql客户端访问pe,添加broker节点

mysql -uroot -h 192.168.222.143 -P 9030 -p输入密码:123456

将node2节点添加为FOLLOWER

ALTER SYSTEM ADD FOLLOWER "192.168.222.144:9010";

将node3节点添加为OBSERVER

ALTER SYSTEM ADD OBSERVER "192.168.222.145:9010";

分别停止三台节点的fe服务(三台节点依次停止)

/opt/apache-doris-0.15.0/fe/bin/stop_fe.sh

启动node1节点

sh /opt/apache-doris-0.15.0/fe/bin/start_fe.sh --daemon

启动node2节点(指定leader节点的位置)

sh /opt/apache-doris-0.15.0/fe/bin/start_fe.sh --helper 192.168.222.143:9010 --daemon

启动node3节点(指定leader节点的位置)

sh /opt/apache-doris-0.15.0/fe/bin/start_fe.sh --helper 192.168.222.143:9010 --daemon

查看fe节点列表

SHOW PROC '/frontends';

6.9.2 BE 扩容和缩容

用户可以通过 mysql 客户端登陆 Master FE。

BE 节点的扩容和缩容过程,不影响当前系统运行以及正在执行的任务,并且不会影响当前系统的性能。数据均衡会自动进行。根据集群现有数据量的大小,集群会在几个小时到1天不等的时间内,恢复到负载均衡的状态。集群负载情况,可以参见 Tablet 负载均衡文档。

增加 BE 节点

BE 节点的增加方式同 BE 部署 一节中的方式,通过 ALTER SYSTEM ADD BACKEND 命令增加 BE 节点。

BE 扩容注意事项:

BE 扩容后,Doris 会自动根据负载情况,进行数据均衡,期间不影响使用

删除 BE 节点

删除 BE 节点有两种方式:DROP 和 DECOMMISSION

DROP 语句如下:

ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port";

注意事项:

DROP BACKEND 会直接删除该 BE,并且其上的数据将不能再恢复!!!所以我们强烈不推荐使用 DROP BACKEND 这种方式删除 BE 节点。当你使用这个语句时,会有对应的防误操作提示。

DECOMMISSION 语句如下:

ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";

DECOMMISSION 命令说明:

该命令用于安全删除 BE 节点。命令下发后,Doris 会尝试将该 BE 上的数据向其他 BE 节点迁移,当所有数据都迁移完成后,Doris 会自动删除该节点。

该命令是一个异步操作。执行后,可以通过 SHOW PROC '/backends'; 看到该 BE 节点的 isDecommission 状态为 true。表示该节点正在进行下线。

该命令不一定执行成功。比如剩余 BE 存储空间不足以容纳下线 BE 上的数据,或者剩余机器数量不满足最小副本数时,该命令都无法完成,并且 BE 会一直处于 isDecommission 为 true 的状态。

DECOMMISSION 的进度,可以通过 SHOW PROC '/backends'; 中的 TabletNum 查看,如果正在进行,TabletNum 将不断减少。

该操作可以通过:

CANCEL DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";

命令取消。取消后,该 BE 上的数据将维持当前剩余的数据量。后续 Doris 重新进行负载均衡

6.9.3 Broker 扩容缩容

Broker 实例的数量没有硬性要求。通常每台物理机部署一个即可。Broker 的添加和删除可以通过以下命令完成:

ALTER SYSTEM ADD BROKER broker_name "broker_host:broker_ipc_port"; ALTER SYSTEM DROP BROKER broker_name "broker_host:broker_ipc_port"; ALTER SYSTEM DROP ALL BROKER broker_name;

Broker 是无状态的进程,可以随意启停。当然,停止后,正在其上运行的作业会失败,重试即可。

相关文章:

Doris(2):Doris编译部署

1 Doris编译 Apache Doris提供直接可以部署的版本压缩包:https://cloud.baidu.com/doc/PALO/s/Ikivhcwb5 也可以自行编译压缩包后使用(推荐) 1.1 使用 Docker 开发镜像编译(推荐) 这个是官方文档推荐的,…...

使用MyBatis实现简单查询

文章目录一,创建数据库与表(一)在Navicat里创建MySQL数据库testdb(二)创建用户表 - t_user(三)在用户表里插入3条记录二,案例演示MyBatis基本使用(一)创建Mav…...

C指针(*point)[4]和char *point[4]

char (*point)[4] // 数组指针。 a[3][4] // 先申明二维数组,用它来指向这个二维数组. char *point[4] // 指针数组。 a[4][5] // 一连串的指针. char (*point)[4] // 一个指针,指向有4个元素的数组;占内存大小为 4 个字节 ch…...

【Bard】谷歌的人工智能工具—Bard初体验

文章目录一、Bard介绍二、Bard体验1、加入Bard的候补名单2、登入Bard篇3、使用Bard篇(1)提供三种预选方式✨(2)创作生成各类文案(3)无生成图画能力(4)支持语音转文本输入✨&#xff…...

2022国赛30:windows脚本题解析

大赛试题内容: ( 九) ) 脚本 【任务描述】 为了减少重复性任务的工作量,节省人力和时间,请采用脚本,实现快速批量的操作。 1.在 windows4 上编写 C:\CreateFile.ps1 的 powershell 脚本,创建20 个文件 C:\test\File00.txt 至 C:\test\File19.txt,如果文件存在,则首先删除…...

Excel常用函数公式20例

目录 一、【IF函数条件判断】 二、【多条件判断】 三、【条件求和】 四、【多条件求和】 五、【条件计数】 六、【多条件计数】 七、【条件查找】 八、【多条件查找】 九、【计算文本算式】 十、【合并多个单元格内容】 十一、【合并带格式的单元格内容】 十二、…...

233:vue+openlayers绘制渐变填充色的圆形、多边形

第233个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayer中绘制带有渐变填充色的圆形、多边形。这里用canvas的方式去渲染,用到了DEVICE_PIXEL_RATIO,设备上的物理像素与设备无关像素 (dips) 之间的比率 (window.devicePixelRatio)。 直接复制下面的 vue+openlayer…...

Flink的窗口机制

窗口机制 tumble(滚动窗口) hop(滑动窗口) session(会话窗口) cumulate(渐进式窗口) Over(聚合窗口) 滚动窗口(tumble) 概念 滚…...

了解分布式Session

大家好,我这名CRUD工程师又来了,最近我的一个同事突然在看分布式Seesion的问题,然后我们两个也是互相讨论了一下,今天我就想着把分布式Session的知识点好好的梳理一下。 在很多系统中,用户的登录功能都是用Session去实…...

仿真创新大赛—国三省一 智能鱼缸(proteus)(stm32)

⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩去年下半年参加了全国仿真创新大赛,也是取得了国赛三等奖,省赛一等奖的好成绩。 ⏩本篇文章对我们的参赛作品《智能鱼缸》做一个简介。 ⏩感…...

【ARMv8 编程】A64 数据处理指令——位域字节操作指令

有些指令将字节、半字或字扩展到寄存器大小,可以是 X 或 W。这些指令存在于有符号(SXTB、SXTH、SXTW)和无符号(UXTB、UXTH)变体中,并且是适当的位域操作指令。 这些指令的有符号和无符号变体都将字节、半字…...

ctfshow 愚人杯菜狗杯部分题目(flasksession伪造ssti)

目录 <1>愚人杯 (1) easy_signin (2) easy_ssti(无过滤ssti) (3) easy_flask(flash-session伪造) (4) easy_php(C:开头序列化数据) <2> 菜狗杯 (1) 抽老婆(flask_session伪造) (2) 一言既出&#xff0c;驷马难追(intval) (3) 传说之下&#xff08;js控制台&…...

linux拓展笔记——【补充学习知识点】

文章目录1. ./configure --prefix中的prefix详解1. ./configure --prefix中的prefix详解 源码的安装一般由3个步骤组成&#xff1a;配置(configure)、编译(make)、安装(makeinstall)。 Configure是一个可执行脚本&#xff0c;在待安装的源码路径下使用命令./configure–help输…...

为何银行各岗位之间的薪酬差别如此之大?

银行里的职位种类相对较多&#xff0c;观观整理了5个最常见的职位&#xff0c;看一下你要申请的职位薪资水平到底是怎样的&#xff1f;根据如信银行考试中心发布&#xff1a; 1、客户经理岗 客户经理分为对公客户经理和对私客户经理&#xff0c;他们的主要工作不同&#xff0…...

TensorFlow 深度学习第二版:1~5

原文&#xff1a;Deep Learning with TensorFlow Second Edition 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xff0c;只…...

微前端micro-app的使用

演示效果 子应用的项目 基应用嵌入子应用效果图 目录 前言 一、微前端是什么&#xff1f; 它主要解决了两个问题&#xff1a; 二、使用步骤 1.安装依赖 2.在入口处引入 3.子应用的路由&#xff08;&#xff09; 4.分配一个路由给子应用&#xff08;重要&#xff09;&#xff0…...

【JUC】Java内存模型之JMM

【JUC】Java内存模型之JMM 文章目录【JUC】Java内存模型之JMM1. 概念2. JMM三大特性2.1 可见性2.2 原子性2.3 有序性3. 多线程对变量的读写过程4. 先行发生原则——happens-before4.1 happens-before八条规则4.1.1 次序规则4.1.2 锁定规则4.1.3 volatile变量规则4.1.4 传递规则…...

Win11快速打开便签和使用技巧分享

Win11快速打开便签和使用技巧分享。Win11系统中为用户提供了一个非常实用的系统组件&#xff0c;就是便签功能&#xff0c;使用这个功能可以帮助我们便捷的进行一些重要内容的记录。那么如何去开启开启这个程序来使用呢&#xff1f;来看看以下的详情分享吧。 详细分享&#xff…...

CSS:横向导航栏

横向导航栏&#xff08;盗版导航栏&#xff0c;B站仿写。&#xff09; 原视频链接 <html><head><title>demo</title><style>*{margin: 0;padding: 0;list-style: none;text-decoration: none;}body{display: flex;justify-content: center;a…...

视频动态库测试及心得

视频动态库测试及心得 这几天一直在弄动态库测试&#xff0c;h给的写好的动态库--预处理模块的库。视频处理项目一部分&#xff0c;需要连接实际情况测试。 需求&#xff1a; 1.把实际相机连接到&#xff0c;并读取实时数据流&#xff0c;保存到双循环链表里面; 2.测试背景建模…...

陶泓达:4.18午间欧盘黄金原油最新精准操作建议!

黄金方面&#xff1a; 黄金消息面解析&#xff1a;周一&#xff08;4月17日&#xff09;美市盘中&#xff0c;美国公布的4月纽约联储制造业指数和4月NAHB房产市场指数均超出预期&#xff0c;提振了美联储在5月继续加息的预期。数据公布之后&#xff0c;美元指数加速上扬&#x…...

环境变量相关知识

目录 目录 谢谢你的阅读&#xff0c;这是对我最大的鼓舞 先说结论&#xff1a; 开始论述&#xff1a; 让我们举个例子 相关指令 创建本地变量 创建环境变量 方法一&#xff1a; 方法二&#xff1a; 删除环境变量 子进程中也有环境变量 第一种&#xff1a; 第二种 …...

如何快速入门ChatGPT

作为一个AI模型&#xff0c;ChatGPT并不需要像人一样“学习”&#xff0c;它已经通过大量的训练数据和算法进行了预训练&#xff0c;可以回答广泛的问题。 然而&#xff0c;如果你想学习如何使用ChatGPT来进行对话或者问答&#xff0c;以下是一些建议&#xff1a; 一、了解Ch…...

Akka定时任务schedule()方法

Akka定时任务schedule()方法 文章目录Akka定时任务schedule()方法什么是Akka定时任务schedule()方法&#xff1f;如何使用Akka定时任务schedule()方法&#xff1f;如何在actor外部获取Scheduler对象为什么需要提供一个隐式的ExecutionContext对象&#xff0c;用于执行定时任务&…...

Python实现处理和分析大规模文本数据集,包括数据清洗、标注和预处理

处理和分析大规模文本数据集,包括数据清洗、标注和预处理,是自然语言处理(NLP)中非常重要的一步。Python 是一种非常流行的编程语言,拥有丰富的 NLP 库和工具,可以帮助我们完成这些任务。以下是一个简单的实现示例,包括数据清洗、标注和预处理: import re import nltk…...

灌区量测水系统

1)灌区量测水 灌区量测水是水资源管理的基础&#xff0c;是推进节水农业和水价改革的重要手段。常规在主要水闸处&#xff0c;监测闸前和闸后水位及闸门开启状态(闸位)&#xff0c;通过实时监测数据&#xff0c;计算过闸流量。要实现全灌区水资源动态配置、精准灌溉&#xff0…...

3.3 泰勒公式

学习目标&#xff1a; 复习微积分基础知识。泰勒公式是微积分的一个重要应用&#xff0c;因此在学习泰勒公式之前&#xff0c;需要复习微积分的基本概念和技能&#xff0c;包括函数的导数和微分、极限、定积分等。可以参考MIT的微积分课程进行复习和加强。 学习泰勒级数和泰勒…...

ubuntu中通过vscode编译调试ORB-SLAM3

为了在orb-slam3的基础上进行二次开发&#xff0c;这几天花了不少精力&#xff0c;终于搞懂怎么在ubuntu系统中像windows里visual studio中一样方便的打断点调试了&#xff0c;在这里把整个过程再重新梳理一下。 1 首先从安装ubuntu 22.04开始 因为是从实验室毕业先辈那里继承…...

阿里版 ChatGPT 突然上线!

转自:纯洁的微笑 其实早本月初&#xff0c;就传出过不少阿里要推出类ChatGPT的消息。 前几天率先流出的天猫精灵“鸟鸟分鸟”脱口秀版GPT&#xff0c;就是基于大模型的“压缩版”&#xff0c;已经以其惊艳表现吸引了众目光。 如今“原版大菜”上桌&#xff0c;自然一点即着&a…...

《Kubernetes部署篇:Ubuntu20.04基于containerd部署kubernetes1.24.12单master集群》

一、架构图 如下图所示&#xff1a; 二、环境信息 主机名K8S版本系统版本内核版本IP地址备注k8s-master-621.24.12Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.62master节点k8s-worker-631.24.12Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.63worker节点k8s-worker-641…...