HAProxy实现Impala的负载均衡

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

#--------------------------------------------------------------------- # 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代理服务

[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测试

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

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LhWorld哥陪你聊算法

从0到1搭建spark集群---企业集群搭建

今天分享一篇从0到1搭建Spark集群的步骤,企业中大家亦可以参照次集群搭建自己的Spark集群。

5133
来自专栏Hadoop实操

如何使用HBase快照实现跨集群全量与增量数据迁移

我们常常会碰到需要迁移HBase数据的场景,当一个HBase集群运行较长时间后,往往数据量都会很大,HBase集群往往支撑的都是线上的业务,不像跑批的Hive/...

9296
来自专栏Hadoop实操

如何在Hue中创建Ssh的Oozie工作流

前面Fayson讲过《如何使用Hue创建Spark1和Spark2的Oozie工作流》和《如何使用Hue创建Spark2的Oozie工作流(补充)》,在创建Oo...

5779
来自专栏张善友的专栏

CentOS 6 使用 yum 安装MongoDB及服务器端配置

安装MongoDB的方法有很多种,可以源代码安装,在Centos也可以用yum源安装的方法。由于MongoDB更新得比较快,我比较喜欢用yum源安装的方法。64...

2949
来自专栏Hadoop实操

如何在CDH集群中部署Kafka Manager

为了能够方便的查看及管理Kafka集群,yahoo提供了一个基于Web的管理工具(Kafka-Manager)。这个工具可以方便的查看集群中Kafka的Topi...

9362
来自专栏搜云库

离线部署 CDH 5.12.1 及使用 CDH 部署 Hadoop 大数据平台集群服务

Cloudera Manager 分为两个部分:CDH和CM。

41410
来自专栏Jed的技术阶梯

Redis 3.x 单节点和伪分布式安装

安装的时候指定端口号和命令执行路径,其余保持默认即可,这里演示另一个服务的安装并省略部分重复内容

1533
来自专栏Hadoop实操

2.OpenLDAP集成SSH登录并使用SSSD同步用户

前面Fayson文章讲《1.如何在CentOS6.5安装OpenLDAP并配置客户端》,安装及配置好OpenLDAP后,如何使用OpenLDAP上的用户登录集群...

8287
来自专栏Hongten

hadoop2-HBase的安装和测试

https://www.cnblogs.com/hongten/p/hongten_hadoop_hbase.html

1981
来自专栏数据订阅

数据订阅案例

我们会通过模拟从库向主库获取对应 binlog 内容进行分析,大概架构图如下,我们会通过解析 binlog ,按照订阅通道配置的库表进行分析,所以几乎对主库没有...

1743

扫码关注云+社区

领取腾讯云代金券