前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HAProxy实现Impala的负载均衡

HAProxy实现Impala的负载均衡

原创
作者头像
hallelujah
修改2018-10-23 17:34:59
3.1K1
修改2018-10-23 17:34:59
举报

1. 安装 HAProxy

代码语言:javascript
复制
[root@master ~]# yum -y install haproxy

2. 设置HAProxy配置

代码语言:javascript
复制
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
vim /etc/haproxy/haproxy.cfg

#--------------------------------------------------------------------- # Example configuration for a possible web application. See the # full configuration options online. # # http://haproxy.1wt.eu/download/1.4/doc/configuration.txt # #--------------------------------------------------------------------- #--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats #--------------------------------------------------------------------- # common defaults that all the 'listen' and 'backend' sections will # use if not designated in their block #--------------------------------------------------------------------- defaults mode http#mode { tcp|http|health },tcp 表示4层,http表示7层,health仅作为健康检查使用 log global option httplog option dontlognull #option http-server-close #option forwardfor except 127.0.0.0/8 #option abortonclose##连接数过大自动关闭 option redispatch#如果失效则强制转换其他服务器 retries 3#尝试3次失败则从集群摘除 timeout http-request 10s timeout queue 1m #timeout connect 10s #timeout client 1m #timeout server 1m timeout connect 1d#连接超时时间,重要,hive查询数据能返回结果的保证 timeout client 1d#同上 timeout server 1d#同上 timeout http-keep-alive 10s timeout check 10s#健康检查时间 maxconn 3000#最大连接数 listen status#定义管理界面 bind 0.0.0.0:1080#管理界面访问IP和端口 mode http#管理界面所使用的协议 option httplog maxconn 5000#最大连接数 stats refresh 30s#30秒自动刷新 stats uri /stats listen jdbchive bind 0.0.0.0:25005#ha作为proxy所绑定的IP和端口 mode tcp#以4层方式代理,重要 option tcplog balance source#调度算法 'leastconn' 最少连接数分配,或者 'roundrobin',轮询分 server hiveServer1 master:10000 check server hiveServer2 nns:10000 check listen impalashell bind 0.0.0.0:25003#ha作为proxy所绑定的IP和端口 mode tcp#以4层方式代理,重要 option tcplog balance leastconn#调度算法 'leastconn' 最少连接数分配,或者 'roundrobin',轮询分 server impalashell_dn1 dn1:21000 check server impalashell_dn2 dn2:21000 check server impalashell_dn3 dn3:21000 check server impalashell_dn4 dn4:21000 check server impalashell_dn5 dn5:21000 check listen impalajdbc bind 0.0.0.0:25004#ha作为proxy所绑定的IP和端口 mode tcp#以4层方式代理,重要 option tcplog balance source#调度算法 'leastconn' 最少连接数分配,或者 'roundrobin',轮询分 server impalajdbc_dn1 dn1:21050 check server impalajdbc_dn2 dn2:21050 check server impalajdbc_dn3 dn3:21050 check server impalajdbc_dn4 dn4:21050 check server impalajdbc_dn5 dn5:21050 check #--------------------------------------------------------------------- # main frontend which proxys to the backends #--------------------------------------------------------------------- frontend main *:5000 acl url_static path_beg -i /static /images /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static default_backend app #--------------------------------------------------------------------- # static backend for serving up images, stylesheets and such #--------------------------------------------------------------------- backend static balance roundrobin server static 127.0.0.1:4331 check #--------------------------------------------------------------------- # round robin balancing between the various backends #--------------------------------------------------------------------- backend app balance roundrobin server app1 127.0.0.1:5001 check server app2 127.0.0.1:5002 check server app3 127.0.0.1:5003 check server app4 127.0.0.1:5004 check

注: Impala守护进程Beeswax端口21000映射到haproxy 25003

        Impala守护进程HiveServer2端口21050映射到haproxy 25004

3. 开启HAProxy代理服务

代码语言:javascript
复制
[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测试

在此注明: 待解决后更新。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档