您现在的位置是:群英 > 服务器 > 系统运维
想做负载均衡?可以考虑用Impala实现
Admin发表于 2023-09-23 11:22:58273 次浏览
这篇文章主要介绍了title,讲解详细,步骤过程清晰,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。


1.文档编写目的


在使用Impala JDBC连接Impala服务时,默认是不带负载均衡的,但一个Impala Daemon很可能会产生单点的问题,这里我们就需要考虑Impala Daemon的负载均衡,官方推荐并支持的负载均衡为HAProxy,参考:

https://www.cloudera.com/documentation/enterprise/latest/topics/impala_proxy.html。

但我们常常会碰到企业已经在用Nginx,Nginx毕竟在http和反向代理这块是最优秀的,这个时候我们就需要考虑复用Nginx。所以在这篇文章就介绍一下如何使用Nginx实现Impala服务的负载均衡。

  • 内容概述

1.Nginx安装及启停

2.配置Impala负载均衡策略

3.Impala shell及JDBC测试

4.使用keepalived保证nginx高可用

  • 测试环境

1.CM和CDH版本为5.13.0

2.采用root用户操作CentOS7.4

3.Nginx1.12.2

4.集群未启用Kerberos

5.机器角色分配 A(192.168.32.138)  需要安装Nginx  Keepalived      B(192.168.32.134)需要安装Nginx  Keepalived

2.Nginx服务安装及启停


1.下载Nginx安装包,下载地址如下

选择集群中任意一台服务器用来安装Nginx服务或者选用一台独立的服务器用来部署Nginx,需要确保Nginx所在的服务器与集群中所有的Impala节点网络是通的(包括端口号21050)

http://nginx.org/download/nginx-1.12.2.tar.gz

安装编译Nginx必备工具

yum install -y gcc

yum install -y gcc-c++

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

yum install -y openssl openssl-devel

cd /usr/local/src/

wget  http://nginx.org/download/nginx-1.12.2.tar.gz

2.解压nginx-1.21.2.tar.gz压缩包,并进行编译安装
tar -zxf nginx-1.12.2.tar.gz  
 cd nginx-1.12.2
./configure --with-stream

 

make && make install

注意:必须编译stream模块

默认Nginx的安装目录为/usr/local/nginx

3.启动与停止Nginx

启动

cd /usr/local/nginx/sbin/

./nginx

停止

./nginx  -s stop

4.测试Nginx是否正常访问,在浏览器输入http://{安装Nginx的服务器IP}

出现 Welcome to nginx! 页面表示nginx已启动成功。

3.配置Impala负载均衡策略

1.修改/usr/local/nginx/conf/nginx.conf文件,在文件末尾增加如下配置

stream{
  log_format basic '$remote_addr [$time_local] ' '$protocol $status $bytes_sent $bytes_received' '$session_time';

  upstream impala { #impala daemon
    least_conn; #路由策略:least_conn:最少连接
    server 192.168.32.134:21000;
    server 192.168.32.135:21000;
    server 192.168.32.136:21000;

}
upstream impalajdbc {
least_conn;


    server 192.168.32.134:21050;

server 192.168.32.135:21050;
server 192.168.32.136:21050;
}
server{ #impala 负载均衡
listen 21001;
proxy_pass impala;
}
server{ #impala jdbc 负载均衡
listen 21051;
proxy_pass impalajdbc;


  }

}

2.重启Nginx

停止

cd /usr/local/nginx/sbin/

./nginx  -s stop

启动

./nginx

4.测试Impala负载均衡

1.在192.168.32.134节点使用impala-shell连接Impala(假设此时nginx安装在192.168.32.134上)

 impala-shell -i 192.168.32.134:21001

经过多条sql语句测试即可测出执行sql操作时,连接的不为同一个Impala Daemon。

5.Impala JDBC连接测试

此处使用工具dbeaver链接Impala进行测试。

ip 192.168.32.134

port 21051

6.使用Keepalived保证Nginx高可用

1、keepalived简介

Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat、corosync、pacemaker。

但是它一般不会单独出现,而是与其它负载均衡技术(如lvs、haproxy、nginx)一起工作来达到集群的高可用。

Keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作;

当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

2、 安装

cd /usr/local/src

#下载
wget http://www.keepalived.org/software/keepalived-1.2.23.tar.gz
#解压
tar -zxvf keepalived-1.2.23.tar.gz
cd keepalived-1.2.23
#安装
./configure --prefix=/usr/local/keepalived   #prefix指定安装目录
make
make install

3、配置
    指定配置文件,修改 /usr/local/keepalived/etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-D -f /usr/local/keepalived/etc/keepalived/keepalived.conf" #指定keepalived配置文件路径
因为我们使用非默认路径(/usr/local)安装keepalived,需要设置一些软链接以保证keepalived能正常启动
ln -s /usr/local/keepalived/sbin/keepalived  /usr/bin #将keepalived主程序加入到环境变量
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived  /etc/init.d/ #keepalived启动脚本,放到/etc/init.d/目录下就可以使用service命令便捷调用
ln -s /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/ #keepalived启动脚本变量引用文件,默认文件路径是/etc/sysconfig/,也可以不做软链接,直接修改启动脚本中文件路径即可

4、启动

service keepalived start|stop|restart
chkconfig keepalived on

默认的配置文件中,指定了虚拟IP :192.168.32.200,可使用ip addr(或ip a)命令验证之。

5、应用

keepalived两种模式:主-备

主-备

虚拟IP:192.168.32.200        主节点:192.168.32.138         备用节点:192.168.32.134

主配置文件

【/usr/local/keepalived/etc/keepalived/keepalived.conf】

global_defs {
    notification_email { #指定keepalived在发生事情的时候,发送邮件告知,可以有多个地址,每行一个。
        acassen@firewall.loc
        failover@firewall.loc
        sysadmin@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc #指定发件人
    smtp_server 127.0.0.1 #发送email的smtp地址
    smtp_connect_timeout 30 #超时时间
    router_id LVS_DEVEL #运行keepalived的机器的一个标识,多个节点标识可以相同,也可以不同
    vrrp_skip_check_adv_addr 
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER #指定当前节点为主节点 备用节点上设置为BACKUP即可
    interface eth0 #绑定虚拟IP的网络接口
    virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组
    priority 100 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低
    advert_int 1
    authentication { #设置验证信息,两个节点必须一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress { #指定虚拟IP, 两个节点设置必须一样
        192.168.32.200
    }
}    

备配置文件
【/usr/local/keepalived/etc/keepalived/keepalived.conf】

 

global_defs {
    notification_email { #指定keepalived在发生事情的时候,发送邮件告知,可以有多个地址,每行一个。
        acassen@firewall.loc
        failover@firewall.loc
        sysadmin@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc #指定发件人
    smtp_server 127.0.0.1 #发送email的smtp地址
    smtp_connect_timeout 30 #超时时间
    router_id LVS_DEVEL #运行keepalived的机器的一个标识,多个节点标识可以相同,也可以不同
    vrrp_skip_check_adv_addr 
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP #指定当前节点为主节点 备用节点上设置为BACKUP即可
    interface eth0 #绑定虚拟IP的网络接口
    virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组
    priority 99 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低
    advert_int 1
    authentication { #设置验证信息,两个节点必须一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress { #指定虚拟IP, 两个节点设置必须一样
        192.168.32.200
    }
}

关于“想做负载均衡?可以考虑用Impala实现”的内容就介绍到这,感谢各位的阅读,相信大家对想做负载均衡?可以考虑用Impala实现已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注群英网络,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2022-08-15 17:31:13 
摘要:linux控制台是显示linux系统消息的终端设备或软件。Linux默认所有虚拟终端都是控制台,都能显示系统消息;且对于那些专门用来模拟终端设备的程序,例如“gnome-terminal”、“mlterm”等软件,也可称为控制台。
2021-12-28 18:56:43 
摘要:移动云计算怎样理解?随着云计算的快速发展,我们生活中接触到的云计算也越来越多,其中一些朋友对于移动云计算的比较好奇,想要学习移动云计算,对此这篇就给大家来详细的介绍一下移动云计算及其需要学习的内容。
2023-09-23 11:21:14 
摘要:CentOS下设置nginx开机自动启动和chkconfig管理
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部