5.impala高可用
Haprox 和Keepalived来实现impala的高可用配置
按照这篇内容操作你可以实现什么:
在设置的两台机器上可以成功启动Haprox和Keepalived进程和服务,并连接运行
5.1.Haprox 安装配置
在impala的两台数据节点负载均衡机器上安装haproxy
#yum安装命令
yum install -y haproxy
#离线安装
#解压压缩包
tar -vxf haproxy-1.5.18.tar.gz
安装gcc依赖
#安装gcc依赖
yum -y install gcc
安装 haproxy
#安装 haproxy
#进入解压的文件
cd haproxy-1.5.18
#运行命令
#PREFIX 指定安装路径
#TARGET 根据自己的内核版本设置,uname -r查看
make PREFIX=/usr/local/haproxy TARGET=linux2628
make install PREFIX=/usr/local/haproxy
建立配置文件
#建立配置文件
#从haproxy的源码包中的examples下的haproxy.init中获得配置文件的路径# config: /etc/haproxy/haproxy.cfg
#编译安装的配置文件目录与文件没有生成,所以需要我们手动建目录与文件
mkdir /etc/haproxy
touch /etc/haproxy/haproxy.cfg
创建haproxy用户和用户组
#创建haproxy用户和用户组
groupadd haproxy
useradd -g haproxy -s /sbin/nologin haproxy
#在创建的haproxy.cfg文件里配置tcp四层模式(配置两台·)
#这个怎么创建
# 配置文件示例
vim /etc/haproxy/haproxy.cfg
#添加如下
global
log 127.0.0.1 local0
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
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
#option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 600s
timeout queue 600s
timeout connect 600s
timeout client 600s
timeout server 7200s
timeout http-keep-alive 600s
timeout check 600s
maxconn 3000
listen stats
bind 0.0.0.0:25002
mode http
maxconn 10
stats refresh 30s
stats uri /
stats realm CDH\ Haproxy
stats auth admin:123456
listen impala-jdbc-25003 :25003
mode tcp
option tcplog
balance static-rr
server impala01 172.21.33.30:21050 weight 1
server impala02 172.21.34.77:21050 weight 1
listen impala-shell-25004 :25004
mode tcp
option tcplog
balance static-rr
server impala01 172.21.33.30:21000 weight 1
server impala02 172.21.34.77:21000 weight 1
listen hive-jdbc-25005 :25005
mode tcp
option tcplog
balance static-rr
server hive01 172.21.33.30:10000 weight 1
server hive02 172.21.34.77:10000 weight 1
查看/var/lib/haproxy是否存在
#查看/var/lib/haproxy是否存在
ls -l /var/lib/haproxy
#不存在就创建,更改目录的所有者和用户组
mkdir /var/lib/haproxy
chown -R haproxy:haproxy /var/lib/haproxy
添加系统服务
#添加系统服务
cp examples/haproxy.init /etc/init.d/haproxy
vim /etc/init.d/haproxy
#修改: 35行 内容为 BIN=/usr/local/haproxy/sbin/$BASENAME
/usr/sbin/$BASENAME修改为/usr/local/haproxy/sbin/$BASENAME
#注释掉26行
#[ ${NETWORKING} = "no" ] && exit 0
添加该文件的执行权限
#添加该文件的执行权限
chmod +x /etc/init.d/haproxy
#添加haproxy服务为系统自启动项
chkconfig --add /etc/init.d/haproxy
#添加3和5运行级别自启动
chkconfig haproxy --level 35 on
查看已经配置的服务和启动状态
#查看已经配置的服务和启动状态
chkconfig --list
#haproxy 0:关 1:关 2:关 3:开 4:关 5:开 6:关
重新加载systemd系统管理器配置文件
#重新加载systemd系统管理器配置文件
systemctl daemon-reload
配置syslog日志文件
#配置syslog日志文件
vim /etc/rsyslog.d/haproxy.conf
#添加如下
$ModLoad imudp
$UDPServerRun 514
$FileCreateMode 0644 #日志文件权限
$FileOwner root #日志文件的owner
Local0.* /var/log/haproxy.log #local0接口对应的日志输出文件
Local1.* /var/log/haproxy_warn.log #local0接口对应的日志输出文件
启动haproxy
#启动haproxy
systemctl start haproxy
systemctl status haproxy
5.2.Keepalived 安装配置
在两台负载均衡机器上安装keepalived
#在两台负载均衡机器上安装keepalived
#安装keepalived
yum install -y keepalived
修改(主)cloud03机器上keepalived 组件配置文件
#修改(主)cloud03机器上keepalived 组件配置文件
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
vim /etc/keepalived/keepalived.conf
global_defs {
router_id chd_master
}
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
weight 2
}
vrrp_instance haproxy {
state MASTER
interface 端口(ifconfig查看)
virtual_router_id 160
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
track_script {
chk_haproxy
}
virtual_ipaddress {
172.21.33.30
}
}
修改(副) 机器上keepalived 组件配置文件
#修改(副) 机器上keepalived 组件配置文件
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
vim /etc/keepalived/keepalived.conf
global_defs {
router_id chd_backup1
}
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
weight 2
}
vrrp_instance haproxy {
state BACKUP
interface 端口(ifconfig查看)
virtual_router_id 160
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
track_script {
chk_haproxy
}
virtual_ipaddress {
172.21.33.30
}
}
在这两台机器上启动keepalived 服务并设置开机自启动
#在这两台机器上启动keepalived 服务并设置开机自启动
systemctl restart keepalived.service
systemctl enable keepalived.services
systemctl status keepalived.service
高可用地址测试访问
#高可用地址测试访问
#Impala jdbc 测试访问:在172.21.33.22 上执行命令
beeline -u “jdbc:hive2://172.21.33.22:25003/” -n hive -p hive
#Impala-shell 测试访问:在172.21.33.22 上执行命令
impala-shell -l -i 172.21.33.22:25004 -u hive --auth_creds_ok_in_clear
#Hiveserver2 jdbc 测试访问:在172.21.33.22 上执行命令
beeline -u “jdbc:hive2://172.21.33.30:25005/” -n hive -p hive