代码改变世界

ClickHouse 网络端口

  abce  阅读(1447)  评论(0编辑  收藏  举报

查看clickhouse默认都启用了哪些端口

1
2
3
4
5
6
# netstat -tulpn |grep LISTEN|grep click
tcp        0      0 0.0.0.0:9004            0.0.0.0:*               LISTEN      578/clickhouse-serv
tcp        0      0 0.0.0.0:9005            0.0.0.0:*               LISTEN      578/clickhouse-serv
tcp        0      0 0.0.0.0:9009            0.0.0.0:*               LISTEN      578/clickhouse-serv
tcp        0      0 0.0.0.0:8123            0.0.0.0:*               LISTEN      578/clickhouse-serv
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      578/clickhouse-serv

从输出结果可以看到,有五个端口。接下来看看这些端口的分别是用来干什么的。这可以通过从clickhouse的配置文件中查看:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# cat /etc/clickhouse-server/config.xml | grep 9004 | head -1
    <mysql_port>9004</mysql_port>
mysql仿真端口,用于mysql客户端访问clickouse
     
# cat /etc/clickhouse-server/config.xml | grep 9005 | head -1
    <postgresql_port>9005</postgresql_port>
postgresql仿真端口,用于psql客户端访问clickouse
     
# cat /etc/clickhouse-server/config.xml | grep 9009 | head -1
    <interserver_http_port>9009</interserver_http_port>
低级别数据访问,用于数据交换、复制和服务器间通用的通信   
     
# cat /etc/clickhouse-server/config.xml | grep 8123 | head -1
    <http_port>8123</http_port>
http协议端口,用于web交互、jdbc、odbc
 
# cat /etc/clickhouse-server/config.xml | grep 9000 | head -1
    <tcp_port>9000</tcp_port>
9000是本地协议端口,即clickhouse的tcp协议端口。由 ClickHouse 应用程序和进程(如 Clickhouse-服务器、Clickhouse-客户端和本地 ClickHouse 工具)使用。用于分布式查询的服务器间通信。

clickhouse还支持很多其它接口,因此除了上面这些端口之外,还会用到其它很多端口。以下所有端口列表:

端口

描述

2181

zookeeper默认服务端口

8123

http api接口,用于jdbc、odbc和web接口的http请求

8443

https默认端口

9000

本地协议端口,即clickhouse的tcp协议端口。由 ClickHouse 应用程序和进程(如 Clickhouse-服务器、Clickhouse-客户端和本地 ClickHouse 工具)使用。用于分布式查询的服务器间通信。

9004

mysql仿真端口,用于mysql客户端访问clickouse

9005

postgresql仿真端口,用于psql客户端访问clickouse

9009

低级别数据访问,用于数据交换、复制和服务器间通用的通信

9010

服务器间通用的通信的ssl/tls 端口

9011

PROXYv1协议端口

9019

jdbc桥

9100

gRPC端口

9181

建议的ClickHouse Keeper端口

9234

建议的ClickHouse Keeper Raft端口

9363

Prometheus端口

9281

推荐的SSL ClickHouse Keeper

9440

原生SSL/TLS协议端口

42000

Graphite default port

客户化 clickhouse 网络配置

可以在/etc/clickhouse-server/config.d/目录下创建新增一个文件,用于客户化网络配置,当然也可以在 /etc/clickhouse-server/config.xml 中直接配置。例如:

1
2
3
4
5
6
7
# cat /etc/clickhouse-server/config.d/listen.xml
<clickhouse>
     <!-- Listen wildcard address to allow accepting connections from other containers and host network. -->
    <listen_host>::</listen_host>
    <listen_host>0.0.0.0</listen_host>
    ...
</clickhouse>

这里,<listen_host>的设置非常重要,除了开放端口,还可以锁定指定的ip地址。 示例中有两天配置,一个用于ipv6,一个用于ipv4

移除开放的端口

比如是在容器中运行,想关闭mysql和pg的仿真端口。

1
2
3
4
5
6
7
8
mkdir config.d
cat << EOF > ./config.d/disable_mysql_and_postresql_ports.xml
<clickhouse>
   <!-- Disable MySQL and PostreSQL emulation ports -->
   <mysql_port remove="true"/>
   <postgresql_port remove="true"/>
</clickhouse>
EOF

这里用到的remove属性。可以把该文件放在config.d中,也可以将该文件放在/etc/clickhouse-server/conf.d中。

修改端口号

跟移除端口类似,可以使用replace属性、或者增加一个更新条目来重载对应的配置条目。比如,想把http协议端口8123改成8823。

1
2
3
4
5
6
cat << EOF > ./config.d/http_port.xml
<clickhouse>
   <!-- Change HTTP client port -->
   <http_port>8823</http_port>
</clickhouse>
EOF

增加端口

1
2
3
4
5
6
7
8
9
10
11
12
cat << EOF > ./config.d/prometheus.xml
<clickhouse>
    <prometheus>
        <endpoint>/metrics</endpoint>
        <port>9363</port>
        <metrics>true</metrics>
        <events>true</events>
        <asynchronous_metrics>true</asynchronous_metrics>
        <status_info>true</status_info>
    </prometheus>
</clickhouse>
EOF
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2017-03-20 oracle 12c common user与local user
2016-03-20 Oracle 10046 trace文件分析
点击右上角即可分享
微信分享提示