更新时间:2024-10-23 GMT+08:00

导入并配置ClickHouse样例工程

背景信息

获取ClickHouse开发样例工程,将工程导入到IntelliJ IDEA开始样例学习。

前提条件

  • 确保本地环境的时间与MRS集群的时间差要小于5分钟,若无法确定,请联系系统管理员。集群的时间可通过FusionInsight Manager页面右下角查看。
  • 已准备开发环境及MRS集群相关配置文件,详情请参考准备ClickHouse应用运行环境

操作场景

ClickHouse针对多个场景提供样例工程,帮助客户快速学习ClickHouse工程。

操作步骤

  1. 参考获取MRS应用开发样例工程,获取样例代码解压目录中“src”目录下的样例工程,可根据实际业务场景选择对应的样例,相关样例介绍请参见ClickHouse样例工程介绍
  2. 在应用开发环境中,导入样例工程到IntelliJ IDEA开发环境。

    1. 在IDEA界面选择“File > New > Project from Existing Sources”。

    2. 在显示的“Select File or Directory to Import”对话框中,选择“clickhouse-examples”文件夹中的“pom.xml”文件,单击“OK”。
    3. 确认后续配置,单击“Next”;如无特殊需求,使用默认值即可。
    4. 选择推荐的JDK版本,单击“Finish”完成导入。

  3. 工程导入完成后,修改样例工程的“conf”目录下的“clickhouse-example.properties”文件,根据实际环境信息修改相关参数。

    MRS 3.1.5之前版本:
    loadBalancerIPList=
    sslUsed=false
    loadBalancerHttpPort=21425
    loadBalancerHttpsPort=21426
    CLICKHOUSE_SECURITY_ENABLED=true
    user=
    #密码明文存储存在安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全
    password=
    clusterName=default_cluster
    databaseName=testdb
    tableName=testtb
    batchRows=10000
    batchNum=10

    MRS 3.1.5及之后版本:

    loadBalancerIPList=
    sslUsed=false
    loadBalancerHttpPort=21425
    loadBalancerHttpsPort=21426
    CLICKHOUSE_SECURITY_ENABLED=true
    user=
    #密码明文存储存在安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全
    password=
    isMachineUser=false
    isSupportMachineUser=true
    clusterName=default_cluster
    databaseName=testdb
    tableName=testtb
    batchRows=10000
    batchNum=10
    clickhouse_dataSource_ip_list=
    native_dataSource_ip_list=

    表1 配置说明表

    配置名称

    默认值

    含义

    loadBalancerIPList

    -

    必填参数,配置为LoadBalance的IP列表。

    登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 实例”,查看所有ClickHouseBalancer实例对应的业务IP地址。

    多个IP地址使用逗号分隔,例如配置为“10.10.10.100,10.10.10.101”。

    sslUsed

    false

    是否启用ssl加密,普通模式集群建议配置为“false”。

    loadBalancerHttpPort

    21425

    LoadBalance的HTTP端口。若sslUsed配置为false,则此参数不允许为空。

    MRS 3.2.0之前版本,登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 实例”,单击对应的ClickHouseBalancer实例,选择“实例配置 > 全部配置”,搜索“lb_http_port”并获取其参数值,默认为21425。

    MRS 3.2.0及之后版本,登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 逻辑集群”,查看对应逻辑集群的HTTP Balancer端口号中的“非加密端口”。

    loadBalancerHttpsPort

    21426

    LoadBalance的HTTPS端口,若sslUsed配置为true,则此参数不允许为空。

    MRS 3.2.0之前版本,登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 实例”,单击对应的ClickHouseBalancer实例,选择“实例配置 > 全部配置”,搜索“lb_https_port”并获取其参数值,默认为21426。

    MRS 3.2.0及之后版本,登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 逻辑集群”,查看对应逻辑集群的HTTP Balancer端口号中的“加密端口”。

    CLICKHOUSE_SECURITY_ENABLED

    true

    ClickHouse安全模式开关,普通模式集群时该参数填写为false。

    user

    无默认值

    表1中已准备好的开发用户。

    password

    无默认值

    开发用户对应的密码。

    密码明文存储存在安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全

    说明:

    如果是在Manager上新建的用户,首次使用前需要修改初始密码。

    isMachineUser

    false

    使用机机用户认证时,参数值修改为true。

    如果配置为true,则user和password参数为机机用户的用户名和密码。

    说明:

    该参数仅适用于MRS 3.1.5及之后版本。

    isSupportMachineUser

    true

    是否支持机机用户认证的功能。

    true:支持机机用户认证的功能。

    false:不支持机机用户认证的功能。

    该参数配置请通过以下操作确认:

    登录Manager,选择“集群 > 服务 > ClickHouse > 配置 > 全部配置”,在“ClickHouseServer(角色)”下选择“安全”,查看“SUPPORT_MACHINE_USER”参数配置。

    说明:

    该参数仅适用于MRS 3.1.5及之后版本。

    clusterName

    default_cluster

    ClickHouse逻辑集群名称,保持默认值。

    databaseName

    testdb

    样例代码工程中需要创建的数据库名称,可以根据实际情况修改。

    tableName

    testtb

    样例代码工程中需要创建的表名称,可以根据实际情况修改。

    batchRows

    10000

    一个批次写入数据的条数。

    batchNum

    10

    写入数据的总批次。

    clickhouse_dataSource_ip_list

    -

    必填参数,配置为ClickHouseBalancer实例的IP列表和http端口。

    多个IP地址使用逗号分隔,具体格式为:ip:port,ip:port,ip:port

    IP和端口获取:

    IP:登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 实例”,查看所有ClickHouseBalancer实例对应的业务IP地址。

    端口:登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 逻辑集群”,查看对应逻辑集群的HTTP Balancer端口号中的“非加密端口”。

    说明:

    该参数仅适用于MRS 3.1.5及之后版本。

    native_dataSource_ip_list

    -

    必填参数,配置为ClickHouseBalancer实例的IP列表和tcp端口。

    多个IP地址使用逗号分隔,具体格式为:ip:port,ip:port,ip:port

    IP和端口获取:

    IP:登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 实例”,查看所有ClickHouseBalancer实例对应的业务IP地址。

    端口:登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 逻辑集群”,查看对应逻辑集群的TCP Balancer端口号中的“非加密端口”。

    说明:

    该参数仅适用于MRS 3.1.5及之后版本。

    ClickHouse提供了基于Loadbalance部署架构,可以将用户访问流量自动分发到多台后端节点,扩展系统对外的服务能力,实现更高水平的应用容错。客户端应用请求集群时,使用基于Nginx的ClickHouseBalancer控制节点来进行流量分发,无论集群写入的负载、读的负载以及应用接入的高可用性都具备了有力的保障。