OLAP系列之分析型数据库clickhouse集群部署(二)
一、环境准备
IP | 配置 | clickhouse版本 | zookeeper版本 | myid |
192.168.12.88 | Centos 7.9 4核8G | 22.8.20.11 | 3.7.1 | 3 |
192.168.12.90 | Centos 7.9 4核8G | 22.8.20.11 | 3.7.1 | 2 |
192.168.12.91 | Centos 7.9 4核8G | 22.8.20.11 | 3.7.1 | 1 |
clickhouse版本选择:可以参照阿里云或腾讯云版本:22.8
# 基础环境配置
vim /etc/security/limits.conf
* soft nofile 655365
* hard nofile 655365
* soft nproc 128000
* hard nproc 128000 cat /etc/security/limits.d/20-nproc.conf
* soft nproc 4096
root soft nproc unlimited # 禁用selinux
vim /etc/selinux/config
SELINUX=disabled vim /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# 如果不修改会出现警告提示
Warnings:* Linux transparent hugepages are set to "always". Check /sys/kernel/mm/transparent_hugepage/enable
二、zookeeper集群安装
安装jdk11,并设置环境变量
# 目录建立
mkdir /data/clickhouse/zookeeper/{data,logs} -p
mkdir /data/clickhouse/clickhouse/ -p
mkdir /data/clickhouse/server-logs/ -p
cd /usr/local/
tar -xzvf apache-zookeeper-3.7.1-bin.tar.gz
ln -s apache-zookeeper-3.7.1-bin zookeeper cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg mkdir /data/clickhouse/zookeeper/{data,logs} -p
# 其余机器myid依次写入2、3
echo 1 > /data/clickhouse/zookeeper/data/myid # 配置文件
vim zoo.cfg tickTime=2000
initLimit=10
syncLimit=5
clientPort=2281
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
dataDir=/data/clickhouse/zookeeper/data
dataLogDir=/data/clickhouse/zookeeper/logs
# 如果是云服务器需要外网访问就需要设置下面的参数
# quorumListenOnAllIPs=true
server.1=192.168.12.91:2999:3999
server.2=192.168.12.90:2999:3999
server.3=192.168.12.88:2999:3999 # 启动程序
cd /usr/local/zookeeper
# bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
三、clickhouse部署
1.安装
参考文章(OLAP系列之分析型数据库clickhouse单机版部署(一))
2.集群配置(3分片+每分片1副本)
ClickHouse数据存储时支持副本和分片:
副本指的就是一份数据可以在不同的节点上存储,这些节点上存储的每份数据相同,数据副本是增加数据存储冗余来防止数据丢失。类似主从
分片指的是ClickHouse一张表的数据可以横向切分为多份,每份中的数据不相同且存储在不同的节点上,分片的目的主要是实现数据的水平切分,方便多线程和分布式查询数据。
2.1 config.xml修改
cd /etc/clickhouse-server # 1.修改clickhouse目录结构
# 1.1 默认保存日志的目录,通常会修改,将数据保存到大容量磁盘路径中
<level>trace</level>
<log>/data/clickhouse/server-logs/clickhouse-server.log</log>
<errorlog>/data/clickhouse/server-logs/clickhouse-server.err.log</errorlog> # 1.2 默认数据存储目录修改
<path>/data/clickhouse/clickhouse/</path>
<tmp_path>/data/clickhouse/clickhouse/tmp/</tmp_path>
<user_files_path>/data/clickhouse/clickhouse/user_files/</user_files_path>
<path>/data/clickhouse/clickhouse/access/</path> # 2.使用的端口,不需要修改,可以根据情况修改,使用的端口有:
<http_port>8123</http_port>
<tcp_port>9000</tcp_port>
<postgresql_port>9005</postgresql_port>
<interserver_http_port>9009</interserver_http_port> # 3.外网访问是否打开配置
# 如果有ipv6,则取消下面配置注释
<listen_host>::</listen_host>
# 如果只有ipv4,取消下面配置注释
<listen_host>0.0.0.0</listen_host>
# 本机访问
<listen_host>::1</listen_host>
<listen_host>127.0.0.1</listen_host>
# 注意config.d/listen.xml中的配置,如果只有ipv4,也需要改成0.0.0.0
# 4.时区修改
<timezone>Asia/Shanghai</timezone> # 5.集群配置
注销掉<remote_servers></remote_servers>中所有内容,单独在后面添加,如果不注销会出现默认的副本:
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
2.2 metrika.xml文件配置
3个节点都增加配置文件[/etc/clickhouse-server/config.d/metrika.xml]
配置如下:
<?xml version="1.0">
<yandex>
<!-- 新版的clickhouse集群的首个标签是clickhouse,而不是yandex -->
<remote_servers>
<!-- 自定义集群名称 -->
<clickhouse_cluster_3shards_1replicas>
<!-- 定义集群的分片数量,3个shard标签说明有3个节点-->
<shard>
<!-- 分片1 -->
<!-- 表示是否只将数据写入其中一个副本,默认为false,表示写入所有副本,在复制表的情况下可能会导致重复和不一致,所以这里要改为true -->
<internal_replication>true</internal_replication>
<!-- 定义分片的副本数量 -->
<replica>
<host>192.168.12.91</host>
<port>9000</port>
<user>default</user>
<password>密码</password>
</replica>
</shard>
<!-- 分片2 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.12.90</host>
<port>9000</port>
<user>default</user>
<password>密码</password>
</replica>
</shard>
<!-- 分片3 -->
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.12.88</host>
<port>9000</port>
<user>default</user> <!--默认用户名 -->
<password>密码</password> <!-- 密码安装时那个 -->
</replica>
</shard>
</clickhouse_cluster_3shards_1replicas>
</remote_servers>
<!-- zookeeper集群配置 -->
<zookeeper>
<node index="1">
<host>192.168.12.91</host>
<port>2281</port>
</node>
<node index="2">
<host>192.168.12.90</host>
<port>2281</port>
</node>
<node index="3">
<host>192.168.12.88</host>
<port>2281</port>
</node>
</zookeeper>
<!-- 本节点副本名称replica,配置后能方便后续创建复制表时不用指定zk路径,每台机器的配置不一样,确保和每台机器的host名称一致-->
<macros>
<shard>01</shard>
<replica>cluster01</replica>
</macros>
<!-- 注意config.xml中配置的listen_host是什么 -->
<networks>
<ip>::/0</ip>
</networks>
<!-- 数据压缩算法配置 -->
<clickhouse_compression>
<case>
<min_part_size>10000000000</min_part_size>
<min_part_size_ratio>0.01</min_part_size_ratio>
<method>lz4</method>
</case>
</clickhouse_compression>
</yandex>
<yandex>
<remote_servers>
<clickhouse_cluster_3shards_1replicas>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.12.91</host>
<port>9000</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.12.90</host>
<port>9000</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>192.168.12.88</host>
<port>9000</port>
</replica>
</shard>
</clickhouse_cluster_3shards_1replicas>
</remote_servers> <zookeeper>
<node index="1">
<host>192.168.12.91</host>
<port>2281</port>
</node>
<node index="2">
<host>192.168.12.90</host>
<port>2281</port>
</node>
<node index="3">
<host>192.168.12.88</host>
<port>2281</port>
</node>
</zookeeper>
<macros>
<shard>01</shard>
<replica>cluster01</replica>
</macros>
<networks>
<ip>::/0</ip>
</networks>
<clickhouse_compression>
<case>
<min_part_size>10000000000</min_part_size>
<min_part_size_ratio>0.01</min_part_size_ratio>
<method>lz4</method>
</case>
</clickhouse_compression>
</yandex>
metrika.xml
注意:需要在每个clickhouse节点上修改macros配置名称
# 第2个节点配置
<macros>
<shard>02</shard>
<replica>cluster02</replica>
</macros> # 第3个节点配置
<macros>
<shard>03</shard> <!—第一个分片–>
<replica>cluster03</replica> <!—自命名–>
</macros>
2.3 users.xml配置
# 搭建时可以先不用看这个,等完成了之后再测试是否需要
# 配置文件users.xml
<user>
<default> 默认用户
<password>明文密码</password> //可以改为下面的这种加密的
<password_sha256_hex>37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f</password_sha256_hex>
# 开启SQL用户管理模式即可以使用create user 和grant 命令创建用户和对用户进行授权。
<access_management>1</access_management>
<networks>
<ip>::/0</ip>
</networks> <!-- 新增用户dbaadmin,并限定能访问的数据库 -->
<dbaadmin>
<password>123456</password>
<access_management>1</access_management>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
<allow_databases>
<database>test_log</database>
<database>db_hxl</database>
</allow_databases>
</dbaadmin>
</user> # echo -n default | openssl dgst -sha256
(stdin)= 37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f
四、服务启动并验证
4.1 服务启动
# 1.分别登录3台机器,启动服务
# 启动方式
clickhouse start
chown -R clickhouse: '/var/run/clickhouse-server/'
Will run sudo -u 'clickhouse' /usr/bin/clickhouse-server --config-file /etc/clickhouse-server/config.xml --pid-file /var/run/clickhouse-server/clickhouse-server.pid --daemon
Waiting for server to start
Waiting for server to start
Server started 或者
systemctl start clickhouse-server.service
● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
Loaded: loaded (/usr/lib/systemd/system/clickhouse-server.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-07-21 16:25:40 CST; 1min 26s ago
Main PID: 1698 (clckhouse-watch)
Tasks: 204
Memory: 115.1M
CGroup: /system.slice/clickhouse-server.service
├─1698 clickhouse-watchdog --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse-server/clickhouse-server.pid
└─1699 /usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse-server/clickhouse-server.pid
4.2 验证
# 1.本机登录验证
clickhouse-client --password 密码 :)SHOW DATABASES Query id: a80654a4-7946-4285-8b2a-87a46c6b347b ┌─name───────────────┐
│ INFORMATION_SCHEMA │
│ default │
│ information_schema │
│ system │
└────────────────────┘ 4 rows in set. Elapsed: 0.001 sec. :) select * from system.clusters; SELECT *
FROM system.clusters Query id: 647b0a0b-f9d2-4b74-8a06-8e40cd6e15eb ┌─cluster──────────────────────────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name─────┬─host_address──┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─slowdowns_count─┬─estimated_recovery_time─┐
│ clickhouse_cluster_3shards_1replicas │ 1 │ 1 │ 1 │ 192.168.12.91 │ 192.168.12.91 │ 9000 │ 1 │ default │ │ 0 │ 0 │ 0 │
│ clickhouse_cluster_3shards_1replicas │ 2 │ 1 │ 1 │ 192.168.12.90 │ 192.168.12.90 │ 9000 │ 0 │ default │ │ 0 │ 0 │ 0 │
│ clickhouse_cluster_3shards_1replicas │ 3 │ 1 │ 1 │ 192.168.12.88 │ 192.168.12.88 │ 9000 │ 0 │ default │ │ 0 │ 0 │ 0 │
└──────────────────────────────────────┴───────────┴──────────────┴─────────────┴───────────────┴───────────────┴──────┴──────────┴─────────┴──────────────────┴──────────────┴─────────────────┴─────────────────────────┘
3 rows in set. Elapsed: 0.001 sec. # 2.任意节点连接
clickhouse-client --host 192.168.12.88 --port 9000 --password
ClickHouse client version 22.8.20.11 (official build).
Password for user (default):
Connecting to 192.168.12.88:9000 as user default.
Connected to ClickHouse server version 22.8.20 revision 54460
zookeeper3 :) show databases; SHOW DATABASES Query id: 44b06878-6bfe-4a21-87a9-f8c31e6c79eb ┌─name───────────────┐
│ INFORMATION_SCHEMA │
│ default │
│ information_schema │
│ system │
└────────────────────┘
4 rows in set. Elapsed: 0.001 sec.
4.3 建库
官方文档:https://clickhouse.com/docs/zh/sql-reference/statements/create/database
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)]
# 创建库
create database if not exists test_log on cluster clickhouse_cluster_3shards_1replicas; :) create database if not exists test_log on cluster clickhouse_cluster_3shards_1replicas; CREATE DATABASE IF NOT EXISTS test_log ON CLUSTER clickhouse_cluster_3shards_1replicas Query id: 62b9e7c8-6c78-4aee-adb2-dc1f360a96c2 ┌─host──────────┬─port─┬─status─┬─error─┬─num_hosts_remaining─┬─num_hosts_active─┐
│ 192.168.12.90 │ 9000 │ 0 │ │ 2 │ 0 │
│ 192.168.12.91 │ 9000 │ 0 │ │ 1 │ 0 │
│ 192.168.12.88 │ 9000 │ 0 │ │ 0 │ 0 │
└───────────────┴──────┴────────┴───────┴─────────────────────┴──────────────────┘ 3 rows in set. Elapsed: 0.132 sec. # 说明:
1.创建名称为test_log 的数据库
2.指定在集群 clickhouse_cluster_3shards_1replicas的所有服务器上创建 test_log 数据库
3. ENGINE = db_engine(...), 数据库引擎。ClickHouse 默认使用 Atomic 数据库引擎,即有默认值 ENGINE = Atomic。Atomic 引擎提供了可配置的 table engines 和 SQL dialect,
它支持非阻塞的DROP TABLE和RENAME TABLE查询和原子的表交换查询命令 EXCHANGE TABLES t1 AND t2。Atomic 中的所有表都有持久的 UUID,
数据存储在/clickhouse_path/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/ 路径下。其中,xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy是表 UUID,支持在不更改 UUID 和移动表数据的情况下执行重命名。
可以使用DatabaseCatalog,通过 UUID访问 Atomic 数据库中的表。执行DROP TABLE 命令,不会删除任何数据,Atomic 数据库只是通过将元数据移动到 /clickhouse_path/metadata_dropped/,并将表标记为已删除,
并通知 DatabaseCatalog :) show databases;
SHOW DATABASES
Query id: 96a30aae-2b4b-4b2c-9e6f-c937e8cf44e4
┌─name───────────────┐
│ INFORMATION_SCHEMA │
│ default │
│ information_schema │
│ system │
│ test_log │
└────────────────────┘
use system;
:) select * from databases; SELECT *
FROM databases Query id: 6ca6eef1-301d-48fb-bfbd-07862fd1ad5b ┌─name───────────────┬─engine─┬─data_path──────────────────────────┬─metadata_path───────────────────────────────────────────────────────────────┬─uuid─────────────────────────────────┬─comment─┐
│ INFORMATION_SCHEMA │ Memory │ /data/clickhouse/clickhouse/ │ │ 00000000-0000-0000-0000-000000000000 │ │
│ default │ Atomic │ /data/clickhouse/clickhouse/store/ │ /data/clickhouse/clickhouse/store/332/3328f7da-3924-4bee-89e2-a8b1746145c5/ │ 3328f7da-3924-4bee-89e2-a8b1746145c5 │ │
│ information_schema │ Memory │ /data/clickhouse/clickhouse/ │ │ 00000000-0000-0000-0000-000000000000 │ │
│ system │ Atomic │ /data/clickhouse/clickhouse/store/ │ /data/clickhouse/clickhouse/store/e3a/e3a6d729-193c-48a3-a8d5-947c8bfe3f37/ │ e3a6d729-193c-48a3-a8d5-947c8bfe3f37 │ │
│ test_log │ Atomic │ /data/clickhouse/clickhouse/store/ │ /data/clickhouse/clickhouse/store/018/018b3c10-2d76-4aad-9e5c-6e22462d7c85/ │ 018b3c10-2d76-4aad-9e5c-6e22462d7c85 │ │
└────────────────────┴────────┴────────────────────────────────────┴─────────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────┴─────────┘ 5 rows in set. Elapsed: 0.001 sec.
4.4 建表
官方文档:https://clickhouse.com/docs/zh/sql-reference/statements/create/table
# 1) 创建本地表
CREATE TABLE [IF NOT EXISTS] [db.]table_name ON CLUSTER cluster
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
INDEX index_name1 expr1 TYPE type1(...) GRANULARITY value1,
INDEX index_name2 expr2 TYPE type2(...) GRANULARITY value2
) ENGINE = engine_name()
[PARTITION BY expr]
[ORDER BY expr]
[PRIMARY KEY expr]
[SAMPLE BY expr]
[SETTINGS name=value, ...]; 选项描述:
db:指定数据库名称,如果当前语句没有包含‘db’,则默认使用当前选择的数据库为‘db’。
cluster:指定集群名称,目前固定为default。ON CLUSTER 将在每一个节点上都创建一个本地表。
type:该列数据类型,例如 UInt32。
DEFAULT:该列缺省值。如果INSERT中不包含指定的列,那么将通过表达式计算它的默认值并填充它。
MATERIALIZED:物化列表达式,表示该列不能被INSERT,是被计算出来的; 在INSERT语句中,不需要写入该列;在SELECT *查询语句结果集不包含该列。
ALIAS :别名列。这样的列不会存储在表中。 它的值不能够通过INSERT写入,同时使用SELECT查询星号时,这些列也不会被用来替换星号。 但是它们可以用于SELECT中,在这种情况下,在查询分析中别名将被替换。
物化列与别名列的区别: 物化列是会保存数据,查询的时候不需要计算,而别名列不会保存数据,查询的时候需要计算,查询时候返回表达式的计算结果
以下选项与表引擎相关,只有MergeTree系列表引擎支持: PARTITION BY:指定分区键。通常按照日期分区,也可以用其他字段或字段表达式。
ORDER BY:指定 排序键。可以是一组列的元组或任意的表达式。
PRIMARY KEY: 指定主键,默认情况下主键跟排序键相同。因此,大部分情况下不需要再专门指定一个 PRIMARY KEY 子句。
SAMPLE BY :抽样表达式,如果要用抽样表达式,主键中必须包含这个表达式。
SETTINGS:影响 性能的额外参数。
GRANULARITY :索引粒度参数。
# 创建分布式表
# 基于本地表创建一个分布式表
CREATE TABLE [db.]table_name ON CLUSTER default
AS db.local_table_name
ENGINE = Distributed(<cluster>, <database>, <shard table> [, sharding_key]) 参数说明:
db:数据库名。
local_table_name:对应的已经创建的本地表表名。
shard table:同上,对应的已经创建的本地表表名。
sharding_key:分片表达式。可以是一个字段,例如user_id(integer类型),通过对余数值进行取余分片;也可以是一个表达式,例如rand(),通过rand()函数返回值/shards总权重分片;
为了分片更均匀,可以加上hash函数,如intHash64(user_id)。
# 创建本地表
CREATE TABLE test_log.test_local ON CLUSTER clickhouse_cluster_3shards_1replicas(id Int32,name String) ENGINE=TinyLog; # 创建分布式表
CREATE TABLE test_all ON CLUSTER clickhouse_cluster_3shards_1replicas(id Int32, name String) ENGINE = Distributed(clickhouse_cluster_3shards_1replicas, test_log, test_local,id); #在3台服务器上分别往表里写数据,最开始出现查询不了分布式库,又加了2条
192.168.12.91
insert into test_local(id, name) values (1, 'zhangsan');
insert into test_local(id, name) values (2, 'lisi');
insert into test_local(id, name) values (7, 'yw');
insert into test_local(id, name) values (8, 'xc'); 192.168.12.90
insert into test_local(id, name) values (3, 'wangm');
insert into test_local(id, name) values (4, 'lijing');
insert into test_local(id, name) values (9, 'cx');
insert into test_local(id, name) values (10, 'aa'); 192.168.12.88
insert into test_local(id, name) values (5, 'zhangquan');
insert into test_local(id, name) values (6, 'lihua');
insert into test_local(id, name) values (11, 'bb');
insert into test_local(id, name) values (12, 'acca'); # 查询本地表
:) select * from test_local;
SELECT *
FROM test_local
Query id: d3c540b5-6d0c-446b-aed7-3577e63db1ba
┌─id─┬─name─────┐
│ 1 │ zhangsan │
│ 2 │ lisi │
└────┴──────────┘
2 rows in set. Elapsed: 0.001 sec. # 查询分布式表
:) select * from test_all; SELECT *
FROM test_all Query id: 0dc64653-b760-4144-beb7-1f25d3b2a303 ┌─id─┬─name─────┐
│ 1 │ zhangsan │
│ 2 │ lisi │
│ 7 │ yw │
│ 8 │ xc │
└────┴──────────┘
┌─id─┬─name───┐
│ 3 │ wangm │
│ 4 │ lijing │
│ 9 │ cx │
│ 10 │ aa │
└────┴────────┘
┌─id─┬─name──────┐
│ 5 │ zhangquan │
│ 6 │ lihua │
│ 11 │ bb │
│ 12 │ acca │
└────┴───────────┘ 12 rows in set. Elapsed: 0.005 sec. # 往分布式表里插入一条数据,按照一定的规则插入到不同节点,也可以看出插入到那个节点的本地表里了
192.168.12.91中执行
insert into test_all(id, name) values (13, 'kkkk'); # 查看分布式表,可以看出写入到192.168.12.90的本地表里了
┌─id─┬─name─────┐
│ 1 │ zhangsan │
│ 2 │ lisi │
│ 7 │ yw │
│ 8 │ xc │
└────┴──────────┘
┌─id─┬─name───┐
│ 3 │ wangm │
│ 4 │ lijing │
│ 9 │ cx │
│ 10 │ aa │
│ 13 │ kkkk │
└────┴────────┘
┌─id─┬─name──────┐
│ 5 │ zhangquan │
│ 6 │ lihua │
│ 11 │ bb │
│ 12 │ acca │
└────┴───────────┘
13 rows in set. Elapsed: 0.004 sec.
参考文献资料:
clickhouse集群部署指南(3分片1副本模式) :注意安装
Clickhouse集群安装与部署 :注意:chproxy这块
clickhouse集群部署与搭建:(扩缩容比较重点)
clickhouse测试 注意测试就行
OLAP系列之分析型数据库clickhouse集群部署(二)的更多相关文章
- Clickhouse集群部署
1.集群节点信息 10.12.110.201 ch201 10.12.110.202 ch202 10.12.110.203 ch203 2. 搭建一个zookeeper集群 在这三个节点搭建一个zo ...
- Windows安装redis数据库以及集群部署
1. 安装Redis版本:win-3.0.501https://github.com/MSOpenTech/redis/releases页面有,我下载的是zip版本的:Redis-x64-3.0.50 ...
- kubeadm 线上集群部署(二) K8S Master集群安装以及工作节点的部署
PS:所有机器主机名请提前设置好 在上一篇,ETCD集群我们已经搭建成功了,下面我们需要搭建master相关组件,apiverser需要与etcd通信并操作 1.配置证书 将etcd证书上传到mast ...
- (转)k8s集群部署二:flannel网络
转:https://blog.csdn.net/sinat_35930259/article/details/79946146 Overlay Network模式 覆盖网络,在基础网络上叠加的一种虚拟 ...
- Clickhouse单机及集群部署详解
一.ClickHouse简介 ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域.目前国内社区火热,各个大厂纷纷跟进大规模使用: 今日头条 内部用ClickHous ...
- Clickhouse Docker集群部署
写在前面 抽空来更新一下大数据的玩意儿了,起初架构选型的时候有考虑Hadoop那一套做数仓,但是Hadoop要求的服务器数量有点高,集群至少6台或以上,所以选择了Clickhouse(后面简称CH). ...
- ClickHouse(04)如何搭建ClickHouse集群
ClickHouse集群的搭建和部署和单机的部署是类似的,主要在于配置的不一致,如果需要了解ClickHouse单机的安装设部署,可以看看这篇文章,ClickHouse(03)ClickHouse怎么 ...
- 悠星网络基于阿里云分析型数据库PostgreSQL版的数据实践
说到“大数据”,当下这个词很火,各行各业涉及到数据的,目前都在提大数据,提数据仓库,数据挖掘或者机器学习,但同时另外一个热门的名词也很火,那就是“云”.越来越多的企业都在搭建属于自己的云平台,也有一些 ...
- 回首2018 | 分析型数据库AnalyticDB: 不忘初心 砥砺前行
题记 分析型数据库AnalyticDB(下文简称ADB),是阿里巴巴自主研发.唯一经过超大规模以及核心业务验证的PB级实时数据仓库.截止目前,现有外部支撑客户既包括传统的大中型企业和政府机构,也包括众 ...
- AnalyticDB - 分析型数据库
https://yq.aliyun.com/teams/31?spm=5176.7937365.1120968.ee1.78505692UL9DhG 分析型数据库(AnalyticDB)是一种高并发低 ...
随机推荐
- 记录--TS类型写不好?一起来训练提升吧!
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前期准备 本篇文章的编写目的是为了提升TS类型的书写质量,高质量的类型可以提高项目的可维护性并避免一些潜在的漏洞; 在学习本篇之前需要有一 ...
- Jmeter的Throughput有误差与分布式测试时的坑
我是两台压力机,分布式启动jmeter压测180秒,结果throughput显示3075,我用总请求数/总耗时,64万左右/180秒,得到的TPS是3500左右.误差17% 网上说jmeter的thr ...
- Linux安装Oracle12C及一些参考
目录 安装 系统配置 安装前装备 安装依赖包 创建用户和组 修改内核参数 修改系统资源限制 创建安装目录及设置权限 设置oracle环境变量 安装Oracle 一些参考 compat-libstdc+ ...
- C# ASP.NET MVC 配置 跨域访问
在web.config文件中的 system.webServer 节点下 增加如下配置 <httpProtocol> <customHeader ...
- Makefile 简单学习
一.Makefile 简介 Makefile 是一种常用于编译的脚本语言.它可以更好更方便的管理你的项目的代码编译,节约编译时间(没改动的文件不编译).注意 Makefile 文件命令必须是 Make ...
- #01-Trie,Cayley定理#51nod 1601 完全图的最小生成树计数
题目 分析 考虑建出一棵Trie,然后最小生成树就是0的部分到1的部分连一条边, 这个可以用区间短的一方查询另一棵trie,这样时间复杂度为 \(O(n\log^2{mx})\) 方案数注意相同的 \ ...
- OpenHarmony开发之MQTT讲解
相信MQTT这个名称大家都不陌生,物联网的开发必然会遇到MQTT相关知识的应用.那么什么是MQTT?它有什么特点?它能解决什么问题?它是如何工作的?OpenAtom OpenHarmony(以下简 ...
- Linux 编译 libjpeg-9e
jpeg的库有两个:一个是官方的 libjpeg 还有一个是 libjpeg-turbo JPEG库(libjpeg-turbo):https://libjpeg-turbo.org/ Libjpe ...
- climits 与 符号常量
climits 在老式中是 limits.h 一.引入 #include <climits> 或者 #include <limits.h> 二.符号常量 符号常量 表示 CH ...
- 关于openGauss中的虚拟索引
关于 openGauss 中的虚拟索引 作为曾经的 Oracle 资深使用者,对于 Oracle 11gR2 版本推出的 invisible Index 感觉一直很良好:因为这对于大部分情况下做优化是 ...