zl程序教程

您现在的位置是:首页 >  工具

当前栏目

快速部署高可用的ClickHouse集群

集群部署 快速 可用 ClickHouse
2023-06-13 09:13:39 时间

此解决方案帮助您快速的在亚马逊云上部署高可用的ClickHouse集群。ClickHouse是一款用于联机分析(OLAP)的列式数据库管理系统(DBMS)。它可以被用于多种场景,如电子商务中用户行为数据的记录和分析,广告网络及电信行业中的数据存储和数据统计,信息安全中的日志分析,遥感中的信息挖掘,商业智能、网络游戏以及物联网中的数据处理和价值数据分析等。关于详细的特性信息,请见ClickHouse网站。

为了便于您的测试及使用部署好的ClickHouse集群,此解决方案以OnTime航班飞行公开数据集为例,对数据基于Grafana工具进行了可视化,并提供了统计分析报告。


此解决方案帮助您一键部署高可用的ClickHouse集群环境,您可以通过部署界面选择部署规模和配置参数。此方案还与Amazon S3和Amazon CloudWatch等云服务进行了集成。


该解决方案将会部署如下资源:

1. 为保证高可用,方案支持部署在两个可用区中。

2. 在Amazon Virtual Private Cloud (Amazon VPC) 隔离的网络中划分出公共子网和私有子网部署方案中使用的资源。

3. 动态生成的随机文本字符串用作密码存储在Amazon Secrets Manager。

4. 在公共子网中部署了如下资源:

一台Linux堡垒机作为互联网访问入口,提供Secure Shell (SSH)接入通道,并通过Amazon Auto Scaling group来保证高可用。 Linux堡垒机绑定了一个弹性公网IP对外提供服务。 Linux堡垒机通过一个互联网网关接收网络流量。 使用NAT gateway为Amazon VPC内无公网IP的Amazon EC2实例提供访问互联网的代理服务。

5. 在私有子网中部署了如下资源:

一台部署了ClickHouse客户端的服务器提供对ClickHouse集群的管理访问能力,包括命令行和图形界面的连接方式。 一个使用Amazon EC2实例部署的ClickHouse集群,默认2个节点。 一个使用Amazon EC2实例部署的Zookeeper集群,默认3个节点。用于保存ClickHouse元数据以同步各节点的表复制状态。 一个Amazon ELB使用Network Load Balancer部署在ClickHouse集群之前进行负载均衡。

6. 使用了三个安全组来限制对Amazon EC2实例的访问:

堡垒机安全组用来限制互联网接入的访问地址。 ClickHouse安全组用来限制ClickHouse集群内部通讯访问。 管理安全组用来限制对ClickHouse客户端的访问。

7. 使用一个Amazon S3桶提供ClickHouse分级存储特性,以“clickhouse-data-vpcid”命名规则来创建。

8. 通过Amazon CloudWatch Logs采集和集中管理ClickHouse集群日志并定义了日志保存期限。

9. 使用Amazon CloudWatch仪表板来监测ClickHouse和Zookeeper集群中Amazon EC2实例的CPU、内存、磁盘IO和网络指标,并当部分指标达到阈值时触发告警,通过Amazon Simple Notification Service (Amazon SNS)发送邮件通知。

CPU利用率指标包括cpu_usage_user和cpu_usage_system,当CPU利用率超过90%并且持续超过5分钟时触发告警。 内存利用率指标包括mem_used_percent,当内存利用率超过90%并且持续超过5分钟时触发告警。 磁盘IO指标包括diskio_writes和diskio_reads。 网络指标包括net_bytes_sent和net_bytes_recv。

10. 在您部署解决方案后,您可以使用预先导入的航班样例数据集OnTime,通过 客户端进行统计分析。

部署指南:https://s3.cn-north-1.amazonaws.com.cn/aws-dam-prod/china/Solutions/clickhouse-on-aws/Deployment_Guide_ClickHouse_on_AWS.pdf