**1.1. Ranger
Ranger自身没有高可用方案,通过ambari开启ranger HA时需要使用第三方组件虚拟出一个ip来提供ranger admin服务,我们这次使用keepalived组件。开启ranger HA后可以解决ranger主机宕机导致集群权限不可用问题。
在安装keepalived的主机上开启路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.ip_nonlocal_bind = 1
生效:/sbin/sysctl -p
Keepalived安装配置
安装 yum install ipset
可以使用yum或下载rpm包安装。
使用root用户执行: yum install keepalived -y
等待ranger主备两台主机安装完keepalived后,进行配置。
先查询某个url的md5值:# genhash -s 10.1.241.65 -p 6080 -u /
MD5SUM = d41d8cd98f00b204e9800998ecf8427e
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
script_user root
#vrrp_strict
}
vrrp_script checkranger
{
script "/root/check_ranger_admin.sh"
interval 3
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.1.241.243
}
track_script
{
checkranger
}
}
virtual_server 10.1.241.243 6080 {
delay_loop 3
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 10.1.241.65 6080 {
weight 1
HTTP_GET {
url {
path / # 检查的uri地址
#status_code 200
digest d41d8cd98f00b204e9800998ecf8427e # 用keepalived自带的genhash生成,/usr/bin/genhash -s rsIP -p port -u uri
}
connect_timeout 1 # 链接超时时间
nb_get_retry 3 # 重连次数
delay_before_retry 1 # 重连时间间隔
#connect_port 6080 # 检测端口
}
}
}
keepalived slave节点:
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
script_user root
#vrrp_strict
}
vrrp_script checkranger
{
script "/root/check_ranger_admin.sh"
interval 3
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.1.241.243
}
track_script
{
checkranger
}
}
virtual_server 10.1.241.243 6080 {
delay_loop 3
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 10.1.241.68 6080 {
weight 1
HTTP_GET {
url {
path / # 检查的uri地址
#status_code 200
digest d41d8cd98f00b204e9800998ecf8427e # 用keepalived自带的genhash生成,/usr/bin/genhash -s rsIP -p port -u uri
}
connect_timeout 1 # 链接超时时间
nb_get_retry 3 # 重连次数
delay_before_retry 1 # 重连时间间隔
#connect_port 6080 # 检测端口
}
}
}
Check whether ranger is alived.
#!/bin/sh
count=`ps aux | grep -v grep | grep ranger-admin | wc -l`
if [ $count -gt 0 ]; then
echo 'ranger is alived.'
exit 0
else
echo 'ranger is dead.'
nohup systemctl stop keepalived.service &
exit 0
fi
主节点查看虚拟ip是否存在:
至此,keepalived主备安装配置完毕!
通过ranger web界面检查虚拟ip转发状态:
通过ambari开启ranger HA
至此ranger admin HA已经开启。可以避免由于ranger主机宕机导致集群权限不可用