阿里云E-MapReduce(简称EMR)的ClickHouse集群中,主要提供了四种服务配置项以配置ClickHouse集群,包括客户端配置、服务端配置、用户权限配置和拓展配置。本文为您介绍ClickHouse服务的客户端配置、服务端配置和拓展配置。

背景信息

ClickHouse集群提供的四种服务配置项信息如下表。
配置项 详情
客户端配置 client-config
服务端配置 server-config
拓展配置 server-metrika
用户权限配置 访问权限控制

前提条件

已创建E-MapReduce的ClickHouse集群,详情请参见创建集群

注意事项

由于ClickHouse配置采用XML文件形式,所以相对比较灵活,可以进行多层嵌套。自定义配置时规则如下:
  • 如果配置可以直接填写在yandex标签下,则可以直接新增。
  • 如果配置包含多层嵌套,每层需要直接使用半角句号(.)进行连接。

    例如,在server-users页签中,添加新的用户aliyun,可以设置参数为users.aliyun.password,参数值为密码,您可以自定义。

  • 自定义配置中,请勿使用XML类型作为参数或者参数值。

client-config

该服务配置项用于生成clickhouse-client所使用的config.xml文件。您可以在EMR控制台ClickHouse服务的配置页面,单击client-config页签,查看以下参数。

配置项 描述
user 设置clickhouse-client使用的用户。默认值为default。
password 设置clickhouse-client进程使用的用户密码。默认值为空。
prompt_by_server_display_name.production 在使用clickhouse-client的时候,允许自定义提示符。设置这个选项以配置在不同的display_name情况下的提示符,例如在server-config选项中设置display_name为default时,所展示的提示符为prompt_by_server_display_name.default中所设置的值。设置提示符允许使用的颜色,请参见Color prompts with readlinetip_colors_and_formatting
prompt_by_server_display_name.default
prompt_by_server_display_name.test

server-config

该服务配置项用来生成clickhouse-server进程所使用的config.xml文件。您可以在EMR控制台ClickHouse服务的配置页面,单击server-config页签,查看以下参数。

配置项 描述
tcp_port 通过TCP协议与客户端通信的端口。默认值为9000
logger.count 存档的ClickHouse日志文件个数。当存档的日志文件个数达到该参数设置的值时,ClickHouse会将最早的存档删除。默认值为10
logger.level 日志的等级,默认等级为information。可以配置的等级从严格到宽松依次为none(关闭日志)、fatal、critical、error、warning、notice、information、debug和trace。
logger.size 日志文件的大小。当文件达到该参数设置的值时,ClickHouse会将其存档并重命名,并创建一个新的日志文件。默认值为1000M
distributed_ddl.path 该参数指定了ZooKeeper中用于存储DDL查询队列的路径。默认值为/clickhouse/task_queue/ddl。默认情况下,ClickHouse的操作CREATE、DROP、ALTER和RENAME等都只会影响正在处理查询的这一台机器。设置distributed_ddl相关参数,允许ClickHouse的查询运行在集群中(当且仅当ZooKeeper被使用时)。
default_database 默认数据库。默认值为default。
uncompressed_cache_size 表引擎使用MergeTree时,为解压后的block所建立的Cache大小。默认值为0。

如果设置为0,则表示不启用Cache。

timezone 设置服务器的时区。默认值为Asia/Shanghai
max_session_timeout Session最大超时时间,单位为秒。默认值为3600。
default_session_timeout Session默认超时时间,单位为秒。默认值为60。
max_concurrent_queries 可以同时处理查询的最大数量。默认值为0。
keep_alive_timeout ClickHouse在关闭连接之前等待传入请求的秒数,单位为秒。默认值为10。
http_port 通过HTTP连接到服务器的端口。默认值为8123。

ClickHouse官方JDBC也通过此端口访问ClickHouse,请参见clickhouse-jdbc

listen_host ClickHouse服务器所监听的IP地址。可以指定IPv4和IPv6的地址,如果指定::则代表允许所有地址。可以设置多个IP地址,多个IP地址以逗号(,)分割。例如,127.0.0.1,localhost。默认值为0.0.0.0
default_profile 默认会使用的profile。默认值为default。
mark_cache_size 表引擎使用MergeTree时,mark索引所使用的Cache大小的近似值。默认值为5368709120,单位为Byte。
merge_tree.allow_remote_fs_zero_copy_replication

设置为true,以在Replicated*MergeTree使用DiskHDFS等远程存储时利用其自身的多副本进行备份,ClickHouse的一个Shard下的多个副本中的数据仅会备份元数据。

transaction.enable_public_ip

ClickHouse Server中Transaction需要一个用于标识自身的IP地址,默认使用私网IP地址。

设置此参数值为true,以使用公网IP地址标识自身,但需要所有节点均开启公网IP。

server-metrika

该服务配置项用于生成metrika.xml文件,其默认被ClickHouse Server的config所引用。您可以在EMR控制台ClickHouse服务的配置页面,在默认的server-metrika页签,查看以下参数。

配置项 描述
clickhouse_compression 为使用MergeTree相关引擎的表设置数据压缩,详细信息请参见Server Settings。默认值为空。

如果需要使用ClickHouse的压缩,请自行添加配置。

storage_configuration 用来指定自定义的磁盘信息。
zookeeper_servers 用来配置ClickHouse集群所使用的ZooKeeper信息。默认值为创建ClickHouse集群时同时创建的ZooKeeper的值。多个ZooKeeper节点时,请使用英文逗号(,)进行分隔,例如,emr-header-1.cluster-12345:2181,emr-worker-1.cluster-12345:2181,emr-worker-2.cluster-12345:2181
quotas_default ClickHouse允许配置不同的quota以灵活的使用不同的资源限制。修改该配置项可以修改名为default的quota设置。如果需要添加新的quota设置,您可以添加自定义设置。
clickhouse_remote_servers 用来自定义集群的分片和副本信息。默认值为创建ClickHouse集群时设置的Shard和Replica数量所生成的拓扑。
注意 请谨慎修改该参数值,避免手动更改分片、副本数目及拓扑逻辑,导致集群数据写入或查询出错。

相关文档

ClickHouse参数的详情信息,可以参见以下官方文档:

后续步骤

如果需要修改或添加配置项,请参见管理配置项