阿里云E-MapReduce(简称EMR)的ClickHouse集群中,主要提供了四种服务配置项以配置ClickHouse集群,包括客户端配置、服务端配置、用户权限配置和拓展配置。本文为您介绍ClickHouse服务的客户端配置、服务端配置和拓展配置。
背景信息
配置项 | 详情 |
---|---|
客户端配置 | client-config |
服务端配置 | server-config |
拓展配置 | server-metrika |
用户权限配置 | 访问权限控制 |
前提条件
已创建E-MapReduce的ClickHouse集群,详情请参见创建集群。
注意事项
- 如果配置可以直接填写在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 readline和tip_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.errorlog | ClickHouse Server中错误日志的输出路径。默认值为/var/log/clickhouse-server/clickhouse-server.err.log。 |
logger.level | 日志的等级,默认等级为information。可以配置的等级从严格到宽松依次为none(关闭日志)、fatal、critical、error、warning、notice、information、debug和trace。 |
logger.size | 日志文件的大小。当文件达到该参数设置的值时,ClickHouse会将其存档并重命名,并创建一个新的日志文件。默认值为1000M。 |
logger.path | ClickHouse Server正常输出的日志文件,默认为/var/log/clickhouse-server/clickhouse-server.log,会输出符合logger.level所指定的日志等级的日志。 |
access_control_path | ClickHouse Server用于存储SQL命令创建的用户和角色配置的文件夹的路径。默认值为/var/lib/clickhouse/access/。 |
user_files_path | 用户文件的目录。会在表的函数file()中被使用。默认值为/var/lib/clickhouse/user_files/。 |
path_to_regions_hierarchy_file | 用于ClickHouse内部字典,包含区域层次结构的文件的路径。默认值为空。 |
path_to_regions_names_files | 用于ClickHouse内部字典,包含区域名称的文件的路径。默认值为空。 |
distributed_ddl.path | 该参数指定了ZooKeeper中用于存储DDL查询队列的路径。默认值为/clickhouse/task_queue/ddl。默认情况下,ClickHouse的操作CREATE、DROP、ALTER和RENAME等都只会影响正在处理查询的这一台机器。设置distributed_ddl相关参数,允许ClickHouse的查询运行在集群中(当且仅当ZooKeeper被使用时)。 |
tmp_policy | 用于存放处理大型查询时产生的临时数据。默认值为空。
从server-metrika服务配置项中的storage_configuration选项中设置的磁盘策略选择一个来设置。
说明 如果此项为空,则使用tmp_path,否则tmp_path会被忽略。
|
path | 包含数据的目录的路径,末尾必须加上正斜线(/)。默认值为/var/lib/clickhouse/。 |
https_port | 通过HTTPS连接到服务器的端口。指定此参数时,必须配置OpenSSL相关参数。如果指定了http_port,此参数会被忽略。默认值为空。 |
query_log.flush_interval_milliseconds | 如果在使用的profile中设置了log_queries=1,则会记录下参与了查询操作的线程信息,这些信息会被记录在表中。query_log系列参数可以来配置此行为,支持的系列参数如下:
|
query_log.engine | |
query_log.partition_by | |
query_log.database | |
query_log.table | |
interserver_http_credentials.user | 如果表使用的引擎是Replicated*类型的,通常情况下,复制是不需要进行身份验证的,但可以通过设置这些参数开启身份验证。这个凭据仅用于副本之间的通信,与ClickHouse客户端的凭据无关。
|
interserver_http_credentials.password | |
mlock_executable | 当ClickHouse启动后执行mlockall可以降低查询延迟,并防止在高IO负载下调出ClickHouse可执行文件。默认值为false。
说明 建议启用此选项,尽管启用此选项会导致启动时间增加几秒钟。
|
trace_log.table | 如果在使用的profile中query_profiler_real_time_period_ns和query_profiler_cpu_time_period_ns其中任意一个值非0,则会将query profiler记录的stack trace存放到表中。trace_log支持的系列参数如下:
|
trace_log.database | |
trace_log.partition_by | |
trace_log.engine | |
trace_log.flush_interval_milliseconds | |
disable_internal_dns_cache | 值非0时禁用内部DNS缓存。默认值为0。
说明 推荐在环境经常变化的系统中使用。例如,Kubernetes。
|
listen_reuse_port | 是否允许Socket间复用相同的Port。取值如下:
|
query_thread_log.table | 如果在使用的profile中设置log_query_threads=1,则会记录下参与了查询操作的线程信息,这些信息会被记录在表中。
|
query_thread_log.database | |
query_thread_log.partition_by | |
query_thread_log.engine | |
query_thread_log.flush_interval_milliseconds | |
default_database | 默认数据库。默认值为default。 |
http_server_default_response | 访问ClickHouse的HTTP Server时,默认返回的页面。 |
display_name | ClickHouse Server端设置的客户端默认提示信息。默认值为空。 |
builtin_dictionaries_reload_interval | 重新加载内置字典的间隔时间,单位为秒。默认值为3600。 |
umask | 文件权限掩码。默认值为027,表示其他用户(操作系统用户)无法读取日志和数据等文件,相同组的用户仅可以读取。 |
uncompressed_cache_size | 表引擎使用MergeTree时,为解压后的block所建立的Cache大小。默认值为0。
如果设置为0,则表示不启用Cache。 |
timezone | 设置服务器的时区。默认值为Asia/Shanghai。 |
max_session_timeout | Session最大超时时间,单位为秒。默认值为3600。 |
default_session_timeout | Session默认超时时间,单位为秒。默认值为60。 |
max_open_files | 打开文件的最大数量。默认值为262144。
说明 该参数与操作系统有关联关系,当此值设置为空时,ClickHouse会使用操作系统设定的max_open_files。
|
tmp_path | 用于处理大型查询的临时数据的路径,末尾必须带上正斜杠(/)。默认值为/var/lib/clickhouse/tmp/。 |
max_concurrent_queries | 可以同时处理查询的最大数量。默认值为100。 |
tcp_port_secure | 用于与客户端安全通信的TCP端口。默认值为空。
说明 配置此参数时,需要设置OpenSSL相关参数。
|
listen_try | 如果通过listen_host所指定的协议(IPv4或IPv6)不可用时,是否立刻退出:
|
mysql_port | 通过MySQL协议与客户端通信的端口。 |
keep_alive_timeout | ClickHouse在关闭连接之前等待传入请求的秒数,单位为秒。默认值为3。 |
max_connections | 允许连接的最大数量。默认值为4096。 |
dns_cache_update_period | 设置更新存储在ClickHouse内部DNS缓存中的IP地址的周期,单位为秒。默认值为15。
更新会在单独系统线程中异步进行。 |
path_to_regions_names_files | 用于ClickHouse内部字典的,包含区域名称的文件的路径。默认为空。 |
include_from | ClickHouse Server中的配置文件是利用XML编写的,其中有一些XML标签中包含了incl属性,这些标签的内容是可以被include_from配置所引用的文件中对应的配置所替换的。默认值为/etc/ecm/clickhouse-conf/clickhouse-server/metrika.xml。 |
interserver_http_port | ClickHouse服务器之间交换数据的端口。默认值为9009。 |
dictionaries_config | 外部字典的配置文件路径。路径可以包含通配符半角句号(.)、星号(*)和半角问号(?)。默认值为*_dictionary.xml。 |
http_port | 通过HTTP连接到服务器的端口。默认值为8123。
ClickHouse官方JDBC也通过此端口访问ClickHouse,请参见clickhouse-jdbc。 |
users_config | 包含用户配置、访问权限、设置配置文件和资源限制配置等配置的文件路径。默认值为users.xml。 |
dictionaries_lazy_load | 延迟加载字典。取值如下:
|
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。 |
listen_backlog | 设置backlog的数量。默认值为64。 |
format_schema_path | 存放输入数据Schema的目录。默认值为/var/lib/clickhouse/format_schemas/。 |
server-metrika
该服务配置项用于生成metrika.xml文件,其默认被ClickHouse Server的config所引用。您可以在EMR控制台ClickHouse服务的配置页面,在默认的server-metrika页签,查看以下参数。
配置项 | 描述 |
---|---|
clickhouse_compression | 为使用MergeTree相关引擎的表设置数据压缩,详细信息请参见Server Settings。默认值为空。
如果需要使用ClickHouse的压缩,请自行添加配置。 |
storage_configuration | 用来指定自定义的磁盘信息。阿里云E-MapReduce默认会自动为每块磁盘创建ClickHouse的数据目录,并且为这些磁盘创建一个HDD in order的磁盘策略。 |
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数量所生成的拓扑。 |
<cluster_emr>
<shard>
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>emr-header-1.cluster-12345</host>
<port>9000</port>
</replica>
<replica>
<host>emr-worker-1.cluster-12345</host>
<port>9000</port>
</replica>
</shard>
<shard>
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>emr-worker-2.cluster-12345</host>
<port>9000</port>
</replica>
<replica>
<host>emr-worker-3.cluster-12345</host>
<port>9000</port>
</replica>
</shard>
</cluster_emr>