
2.启动与停止HAProxy服务,并将服务添加到自启动列表
将/etc/haproxy目录下的haproxy.cfg文件备份,新建haproxy.cfg文件,添加如下配置
主要配置了HAProxy的http状态管理界面、impalashell和impalajdbc的负载均衡。
配置完成后重启HAProxy
浏览器访问http://{hostname}:1080/stats查看状态界面
使用多个终端同时访问,并执行SQL语句,查看是否会通过HAProxy服务自动负载到其它Impala Daemon节点
使用Impala shell访问HAProxy服务的25003端口,命令如下
打开第一个终端访问并执行SQL
同时打开第二个终端访问并执行SQL
通过以上测试可以看到,两个终端执行的SQL不在同一个Impala Daemon,这样就实现了Impala Daemon服务的负载均衡。
url改变为haproxy的host以及impala jdbc负载均衡配置的端口:
编辑/etc/haproxy/haproxy.cfg文件,在文件末尾增加如下配置
重启HAProxy服务
使用Beeline访问HAProxy服务的25005端口,命令如下
url改变为haproxy的host以及hive jdbc负载均衡配置的端口:
一、安装HAProxy1、创建HAProxy运行账户和组
groupadd haproxy #添加haproxy组
useradd -g haproxy haproxy -s /bin/false #创建nginx运行账户haproxy并加入到haproxy组,不允许haproxy用户直接登录系统
2、安装编译工具
yum install gcc gcc-c++ make openssl-devel kernel-devel
3、安装HAProxy
HAProxy下载地址:http://haproxy.1wt.eu/download/1.5/src/haproxy-1.5.2.tar.gz
上传haproxy-1.5.2.tar.gz到/usr/local/src目录中
cd /usr/local/src #进入软件包存放目录
tar zxvf haproxy-1.5.2.tar.gz #解压
cd haproxy-1.5.2 #进入安装目录
make TARGET=linux26 CPU=x86_64 PREFIX=/usr/local/haprpxy #编译
make install PREFIX=/usr/local/haproxy #安装
参数说明:
TARGET=linux26 #使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26
CPU=x86_64 #使用uname -r查看系统信息,如x86_64 x86_64 x86_64 GNU/Linux,此时该参数就为x86_64
PREFIX=/usr/local/haprpxy #/usr/local/haprpxy为haprpxy安装路径
4、设置HAProxy
mkdir -p /usr/local/haproxy/conf #创建配置文件目录
mkdir -p /etc/haproxy #创建配置文件目录
cp /usr/local/src/haproxy-1.5.2/examples/haproxy.cfg /usr/local/haproxy/conf/haproxy.cfg #拷贝配置模板文件
ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg #添加配置文件软连接
cp -r /usr/local/src/haproxy-1.5.2/examples/errorfiles /usr/local/haproxy/errorfiles #拷贝错误页面
ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles #添加软连接
mkdir -p /usr/local/haproxy/log #创建日志文件目录
touch /usr/local/haproxy/log/haproxy.log #创建日志文件
ln -s /usr/local/haproxy/log/haproxy.log /var/log/haproxy.log #添加软连接
cp /usr/local/src/haproxy-1.5.2/examples/haproxy.init /etc/rc.d/init.d/haproxy #拷贝开机启动文件
chmod +x /etc/rc.d/init.d/haproxy #添加脚本执行权限
chkconfig haproxy on #设置开机启动
update-rc.d haproxy defaults 99 # ubuntu 设置开机启动
ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin #添加软连接
5、配置haproxy.cfg参数
cp /usr/local/haproxy/conf/haproxy.cfg /usr/local/haproxy/conf/haproxy.cfg-bak #备份
vi /usr/local/haproxy/conf/haproxy.cfg #编辑,修改
global
log 127.0.0.1 local0 notice
maxconn 2000
user haproxy
group haproxy
defaults
log global
modehttp
option httplog
option dontlognull
retries 3
option redispatch
timeout connect 5000
timeout client 10000
timeout server 10000
listen appname 0.0.0.0:80
mode http
stats enable
stats uri /haproxy?stats
stats realm Strictly\ Private
stats auth A_Username:YourPassword
stats auth Another_User:passwd
balance roundrobin
option httpclose
option forwardfor
server lamp1 10.0.0.1:80 check
server lamp2 10.0.0.2:80 check
这里的haproxy.cfg只是一个案例,你可以根据实际情况修改
HAProxy自带监控页面,需要在HAProxy使用的配置文件haproxy.cfg中添加配置项进行开启,重启HAProxy服务后生效。
添加的配置大致如下:
浏览器地址栏输入 http://127.0.0.1:1080/stats ,用户名/密码输入admin,监控页面效果如下:
可以看到上图页面最下方有个下拉框,在这里可以对HAProxy代理的后台服务进行启停 *** 作,这些 *** 作并不会启动和停止后台服务,只是HAProxy不会对这些机器进行代理了,前端请求发送到HAProxy之后,HAProxy不会把请求发送到已经处于MAINT状态的后台服务。
现在停掉backend中的app1服务,效果是这样的:
我们可以使用命令行进行 *** 作,达到和页面 *** 作同样的效果。为了能使用命令行 *** 作,需要额外的前期准备工作:
1. 编辑HAProxy配置文件开启unix socket
为了让HAProxy产生出一个socket出来,需要在配置文件haproxy.cfg的global区域下添加配置:
stats socket /home/haproxy/haproxy.sock level admin #haproxy.sock文件名和路径可以随意
重启HAProxy服务生效。
2. 安装socat
socat是一个多功能的网络工具软件,名字来由是” Socket CAT”,功能与netcat类似,可以看做netcat的加强版,关于它的详细资料可以自行google,我们这里使用编译源码方式进行安装:
3. socat使用
到这里我们就可以使用socat对后端服务进行 *** 作了,首先输入下面这条命令看下可以使用的命令有哪些
echo ""| socat stdio /home/haproxy/haproxy.sock
输出结果如下:
我们可以使用上面的disable和enable命令启停HAProxy代理的后端或frontend前端服务:
disable与enable支持“agent”、“frontend”、“health”和“server”,命令要比图形界面强大的多,好多参数设定,都可以使用socat来 *** 作。记住一个格式“命令 backend/server”。
熟悉使用方法后,我们可以编写脚本,通过执行脚本文件来启用/停用frontend或server。
远程 *** 作HAProxy
上面的这些 *** 作都是在HAProxy所在的机器上进行的,而且机器上都只开了一个HAProxy进程,生产环境上我们需要在远程机器上对HAProxy进行 *** 作,并且HAProxy会开很多进程,现在针对这种需求进行相应调整。
先把HAProxy的配置修改贴一下:
重启HAProxy。
在另外的机器上安装socat,然后写个脚本haproxy.sh远程停用或启用HAProxy对后台服务的代理:
执行脚本 *** 作代理:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)