**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 keepalivedglobal_defs {router_id LVS_DEVELvrrp_skip_check_adv_addrscript_user root#vrrp_strict}vrrp_script checkranger{script "/root/check_ranger_admin.sh"interval 3weight -20}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.1.241.243}track_script{checkranger}}virtual_server 10.1.241.243 6080 {delay_loop 3lb_algo rrlb_kind DRpersistence_timeout 50protocol TCPreal_server 10.1.241.65 6080 {weight 1HTTP_GET {url {path / # 检查的uri地址#status_code 200digest 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 keepalivedglobal_defs {router_id LVS_DEVELvrrp_skip_check_adv_addrscript_user root#vrrp_strict}vrrp_script checkranger{script "/root/check_ranger_admin.sh"interval 3weight -20}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {10.1.241.243}track_script{checkranger}}virtual_server 10.1.241.243 6080 {delay_loop 3lb_algo rrlb_kind DRpersistence_timeout 50protocol TCPreal_server 10.1.241.68 6080 {weight 1HTTP_GET {url {path / # 检查的uri地址#status_code 200digest 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/shcount=`ps aux | grep -v grep | grep ranger-admin | wc -l`if [ $count -gt 0 ]; thenecho 'ranger is alived.'exit 0elseecho 'ranger is dead.'nohup systemctl stop keepalived.service &exit 0fi
主节点查看虚拟ip是否存在:

至此,keepalived主备安装配置完毕!
通过ranger web界面检查虚拟ip转发状态:
通过ambari开启ranger HA

至此ranger admin HA已经开启。可以避免由于ranger主机宕机导致集群权限不可用
