背景
如题,想对自己三节点的clickhouse做负载均衡。
步骤
1、下载nginx
yum install nginx
2、修改nginx配置
vim /etc/nginx/nginx.conf
3、配置文件内容
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
upstream clickhouse {
server xxx.xxx.xxx.xxx:8123;
server xxx.xxx.xxx.xxx:8123;
server xxx.xxx.xxx.xxx:8123;
}
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 8000;
server_name smartck.com;
location / {
proxy_pass http://clickhouse;
}
}
}
4、检测配置文件
cd /etc/nginx/ && /usr/sbin/nginx -t
如下,则代表配置文件格式没问题。
5、启动nginx
systemctl start nginx.service
systemctl status nginx.service
以下,则代表nginx启动成功
6、clickhouse链接测试
链接后查看链接节点,在hadoop002节点上。
断开后重新链接,连接到hadoop001节点上。
至此,收工。
踩坑记录
报错:Code: 102. DB::NetException: Unexpected packet from server localhost:8123 (expected Hello or Exception, got Unknown packet). (UNEXPECTED_PACKET_FROM_SERVER)
个人认为是因为8123是http访问端口,而通过「clickhouse-client -m」访问是tcp的访问类型,所以clickhouse-client -m -port 8123链接不上。
思考: 个人认为是因为8123是http访问端口,而通过「clickhouse-client -m」访问是属于tcp的访问类型,所以无法通过clickhouse-client -m -port 8123链接不上。
报错:Code: 210. DB::NetException: Connection refused (localhost:9000). (NETWORK_ERROR)
思考: 思考了一下,原因是因为9000端口之前被hadoop平台占用、所以将端口修改为19000。如果有相关的报错,这是一个排查方向。