Doris的安装

news2024/10/7 20:34:59

Doris的安装


文章目录

  • Doris的安装
    • 写在前面
      • Linux 操作系统版本需求
      • 软件需求
      • 操作系统安装要求
        • 设置系统最大打开文件句柄数
        • 时钟同步
        • 关闭交换分区(swap)
      • 开发测试环境
      • 生产环境
    • 安装
      • 下载安装包
      • 默认端口
      • 集群部署
      • 前置准备
      • 安装部署FE
      • 安装部署BE
      • 在 **FE** 中添加所有 **BE** 节点(node01节点执行命令)
        • 安装 MySQL Client
        • 使用 MySQL Client 连接 FE
        • 添加 BE
        • 查看 BE 状态
        • 启动BE
      • 部署 FS_Broker(可选)
    • 扩容和缩容
      • FE的扩容和缩容
      • BE的扩容和缩容
      • Broker的扩容缩容


写在前面

官方建议:为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,建议 Doris 的部署遵循以下需求:

Linux 操作系统版本需求

Linux 系统版本
CentOS7.1 及以上
Ubuntu16.04 及以上

软件需求

软件版本
Java1.8 及以上
GCC4.8.2 及以上

操作系统安装要求

设置系统最大打开文件句柄数

vi /etc/security/limits.conf 
* soft nofile 65536
* hard nofile 65536

时钟同步

Doris 的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。

关闭交换分区(swap)

Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区

开发测试环境

模块CPU内存磁盘网络实例数量
Frontend8核+8GB+SSD 或 SATA,10GB+ *千兆网卡1
Backend8核+16GB+SSD 或 SATA,50GB+ *千兆网卡1-3 *

生产环境

模块CPU内存磁盘网络实例数量(最低要求)
Frontend16核+64GB+SSD 或 RAID 卡,100GB+ *万兆网卡1-3 *
Backend16核+64GB+SSD 或 SATA,100G+ *万兆网卡3 *

安装

下载安装包

低版本(V1.0之前的版本):安装 Doris,需要先通过源码编译,主要有两种方式:使用 Docker 开发镜像编译(推荐)、直接编译。

直接编译的方式,可以参考官网:https://doris.apache.org/zh-CN/installing/compilation.html

https://doris.apache.org/zh-CN/docs/dev/install/source-install/compilation

高版本:直接下载官网的tar包即可,无需再手动编译;本文安装的是doris-1.1.5版本

V1.1.5下载地址如下:

https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.5-rc02/

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oz68wkWv-1676171317565)(1.png)]

选择下载上图中框选的两个tar包

默认端口

实例名称端口名称默认端口通讯方向说明
BEbe_port9060FE --> BEBE 上 thrift server 的端口,用于接收来自 FE 的请求
BEwebserver_port8040BE <–> BEBE 上的 http server 的端口
BEheartbeat_service_port9050FE --> BEBE 上心跳服务端口(thrift),用于接收来自 FE 的心跳
BEbrpc_port8060FE <–> BE, BE <–> BEBE 上的 brpc 端口,用于 BE 之间通讯
FEhttp_port8030FE <–> FE,用户 <–> FEFE 上的 http server 端口
FErpc_port9020BE --> FE, FE <–> FEFE 上的 thrift server 端口,每个fe的配置需要保持一致
FEquery_port9030用户 <–> FEFE 上的 mysql server 端口
FEedit_log_port9010FE <–> FEFE 上的 bdbje 之间通信用的端口
Brokerbroker_ipc_port8000FE --> Broker, BE --> BrokerBroker 上的 thrift server,用于接收请求

当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。

部署前请确保各个端口在应有方向上的访问权限。

集群部署

主机 1主机 2主机 3
FE(LEADER)FE(FOLLOWER)FE(OBSERVER)
BEBEBE
BROKERBROKERBROKER

生产环境建议 FE 和 BE 分开。

前置准备

  • 创建目录作为doris的安装目录
[whybigdata@node01 ~]# mkdir /opt/module/doris-1.1.5
  • 修改可打开文件数(每个节点都要修改
[whybigdata@node01 ~]# sudo vim /etc/security/limits.conf
*	soft nofile 65535
*	hard nofile 65535
*	soft nproc 65535
*	hard nproc 65535

我们可以通过ulimit -a命令查看具体值

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Fa39fNq-1676171317567)(2.png)]

修改之后:从左到右四列的表示含义:需要限制的用户或用户组、类型(软|硬限制)、限制值的对象、限制值

注意:一般情况下,软限制(数值)<=硬限制

重启永久生效,也可以用 ulimit -n 65535 临时生效。

安装部署FE

  • 创建 fe 元数据存储的目录
[whybigdata@node01 ~]# mkdir /opt/module/doris-1.1.5/doris-meta

注意:此处如果没有提前创建该目录(配置文件中指定元数据路径),则启动fe后执行 jps 或者 ps –ef | grep doris 或者 ps –ef | grep fe 都找不到相应的进程。

关于这个error,可以在/opt/module/doris-1.1.5/fe/log目录下的 fe.log,在最后面可以看到这个error的原因是:不存在/opt/module/doris-1.1.5/doris-meta这个目录。如下图所示:

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YQfT3e2X-1676171317567)(3.png)]

  • 下载的tar包上传到Linux 中
  • 解压fe的tar包,并重命名
[whybigdata@node01 software]# tar ./apache-doris-fe-1.1.5-bin.tar.gz -C /opt/module/doris-1.1.5/
[whybigdata@node01 doris-1.1.5]# mv apache-doris-fe-1.1.5 fe
  • 修改配置文件

fe.conf文件:位于fe安装目录下的conf目录

[whybigdata@node01 ~]# vim /opt/module/doris-1.1.5/fe/conf/fe.conf 

#配置文件中指定元数据路径: 注意这个文件夹要自己创建
meta_dir = /opt/module/doris-1.1.5/doris-meta
#修改绑定 ip(每台机器修改成自己的 ip) 
priority_networks = 192.168.10.131/24 
  • 分发集群
[whybigdata@node01 app]# for i in 2 3 
> do
> scp -r /opt/module/doris-1.1.5 node0$i:/opt/module/	
> done
  • 启动:进入到fe的bin目录下执行
[whybigdata@node01 bin]# ./start_fe.sh --daemon

生产环境强烈建议单独指定目录不要放在 Doris 安装目录下,最好是单独的磁盘(如果有 SSD 最好)。 如果机器有多个 ip, 比如内网外网, 虚拟机 docker 等, 需要进行 ip 绑定,才能正确识别。 JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。

  • 查看前端页面

http://node01:8030

注意:账号是whybigdata,且默认密码为空

安装部署BE

  • 创建 BE 数据存放目录(每个节点
[whybigdata@node01 ~]# mkdir /opt/module/doris-1.1.5/doris-storage1 
[whybigdata@node01 ~]# mkdir /opt/module/doris-1.1.5/doris-storage2
  • 下载的tar包上传到 Linux 中
  • 解压be的tar包,并重命名
[whybigdata@node01 software]# tar ./apache-doris-be-1.1.5-bin-x86_64.tar.gz -C /opt/module/doris-1.1.5/
[whybigdata@node01 doris-1.1.5]# mv apache-doris-be-1.1.5 be
  • 进入到be的conf目录下修改配置文件(每个节点)
[whybigdata@node01 conf# vim be.conf  

#配置文件中指定数据存放路径: 
storage_whybigdata_path = /opt/module/doris-1.1.5/doris- storage1;/opt/module/doris-1.1.5/doris-storage2
#修改绑定 ip(每台机器修改成自己的 ip) 
priority_networks = 192.168.10.131/24 

注意:

  • storage_whybigdata_path 默认在 be/storage 下,需要手动创建该目录。多个路径之间使用英文状态的分号;分隔(最后一个目录后不要加)。

  • 可以通过路径区别存储目录的介质,HDD 或 SSD。可以添加容量限制在每个路径的末尾,通过英文状态逗号,隔开,如:

    storage_whybigdata_path=/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,10;/home/disk2/doris           
    

说明:

  • /home/disk1/doris.HDD,50,表示存储限制为 50GB,HDD;
  • /home/disk2/doris.SSD,10,存储限制为 10GB,SSD;
  • /home/disk2/doris,存储限制为磁盘最大容量,默认为 HDD
  • 如果机器有多个 IP, 比如内网外网, 虚拟机 docker 等, 需要进行 IP 绑定,才能正确识别。
  • 分发集群

将node01节点下的be分发到其他两台机器上

FE 中添加所有 BE 节点(node01节点执行命令)

因为FE和BE两个都是单独的个体,所以他俩相互之间还不认识,所以BE 节点需要先在FE 中添加,才可加入集群。然后我们通过mysql的客户端将他们建立起联系,即使用 mysql-client 连接到 FE。

安装 MySQL Client

此处默认已经安装了mysql客户端,最主要的就是以下的安装包

mysql-community-client-5.7.28-1.el7.x86_64.rpm
mysql-community-common-5.7.28-1.el7.x86_64.rpm
mysql-community-libs-5.7.28-1.el7.x86_64.rpm

使用 MySQL Client 连接 FE

[whybigdata@node01 doris-1.1.5]# mysql -h node01 -P 9030 -uwhybigdata

前面已经说过,默认 whybigdata用户 无密码,通过以下命令修改 whybigdata 密码。

mysql> SET PASSWORD FOR 'whybigdata' = PASSWORD('000000');          
  • fe启动完成后可以查看fe的运行状态
mysql> SHOW PROC '/frontends';

添加 BE

mysql> ALTER SYSTEM ADD BACKEND "node01:9050"; 
vmysql> ALTER SYSTEM ADD BACKEND "node02:9050"; 
mysql> ALTER SYSTEM ADD BACKEND "node03:9050";

查看 BE 状态

mysql> SHOW PROC '/backends';     

这里可以在末尾加\G,即: show proc '/backends'\G; 来更好显示方便查看。

启动BE

进入be安装目录下的bin目录,启动 BE(每个节点)

[whybigdata@node01 bin]# ./start_be.sh --daemon
  • 启动后再次查看BE的节点
[whybigdata@node01 ~]# mysql -h node01 -P 9030 -uwhybigdata

mysql> SHOW PROC '/backends'; 

Alive 为 true 表示该 BE 节点存活。

部署 FS_Broker(可选)

Broker 以插件的形式,独立于 Doris 部署。如果需要从第三方存储系统导入数据,需要部署相应的 Broker,默认提供了读取 HDFS、百度云 BOS 及 Amazon S3 的 fs_broker。fs_broker 是无状态的,建议每一个 FE 和 BE 节点都部署一个 Broker。

高版本Broker不用手动编译安装,直接启动就可以!!!

  • 启动 Broker
[whybigdata@node01 doris-1.1.5]# /opt/module/doris-1.1.5/fe/apache_hdfs_broker/bin/start_broker.sh --daemon 
  • 使用 mysql-client 连接启动的 FE,执行以下命令:
[whybigdata@node01 doris-1.1.5]# mysql -h node01 -P 9030 -uwhybigdata

mysql> ALTER SYSTEM ADD BROKER broker_name "node01:8000","node02:8000","node03:8000";

当然你也可以一个个的加,并且 broker_name 这只是一个名字,可以自己随意取

  • 查看 Broker 状态

使用 mysql-client 连接任一已启动的 FE,执行以下命令查看 Broker 状态:

mysql> SHOW PROC "/brokers";  

扩容和缩容

FE的扩容和缩容

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

使用 MySQL 登录客户端后,可以使用 sql 命令查看 FE 状态,目前就一台 FE

[whybigdata@node01 doris-1.1.5]# mysql -h node01 -P 9030 -uwhybigdata -p 
mysql> SHOW PROC '/frontends'\G;


*************************** 1. row ***************************
             Name: 192.168.10.131_9010_1661510658077
               IP: 192.168.10.131
         HostName: node01
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: true
        ClusterId: 1133836578
             Join: true
            Alive: true
ReplayedJournalId: 2472
    LastHeartbeat: 2023-01-06 10:17:18
         IsHelper: true
           ErrMsg: 
          Version: 1.1.1-rc03-2dbd70bf9
 CurrentConnected: Yes
1 row in set (0.06 sec)
  • 添加FE的新节点:

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

  • 如果只部署一个 FE,则 FE 默认就是 Leader。在此基础上,可以添加若干 Follower 和 Observer。
mysql> ALTER SYSTEM ADD FOLLOWER "node02:9010"; 
mysql> ALTER SYSTEM ADD OBSERVER "node03:9010";
  • 在node02和node03上分别启动FE节点
[whybigdata@node01 doris-1.1.5]# /opt/module/doris-1.1.5/fe/bin/start_fe.sh --helper  node01:9010 --daemon

注意,如果是第一次添加的话,一定要加这两个参数 --helper node01:9010

此时你再去查看FE的状态就发现有3台啦

mysql> SHOW PROC '/frontends'\G;
*************************** 1. row ***************************
             Name: 192.168.10.132_9010_1661490723344
               IP: 192.168.10.132
         HostName: node02
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 0
          RpcPort: 0
             Role: FOLLOWER
         IsMaster: false
        ClusterId: 1133836578
             Join: false
            Alive: false
ReplayedJournalId: 0
    LastHeartbeat: NULL
         IsHelper: true
           ErrMsg: java.net.ConnectException: Connection refused (Connection refused)
          Version: NULL
 CurrentConnected: No
*************************** 2. row ***************************
             Name: 192.168.10.133_9010_1661490727316
               IP: 192.168.10.133
         HostName: node03
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 0
          RpcPort: 0
             Role: OBSERVER
         IsMaster: false
        ClusterId: 1133836578
             Join: false
            Alive: false
ReplayedJournalId: 0
    LastHeartbeat: NULL
         IsHelper: false
           ErrMsg: java.net.ConnectException: Connection refused (Connection refused)
          Version: NULL
 CurrentConnected: No
*************************** 3. row ***************************
             Name: 192.168.10.131_9010_1661510658077
               IP: 192.168.10.131
         HostName: node01
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: FOLLOWER
         IsMaster: true
        ClusterId: 1133836578
             Join: true
            Alive: true
ReplayedJournalId: 2577
    LastHeartbeat: 2023-01-06 10:23:33
         IsHelper: true
           ErrMsg: 
          Version: 1.1.1-rc03-2dbd70bf9
 CurrentConnected: Yes
3 rows in set (0.04 sec)
  • 删除FE节点命令
mysql> ALTER SYSTEM DROP FOLLOWER[OBSERVER] "fe_host:edit_log_port"; 

mysql> ALTER SYSTEM DROP FOLLOWER "node01:9010"; 

注意:删除 Follower FE 时,确保最终剩余的 Follower(包括 Leader)节点最好为奇数。

BE的扩容和缩容

  • 增加 BE 节点:在 MySQL 客户端,通过以下命令增加 BE 节点。
mysql> ALTER SYSTEM ADD BACKEND  
mysql> ALTER SYSTEM ADD BACKEND "node01:9050"; 
  • DROP 方式删除 BE 节点(不推荐)
mysql> ALTER SYSTEM DROP BACKEND "be_host:be_heartbeat_service_port";
mysql> ALTER SYSTEM DROP BACKEND "node01:9050"; 

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

  • DECOMMISSION 方式删除 BE 节点(推荐)
mysql> ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port"; 
mysql> ALTER SYSTEM DECOMMISSION BACKEND "node01:9050"; 

Broker的扩容缩容

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

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

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

全文结束!

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

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

相关文章

2.1C++派生

C派生概述 C中的派生允许从一个已有的类中创建一个新的类&#xff0c;该新类继承了原有类的属性和方法。 派生类可以增加新的属性和方法&#xff0c;也可以重写原有类的方法以改变其行为。 C中的派生类可以通过公有、私有和保护继承来继承基类的成员。 公有继承允许派生类访…

网络协议驱动互联网

在分布式系统中&#xff0c;数据通过各种网络协议在网络中传输。作为应用程序开发者&#xff0c;这往往在问题出现之前似乎是一个黑盒子。 在本文中&#xff0c;我们将解释常见网络协议的工作原理&#xff0c;它们在分布式系统中的应用以及我们如何解决常见问题。后续还会介绍一…

开源一键拥有你自己的ChatGPT+Midjourney网页服务,用不用是另一回事,先收藏!

功能支持 原ChatGPT-Next-Web所有功能 midjourney imgine 想象 midjourney upscale 放大 midjourney variation 变幻 midjourney describe 识图 midjourney blend 混图 midjourney 垫图 绘图进度百分比、实时图像显示 自身支持midjourney-api 参数说明 MIDJOURNEY_PROXY_URL …

组态王与多台PLC之间无线以太网通信

在实际系统中&#xff0c;同一个车间里分布多台PLC&#xff0c;通过上位机集中控制。通常所有设备距离在几十米到上百米不等。在有通讯需求的时候&#xff0c;如果布线的话&#xff0c;工程量较大耽误工期&#xff0c;这种情况下比较适合采用无线通信方式。 本方案以组态王和2…

java -D详解

官方文档对 -D 有明确的解释&#xff0c;具体看 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html 简单解释一下 首先&#xff0c;java 命令是这么用的 其次&#xff0c;-D 是属于 [options] 这一块的。而 [options] 又分为如下几类 -D 就属于标准选…

企业级医疗项目:码猿慢病云管理系统来了!

大家好&#xff0c;我是不才陈某~ 不知不觉转行到医疗领域已经两年多了&#xff0c;前后服务过三百多家医疗机构&#xff0c;深耕于医疗领域&#xff0c;不知道在座的各位有从事医疗领域工作的吗&#xff1f; 上个月和朋友搞了一套的企业级的医疗实战项目&#xff1a;码猿慢病云…

Arthas线上故障案例分析——内存使用率上升,负载突然变高

使用经验分享 线上故障排查思路&#xff1a; 1、紧急处理&#xff0c;优先保障服务可用&#xff08;如切换vip&#xff0c;主备容灾&#xff09; 2、保留第一现场&#xff0c;通过jstack -l {pid} > jvmtmp.txt &#xff0c;打印栈信息 &#xff08;后续可以在gceasy官网上…

Maven插件开发及Demo演示

引言 maven不仅仅只是项目的依赖管理工具&#xff0c;其强大的核心来源自丰富的插件&#xff0c;可以说插件才是maven工具的灵魂。本篇文章将对如何自定义maven插件进行讲解&#xff0c;希望对大家有所帮助。 背景 讲如何开发maven插件之前&#xff0c;不妨先来聊一下什么是…

STM32速成笔记—定时器

文章目录 一、什么是定时器二、定时器有什么用三、通用定时器详细介绍3.1 时钟来源3.2 预分频器&#xff0c;计数器&#xff0c;自动重装载寄存器3.2.1 预分频器3.2.2 计数器3.2.3 自动重装载寄存器 3.3 触发控制器 四、PWM4.1 什么是PWM4.2 什么是占空比4.3 STM32F1 PWM介绍4.…

【Python 随练】打印菱形图案

题目&#xff1a; 打印出如下图案&#xff08;菱形&#xff09; ********* ****************简介&#xff1a; 在本篇博客中&#xff0c;我们将使用Python代码打印一个菱形图案。我们将提供问题的解析&#xff0c;并给出一个完整的代码示例来生成这个菱形图案。 问题分析&am…

阿里云开源离线同步工具DataX3.0,用于数据仓库、数据集市、数据备份

DataX是阿里云开源的一款离线数据同步工具&#xff0c;支持多种数据源和目的地的数据同步&#xff0c;包括但不限于MySQL、Oracle、HDFS、Hive、ODPS等。它可以通过配置文件来定义数据源和目的地的连接信息、数据同步方式、数据过滤等&#xff0c;从而实现数据的高效、稳定、可…

C++初阶—完善适配器(反向迭代器)

目录 0. 前言 1、反向迭代器定义 2、反向迭代器需要实现的相关函数 3、反向迭代器分析 4、针对vector物理空间结构分析 5、针对list物理空间结构分析 6、反向迭代器适配器的实现及测试 0. 前言 本篇文章主要根据前面所实现的STL中支持迭代器的容器进行完善&#xff0c;使…

Mysql数据库日志和数据的备份恢复(去看一看海吧)

文章目录 一、数据库备份的重要性二、数据库备份的分类1.物理备份&#xff1a;对数据库操作系统的物理文件&#xff08;如数据文件、日志文件等)的备份。2.逻辑备份&#xff1a;对数据库逻辑组件&#xff08;如表等数据库对象&#xff09;的备份&#xff0c;导出sql文件。3.完全…

被卖到 2w 的 ChatGPT 提示词 Prompt 你确定不想要吗?

有朋友说&#xff0c;用 ChatGPT 生成的文案刻板化&#xff0c;格式化&#xff0c;而且往往也不是我想要的。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 想要用好 ChatGPT 人工智能工具太难了&#xff0c;想一个好的提示词&#xff0c;也太不容易了&#xff0c;ChatGPT 就像一个宝藏…

3ds MAX绘制休闲椅

首先绘制一个长方形&#xff0c;并用上边两端点和底边中点绘制一个样条曲线 将上述曲线旋转复制&#xff0c;形成一个交叉的样条曲线&#xff0c;并移动两端点的位置&#xff0c;形成一上一下的结构 这就是休闲椅的大致形状 通过创建线将四个端点连接起来&#xff0c;形成空间…

UI组件——滑块简介

滑块控件是调整音量和亮度等设置的首选解决方案。它们立即生效&#xff0c;并允许用户通过移动手柄来微调值。滑块可以很好地达到目的&#xff0c;尤其是在精度不是很重要的情况下。 但是&#xff0c;这些控件可能会令人困惑&#xff0c;难以抓取并设置为精确值。另外&#xf…

人类智能的未来在于东西方智能的融合

有人认为&#xff1a;“只有时空的对齐&#xff0c;没有价值的对齐&#xff0c;智能或许就是智障”&#xff0c;即智能技术必须要与人类的价值观念和道德标准相一致&#xff0c;否则它所产生的结果可能会对人类社会造成负面影响。在现代社会中&#xff0c;智能技术已经越来越广…

【Elacticsearch】 分片副本机制,集群发现机制 ,负载机制,容错机制,扩容机制, 分片路由原理

集群发现机制 Elasticsearch采用了master-slave模式&#xff0c; ES会在集群中选取一个节点成为主节点&#xff0c;只有Master节点有资格维护全局的集群状态&#xff0c;在有节点加入或者退出集群的时候&#xff0c;它会重新分配分片&#xff0c;并将集群最新状态发送给集群中其…

Netty中的零拷贝机制

零拷贝机制(Zero-Copy)是在操作数据时不需要将数据从一块内存区域复制到另一块内存区域的技术,这样就避免了内存的拷贝,使得可以提高CPU的。零拷贝机制是一种操作数据的优化方案,通过避免数据在内存中拷贝达到的提高CPU性能的方案。 1.操作系统的零拷贝机制 操作系统的存储空间…

C++基础(5)——类和对象(3)

前言 本文主要介绍了C中类和对象的基本知识 4.3.1&#xff1a;成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 C语言中结构体为空时使用sizeof&#xff08;&#xff09;打印的结果是0 C中类和结构体为空&#xff0c;用sizeof关键字可以算出是空类占1字节、…