1. 安装 HAProxy
[root@master ~]# yum -y install haproxy
2. 设置HAProxy配置
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
vim /etc/haproxy/haproxy.cfg
注: Impala守护进程Beeswax端口21000映射到haproxy 25003
Impala守护进程HiveServer2端口21050映射到haproxy 25004
3. 开启HAProxy代理服务
[root@master ~]# Service haproxy start
开启: service haproxy start
关闭: service haproxy stop
重启: service haproxy restart
开机自启动: chkconfig haproxy on
访问 http://{hostname}:1080/stats
表示在Haproxy中已正常配置Impala服务。
以上HAProxy实现Impala的负载均衡。
4.Hue中设置Impala的负载均衡,重启相关服务
server_host:HAProxy服务的HOSTNAME或IP
server_port:HAProxy中配置监听的Impala的端口
5. Impala shell 测试
使用多个终端同时访问,并执行SQL语句,查看是否会通过HAProxy服务自动负载到其它Impala Daemon节点。
打开第一个终端访问并执行SQL
打开第一个终端访问并执行SQL
通过以上测试可以看到,两个终端执行的SQL不在同一个Impala Daemon,这样就实现了Impala Daemon服务的负载均衡。
6. ImpalaJDBC测试
在此注明: 测试环境我测试连接成功了,线上环境始终连接不成功,正在找问题, 待解决后更新。
7. Kerberos 环境下 Impala 负载均衡
在此,我的Haproxy服务安装在了master节点上,所以此处填写master:25003
8. Kerberos环境下 Impala shell 测试
使用多个终端同时访问,并执行SQL语句,查看是否会通过HAProxy服务自动负载到其它Impala Daemon节点。
在此本人用test用户进行测试,首先对test用户进行身份验证
第一个终端:
第二个终端:
通过以上测试可以看到,两个终端执行的SQL不在同一个Impala Daemon,这样就实现了Impala Daemon服务的负载均衡。
问题1: 集群启用Kerberos后,应用impala-shell 进行全表查询或这count查询,报错。待查找原因。
9. Kerberos 环境下 ImpalaJDBC测试
在此注明: 待解决后更新。