在linux中启动clickhouse后,namenode不能启动,查资料发现是端口被占用,于是就找到以下解决办法:
-
netstat -a -t --numeric-ports -p 列举所有端口号及在使用的进程 发现9000端口被clickhouse占用
tcp6 0 0 [::]:9000 [::]:* LISTEN 1618/clickhouse-ser
- 修改clickhouse的配置文件 clickhouse-server/config.xml 文件
<listen_host>::1</listen_host>
<listen_host>127.0.0.1</listen_host>
-->
<listen_host>::</listen_host> //这样任何机器都可以远程连接clickhouse
<!-- Don't exit if ipv6 or ipv4 unavailable, but listen_host with this protocol specified -->
<!--display_name>production</display_name--> <!-- It is the name that will be shown in the client -->
<http_port>8123</http_port>
<tcp_port>9000</tcp_port> //我这里改成6000了
<mysql_port>9004</mysql_port>
<!-- For HTTPS and SSL over native protocol. -->
将<tcp_port>9000</tcp_port>改为<tcp_port>其它端口号</tcp_port>
- 修改metrika.xml 将端口改为<port>6000</port> 端口号要和clickhouse的<tcp_port>保持一致 要不客户端会报错
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>linux01</host>
<port>6000</port>
</replica>
</shard>
<shard>
<replica>
<internal_replication>true</internal_replication>
<host>linux02</host>
<port>6000</port>
</replica>
</shard>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>linux03</host>
<port>6000</port>
</replica>
</shard>
然后结束clickhouse进程 kill -9 1618 重新启动namenode和clickhouse
启动clickhouse-client时,要加上端口 clickhouse-client --port 6000 start