**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

  1. vi /etc/keepalived/keepalived.conf
  2. ! Configuration File for keepalived
  3. global_defs {
  4. router_id LVS_DEVEL
  5. vrrp_skip_check_adv_addr
  6. script_user root
  7. #vrrp_strict
  8. }
  9. vrrp_script checkranger
  10. {
  11. script "/root/check_ranger_admin.sh"
  12. interval 3
  13. weight -20
  14. }
  15. vrrp_instance VI_1 {
  16. state MASTER
  17. interface eth0
  18. virtual_router_id 51
  19. priority 100
  20. advert_int 1
  21. authentication {
  22. auth_type PASS
  23. auth_pass 1111
  24. }
  25. virtual_ipaddress {
  26. 10.1.241.243
  27. }
  28. track_script
  29. {
  30. checkranger
  31. }
  32. }
  33. virtual_server 10.1.241.243 6080 {
  34. delay_loop 3
  35. lb_algo rr
  36. lb_kind DR
  37. persistence_timeout 50
  38. protocol TCP
  39. real_server 10.1.241.65 6080 {
  40. weight 1
  41. HTTP_GET {
  42. url {
  43. path / # 检查的uri地址
  44. #status_code 200
  45. digest d41d8cd98f00b204e9800998ecf8427e # 用keepalived自带的genhash生成,/usr/bin/genhash -s rsIP -p port -u uri
  46. }
  47. connect_timeout 1 # 链接超时时间
  48. nb_get_retry 3 # 重连次数
  49. delay_before_retry 1 # 重连时间间隔
  50. #connect_port 6080 # 检测端口
  51. }
  52. }
  53. }



keepalived slave节点:

  1. ! Configuration File for keepalived
  2. global_defs {
  3. router_id LVS_DEVEL
  4. vrrp_skip_check_adv_addr
  5. script_user root
  6. #vrrp_strict
  7. }
  8. vrrp_script checkranger
  9. {
  10. script "/root/check_ranger_admin.sh"
  11. interval 3
  12. weight -20
  13. }
  14. vrrp_instance VI_1 {
  15. state BACKUP
  16. interface eth0
  17. virtual_router_id 51
  18. priority 90
  19. advert_int 1
  20. authentication {
  21. auth_type PASS
  22. auth_pass 1111
  23. }
  24. virtual_ipaddress {
  25. 10.1.241.243
  26. }
  27. track_script
  28. {
  29. checkranger
  30. }
  31. }
  32. virtual_server 10.1.241.243 6080 {
  33. delay_loop 3
  34. lb_algo rr
  35. lb_kind DR
  36. persistence_timeout 50
  37. protocol TCP
  38. real_server 10.1.241.68 6080 {
  39. weight 1
  40. HTTP_GET {
  41. url {
  42. path / # 检查的uri地址
  43. #status_code 200
  44. digest d41d8cd98f00b204e9800998ecf8427e # 用keepalived自带的genhash生成,/usr/bin/genhash -s rsIP -p port -u uri
  45. }
  46. connect_timeout 1 # 链接超时时间
  47. nb_get_retry 3 # 重连次数
  48. delay_before_retry 1 # 重连时间间隔
  49. #connect_port 6080 # 检测端口
  50. }
  51. }
  52. }


Check whether ranger is alived.

  1. #!/bin/sh
  2. count=`ps aux | grep -v grep | grep ranger-admin | wc -l`
  3. if [ $count -gt 0 ]; then
  4. echo 'ranger is alived.'
  5. exit 0
  6. else
  7. echo 'ranger is dead.'
  8. nohup systemctl stop keepalived.service &
  9. exit 0
  10. fi

主节点查看虚拟ip是否存在

image.png

至此,keepalived主备安装配置完毕!

通过ranger web界面检查虚拟ip转发状态:
image.png

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