[安装] Doris集群搭建环境

news2024/11/13 9:34:50

参考文献

参考链接

推荐指数

Doris集群安装部署(详细)    

[火][火][火][火][火]

Doris学习笔记之数据表的创建

[火][火][火]

doris官网0.15版本的安装部署

[火][火][火][火][火]

Doris0.15升级到1.1.1

[火][火][火][火][火]

[说明] Doris使用培训

[火][火]

本文以Doris集群安装部署(详细)    的链接文章为主

一、系统准备工作

【必须】关闭交换分区(swap):https://www.cnblogs.com/whm-blog/p/10920881.html

【必须】 时钟同步:https://www.cnblogs.com/jhxxb/p/11526098.html

【必须】把limits调到最大:linux中的limits.conf文件配置 - 简书

【必须】安装JDK1.8:https://blog.csdn.net/weixin_36365168/article/details/114194870

当前系统环境

操作系统:centos 7.6 ,确认系统支持ext4文件系统

二、安装过程

2.1 doris集群节点角色规划

IP

节点名称

备注

172.18.8.205

fe-foller、be

172.18.8.207

fe-master、be

172.18.8.208

fe-foller、be

172.18.8.209

be

选择doris版本为1.1.1 的版本

2.2 doris的安装方式

  1. 使用doris源码编译安装

  2. 使用doris的二进制安装包安装(本次安装选择这个)

安装方式选择:关于两种方式的选择,使用源码安装可以在系统环境与选择二进制安装所依赖的底层操作系统差异很大的情况下,直接使用源码编译的方式,成功率更高;如果与doris官方要求的依赖环境接近,可以直接使用二进制的安装更快速、便捷;

2.3 安装FE

创建fe的数据目录:

#创建fe的元数据的目录,是前端查询的元数据所在位置
mkdir -p /data/doris/doris-meta
#创建fe启动的日志目录
mkdir -p /data/doris/fe/log

将安装目录中的fe目录拷贝到指定的doris安装家目录,对fe进行配置

#doris的安装目录
/opt/app/doris/fe

修改对应fe的配置文件,fe.conf

# the output dir of stderr and stdout 
LOG_DIR = /data/doris/fe/log

DATE = `date +%Y%m%d-%H%M%S`
JAVA_OPTS="-Xmx32768m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$DORIS_HOME/log/fe.gc.log.$DATE"

# For jdk 9+, this JAVA_OPTS will be used as default JVM options
JAVA_OPTS_FOR_JDK_9="-Xmx32768m -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xlog:gc*:$DORIS_HOME/log/fe.gc.log.$DATE:time"

##
## the lowercase properties are read by main program.
##

# INFO, WARN, ERROR, FATAL
sys_log_level = INFO

# store metadata, must be created before start FE.
# Default value is ${DORIS_HOME}/doris-meta
#  meta_dir = ${DORIS_HOME}/doris-meta
meta_dir = /data/doris/doris-meta

http_port = 8130
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
mysql_service_nio_enabled = true
## 在这里加该配置就行
enable_http_server_v2 = true


# Choose one if there are more than one ip except loopback address. 
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
priority_networks = 172.18.8.207/24

# Advanced configurations 
# log_roll_size_mb = 1024
# sys_log_dir = ${DORIS_HOME}/log
# sys_log_roll_num = 10
# sys_log_verbose_modules = org.apache.doris
# audit_log_dir = ${DORIS_HOME}/log
# audit_log_modules = slow_query, query
# audit_log_roll_num = 10
# meta_delay_toleration_second = 10
# qe_max_connection = 1024
# max_conn_per_user = 100
# qe_query_timeout_second = 300
# qe_slow_log_ms = 5000


# add by fangct
dynamic_partition_enable = true
enable_concurrent_update = true

注意:其中由于端口冲突,将http server的端口由8030,改为 8130

启动fe服务;

#启动fe服务
/opt/app/doris/fe/bin/start_fe.sh --daemon

#查看日志输出是否有错误
more /data/doris/fe/log/fe.out

其他节点上一样执行:

./start_fe.sh --helper 172.18.8.207:9010 --daemon

集群回滚错误操作(禁止操作,否则清空所有元数据):

rm -rf /data/doris/doris-meta/*

rm -f /data/doris/fe/log/*

将其他的fe的服务节点加入已有的最早启动的fe节点监听中

mysql>  ALTER SYSTEM ADD FOLLOWER "172.18.8.205:9010";
mysql>  ALTER SYSTEM ADD FOLLOWER "172.18.8.208:9010";

如下是执行状态:

[root@hadoop04 ~]# mysql -h 172.18.8.207 -P 9030 -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 0
Server version: 5.1.0 Doris version 0.15.5-d987afe9d0

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> ALTER SYSTEM ADD FOLLOWER "172.18.8.205:9010";
Query OK, 0 rows affected (0.02 sec)

MySQL [(none)]> ALTER SYSTEM ADD FOLLOWER "172.18.8.208:9010";
Query OK, 0 rows affected (0.01 sec)

MySQL [(none)]> show proc '/frontends';
+---------------------------------+--------------+----------+-------------+----------+-----------+---------+----------+----------+------------+------+-------+-------------------+---------------------+----------+---------------+-------------------+------------------+
| Name                            | IP           | HostName | EditLogPort | HttpPort | QueryPort | RpcPort | Role     | IsMaster | ClusterId  | Join | Alive | ReplayedJournalId | LastHeartbeat       | IsHelper | ErrMsg        | Version           | CurrentConnected |
+---------------------------------+--------------+----------+-------------+----------+-----------+---------+----------+----------+------------+------+-------+-------------------+---------------------+----------+---------------+-------------------+------------------+
| 172.18.8.208_9010_1661842556420 | 172.18.8.208 | hadoop03 | 9010        | 8130     | 0         | 0       | FOLLOWER | false    | 1240020905 | true | false | 0                 | NULL                | true     | got exception | NULL              | No               |
| 172.18.8.207_9010_1661842351608 | 172.18.8.207 | hadoop02 | 9010        | 8130     | 9030      | 9020    | FOLLOWER | true     | 1240020905 | true | true  | 67                | 2022-08-30 14:56:02 | true     |               | 0.15.5-d987afe9d0 | Yes              |
| 172.18.8.205_9010_1661842550805 | 172.18.8.205 | hadoop01 | 9010        | 8130     | 0         | 0       | FOLLOWER | false    | 1240020905 | true | false | 0                 | NULL                | true     | got exception | NULL              | No               |
+---------------------------------+--------------+----------+-------------+----------+-----------+---------+----------+----------+------------+------+-------+-------------------+---------------------+----------+---------------+-------------------+------------------+
3 rows in set (0.05 sec)

MySQL [(none)]> 

2.4 安装BE

将doris压缩文件解压出来的目录be,拷贝到执行的doris安装目录

/opt/app/doris/be

修改be的配置文件be.conf

# under the License.

PPROF_TMPDIR="/data/doris/be/log/"

# INFO, WARNING, ERROR, FATAL
sys_log_level = INFO

# ports for admin, web, heartbeat service 
be_port = 9060
webserver_port = 8140
heartbeat_service_port = 9050
brpc_port = 8060

# Choose one if there are more than one ip except loopback address. 
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24
# Default value is empty.
# priority_networks = 10.10.10.0/24;192.168.0.0/16
priority_networks = 172.18.8.207/24

# data root path, separate by ';'
# you can specify the storage medium of each root path, HDD or SSD
# you can add capacity limit at the end of each root path, seperate by ','
# eg:
# storage_root_path = /home/disk1/doris.HDD,50;/home/disk2/doris.SSD,1;/home/disk2/doris
# /home/disk1/doris.HDD, capacity limit is 50GB, HDD;
# /home/disk2/doris.SSD, capacity limit is 1GB, SSD;
# /home/disk2/doris, capacity limit is disk capacity, HDD(default)
# 
# you also can specify the properties by setting '<property>:<value>', seperate by ','
# property 'medium' has a higher priority than the extension of path
#
# Default value is ${DORIS_HOME}/storage, you should create it by hand.
# storage_root_path = ${DORIS_HOME}/storage
storage_root_path = /data/doris/be/doris-data

# Advanced configurations
# sys_log_dir = ${DORIS_HOME}/log
# sys_log_roll_mode = SIZE-MB-1024
# sys_log_roll_num = 10
# sys_log_verbose_modules = *
# log_buffer_level = -1
# palo_cgroups 

# add  by fangct
max_tablet_version_num = 5000
max_compaction_threads = 16
compaction_task_num_per_disk = 8
cumulative_size_based_promotion_size_mbytes = 2048
row_step_for_compaction_merge_log = 1
total_permits_for_compaction_score = 50000

注意:因为安装目录在/opt/doris下,数据和日志目录在/data/doris下;其中webserver_port因为端口冲突,从原来8040改为8140

常见be/fe端口解释:

实例名称

端口名称

默认端口

通讯方向

说明

BE

be_port

9060

FE --> BE

BE 上 thrift server 的端口,用于接收来自 FE 的请求

BE

be_rpc_port

9070

BE <--> BE

BE 之间 rpc 使用的端口

BE

webserver_port

8040

BE <--> BE

BE 上的 http server 的端口

BE

heartbeat_service_port

9050

FE --> BE

BE 上心跳服务端口(thrift),用于接收来自 FE 的心跳

BE

brpc_port*

8060

FE<-->BE, BE <--> BE

BE 上的 brpc 端口,用于 BE 之间通讯

FE

http_port *

8030

FE <--> FE,用户

FE 上的 http server 端口

FE

rpc_port

9020

BE --> FE, FE <--> FE

FE 上的 thrift server 端口

FE

query_port

9030

用户

FE 上的 mysql server 端口

FE

edit_log_port

9010

FE <--> FE

FE 上的 bdbje 之间通信用的端口

Broker

broker_ipc_port

8000

FE --> Broker, BE --> Broker

Broker 上的 thrift server,用于接收请求

启动doris的be服务

#启动be服务
cd /opt/app/doris/be/bin
sh start_be.sh --daemon 

启动完了be服务,可以查看日志是否有报错,日志在/date/doris/be/log/下

启动完了之后,执行加入be服务到fe的服务监听中

MySQL [(none)]> ALTER SYSTEM ADD BACKEND "172.18.8.205:9050";
Query OK, 0 rows affected (0.03 sec)

MySQL [(none)]> ALTER SYSTEM ADD BACKEND "172.18.8.207:9050";
Query OK, 0 rows affected (0.00 sec)

MySQL [(none)]> ALTER SYSTEM ADD BACKEND "172.18.8.208:9050";
Query OK, 0 rows affected (0.00 sec)

MySQL [(none)]> ALTER SYSTEM ADD BACKEND "172.18.8.209:9050";
Query OK, 0 rows affected (0.01 sec)

MySQL [(none)]> show proc '/backends'
+-----------+-----------------+--------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------+-------------------+--------------------------------------------------------------------------------+
| BackendId | Cluster         | IP           | HostName | HeartbeatPort | BePort | HttpPort | BrpcPort | LastStartTime       | LastHeartbeat       | Alive | SystemDecommissioned | ClusterDecommissioned | TabletNum | DataUsedCapacity | AvailCapacity | TotalCapacity | UsedPct | MaxDiskUsedPct | Tag                      | ErrMsg | Version           | Status                                                                         |
+-----------+-----------------+--------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------+-------------------+--------------------------------------------------------------------------------+
| 10002     | default_cluster | 172.18.8.205 | hadoop01 | 9050          | 9060   | 8140     | 8060     | 2022-08-30 17:34:04 | 2022-08-30 17:49:56 | true  | false                | false                 | 33        | 2.713 KB         | 4.018 TB      | 5.269 TB      | 23.73 % | 23.73 %        | {"location" : "default"} |        | 0.15.5-d987afe9d0 | {"lastSuccessReportTabletsTime":"2022-08-30 17:48:57","lastStreamLoadTime":-1} |
| 10003     | default_cluster | 172.18.8.207 | hadoop02 | 9050          | 9060   | 8140     | 8060     | 2022-08-30 17:34:11 | 2022-08-30 17:49:56 | true  | false                | false                 | 33        | 0.000            | 3.632 TB      | 4.881 TB      | 25.58 % | 25.58 %        | {"location" : "default"} |        | 0.15.5-d987afe9d0 | {"lastSuccessReportTabletsTime":"2022-08-30 17:49:05","lastStreamLoadTime":-1} |
| 10004     | default_cluster | 172.18.8.208 | hadoop03 | 9050          | 9060   | 8140     | 8060     | 2022-08-30 17:34:16 | 2022-08-30 17:49:56 | true  | false                | false                 | 28        | 0.000            | 2.331 TB      | 3.562 TB      | 34.57 % | 34.57 %        | {"location" : "default"} |        | 0.15.5-d987afe9d0 | {"lastSuccessReportTabletsTime":"2022-08-30 17:49:00","lastStreamLoadTime":-1} |
| 10005     | default_cluster | 172.18.8.209 | hadoop04 | 9050          | 9060   | 8140     | 8060     | 2022-08-30 17:28:24 | 2022-08-30 17:49:56 | true  | false                | false                 | 6         | 0.000            | 429.796 GB    | 1.660 TB      | 74.71 % | 74.71 %        | {"location" : "default"} |        | 0.15.5-d987afe9d0 | {"lastSuccessReportTabletsTime":"2022-08-30 17:49:08","lastStreamLoadTime":-1} |
+-----------+-----------------+--------------+----------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------------------+-----------+------------------+---------------+---------------+---------+----------------+--------------------------+--------+-------------------+--------------------------------------------------------------------------------+
4 rows in set (0.01 sec)

2.5 安装broker

(1)拷贝doris1.1.1对应压缩文件夹下的apache_hdfs_broker目录,将其移动到对应的安装目录/opt/app/doris下面

[root@hadoop02 doris]# pwd
/opt/app/doris
[root@hadoop02 doris]# ll
total 0
drwxr-xr-x.  6 root root  51 Sep  6 17:24 apache_hdfs_broker
drwxr-xr-x.  8 root root  77 Sep  6 09:11 be
drwxr-xr-x. 11 root root 134 Sep  6 14:20 fe

(2)在其他的安装了be和fe节点上重复以上步骤,可以修改apache_hdfs_broker/conf/目录下的文件apache_hdfs_broker.conf(此处保持默认即可)

(3) 启动broker服务

启动完了可以查看broker日志文件中,出现sucessed字样即表示启动成功。

/opt/app/doris/apache_hdfs_broker/bin/start_broker.sh --daemon

(4)将broker在doris sql命令行界面执行如下命令

将各个broker服务加入fe服务的监听中

ALTER SYSTEM ADD BROKER broker_name "hadoop01:8000","hadoop02:8000","hadoop03:8000","hadoop04:8000";

执行之后查看执行效果查看

MySQL [(none)]> show proc '/brokers'
    -> ;
+-------------+--------------+----------+------+-------+---------------------+---------------------+--------+
| Name        | IP           | HostName | Port | Alive | LastStartTime       | LastUpdateTime      | ErrMsg |
+-------------+--------------+----------+------+-------+---------------------+---------------------+--------+
| broker_name | 172.18.8.209 | hadoop04 | 8000 | true  | 2022-09-06 17:37:24 | 2022-09-07 11:36:04 |        |
| broker_name | 172.18.8.208 | hadoop03 | 8000 | true  | 2022-09-06 17:37:24 | 2022-09-07 11:36:04 |        |
| broker_name | 172.18.8.207 | hadoop02 | 8000 | true  | 2022-09-06 17:37:24 | 2022-09-07 11:36:04 |        |
| broker_name | 172.18.8.205 | hadoop01 | 8000 | true  | 2022-09-06 17:37:24 | 2022-09-07 11:36:04 |        |
+-------------+--------------+----------+------+-------+---------------------+---------------------+--------+
4 rows in set (0.21 sec)

三、doris服务总结

访问doris服务方式

(1)web ui的访问界面

服务访问界面:http://172.18.8.207:8130/

(2)数据库访问工具

(3).通过mysql-jdbc的方式访问doris

可以使用通过程序,使用jdbc的方式访问doris;使用方式与mysql完全相同;对应的驱动mysql-jdbc的驱动版本,例如选择5.1.xx的版本即可;

使用指南

基础使用指南

[说明] Doris使用培训

常见问题汇总

Doris BE启动出错

其他待处理的问题

  1. fe,链接的可用性

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

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

相关文章

7个有用的Pandas显示选项

Pandas是一个在数据科学中常用的功能强大的Python库。它可以从各种来源加载和操作数据集。当使用Pandas时&#xff0c;默认选项就已经适合大多数人了。但是在某些情况下&#xff0c;我们可能希望更改所显示内容的格式。所以就需要使用Pandas的一些定制功能来帮助我们自定义内容…

Word控件Spire.Doc 【图像形状】教程(13): 如何在C#中对齐word文档上的形状

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

poi-tl实现对Word模板中复杂表格的数据填充

文章目录前言what poi-tlwhy poi-tlHow poi-tl1. 版本问题2. 集成和使用3. SpringEL表达式总结前言 开发时, 我们有时需要进行word类型表格导出, 而对于表格操作. 我们一般可能会倾向于使用 poi 进行操作. 但poi操作比较复杂, 所以就在寻找一种可以快速将内容填充到表格中的工具…

yolov7配置与训练记录(二)

yolov7配置与训练记录(一) 已经完成了环境的配置,下面开始文件内部的操作 yolov7官方下载地址为 git clone https://github.com/WongKinYiu/yolov71 将下载好的预训练权重放在yolov7-main/weights内 需要在yolov7中新建weights文件夹(也是为了方便管理权重文件) 测试 pyth…

单调队列算法总结

背景 单调队列&#xff0c;即为单调递减或者单调递增的队列。队列中的元素只能在队尾入队、从队首或者队尾出队。 单调队列的基本实现就是维护一个双向队列&#xff0c;只有当一个元素是当前最值、或者可能成为最值时才保留&#xff0c;否则出队。 单调队列通常用来解决在滑…

NR 大规模天线设计--1

参考《无线系统设计与国际标准》 概述 空间自由度是多天线系统获得性能增益的源泉。随着有源天线技术理论的出现&#xff0c; 为MIMO维度的扩展奠定了理论基础&#xff0c;有源天线技术在商用移动通讯领域的发展&#xff0c; 对天线的进一步扩展&#xff0c;尤其对信道垂直维…

Java常用API

Java常用API什么是API&#xff1f;Object类的作用:Object类的常用方法&#xff1a;Object的toString方法&#xff1a;Obiect的equals方法ObiectsStringBuilderMathSystem类概述BigDecimal什么是API&#xff1f; 1.API应用程序编程接口。 2.简单来说&#xff1a;就是Java帮我们…

JAVA中变量与常量

文章目录0 写在前面1 变量1.1 声明变量1.2 变量初始化2 常量3 写在最后0 写在前面 所有程序设计语言一样&#xff0c;Java 也使用变量来存储值。常量就是值不变的变量。 1 变量 1.1 声明变量 格式 类型 变量名; 例如&#xff1a; int index; double salary; long earthPop…

华为云发布CodeArts Req需求管理工具,让需求管理化繁为简

摘要&#xff1a;华为云正式发布CodeArts Req&#xff0c;这是一款自主研发的软件研发管理与团队协作工具&#xff0c;旨在助力企业大规模研发转型成功&#xff0c;释放组织生产力。本文分享自华为云社区《华为云发布CodeArts Req需求管理工具&#xff0c;让需求管理化繁为简》…

代码随想录刷题day56 583. 两个字符串的删除操作;72. 编辑距离;编辑距离总结篇

代码随想录刷题day56 583. 两个字符串的删除操作&#xff1b;72. 编辑距离&#xff1b;编辑距离总结篇 关于编辑距离的一些题目。 583. 两个字符串的删除操作 583. 两个字符串的删除操作 - 力扣&#xff08;Leetcode&#xff09; 化简这一步不容易想到。原理就是两个都删除…

华为云大数据BI赋能企业数字化发展

企业在数字化转型过程中面临着不少挑战&#xff0c;比如数据整合能力有限、不足的需求快速响应能力、缺乏数据管理机制和保障、自建分析平台成本高等等。所以各大企业都希望通过一个大数据智能系统来全方位帮助企业处理数据分析&#xff0c;做好智能决策。因此&#xff0c;对于…

基于SOPHON TPU架构实现 Faiss 的两个查询接口

文章目录1. Faiss 简介2. 距离度量3. 在 Sophon TPU 上的接口实现3.1 Sophon TPU3.2 indexflat 实现3.3 indexPQ 实现 1. Faiss 简介 Faiss 库是 Facebook 开发的一个用于稠密向量相似性搜索和聚类的库&#xff0c;该库包含有诸多向量相似性搜索的算法。向量相似性搜索是将一…

【Pytorch】第 2 章 :马尔可夫决策过程和动态规划

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

python之对比两张图像的相似度

python之图像背景识别 本着结合实际工作&#xff0c;实际落地并已应用的态度去码文。 python之对比两张图像的相似度 需求&#xff1a;在某个手机端项目中&#xff0c;有多个页面图片&#xff0c;但每个图片都做了相应的修改&#xff0c;由于这种图片非常多&#xff0c;高达上万…

澳亚通过聆讯:上半年营收近3亿美元 元气森林与新希望乳业是股东

雷递网 雷建平 12月6日澳亚集团有限公司&#xff08;简称&#xff1a;“澳亚集团”&#xff09;日前通过聆讯&#xff0c;准备在港交所上市。澳亚集团是2022年10月中旬递交招股书&#xff0c;不到2个月时间&#xff0c;澳亚集团就通过上市聆讯&#xff0c;这在最近两年的港交所…

小型扫雪机结构设计

目 录 摘 要 I ABSTRACT II 1、绪论 1 1.1 选题意义 1 1.2小型扫雪机国内发展现状 1 1.2.1国内小型扫雪机械现状 1 1.2.2犁式小型扫雪机 2 1.2.3旋切式小型扫雪机 2 1.2.4国内小型扫雪机械的发展方向 3 1.3国外道路小型扫雪机械技术发展概况 3 1.3.1综合式扫雪 3 1.3.2融雪扫雪…

【华为上机真题 2022】数组组成的最小数字

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

深入探索 Kubernetes 网络模型和网络通信

Kubernetes 定义了一种简单、一致的网络模型&#xff0c;基于扁平网络结构的设计&#xff0c;无需将主机端口与网络端口进行映射便可以进行高效地通讯&#xff0c;也无需其他组件进行转发。该模型也使应用程序很容易从虚拟机或者主机物理机迁移到 Kubernetes 管理的 pod 中。 …

PR-39 TFA 是富含脯氨酸和精氨酸的天然抗菌肽

PR-39 TFA 是富含脯氨酸和精氨酸的天然抗菌肽&#xff0c;是一种非竞争性&#xff0c;可逆和变构的蛋白酶体 (proteasome) 抑制剂。PR-39 TFA 可逆地结合到蛋白酶体的 α7 亚基上&#xff0c;并通过泛素-蛋白酶体途径阻断 NF-κB 抑制剂 IκBα 的降解。PR-39 TFA 刺激小鼠的血…

Java中的final关键字,你清楚吗?

前言 在学习Java基础阶段应该都认识关键字 final,在声明常量和匿名内部类时都会用到它。我们最熟悉的 String 类就是 final类&#xff0c;如果经常查看API源码&#xff0c;肯定还会遇到其他 final类。本篇就来深入了解一下关键字 final&#xff0c;加深对它的运用。 概览 可用…