namenodelists="nnip1,nnip2"
nn1=$(echo $namenodelists | cut -d "," -f )
nn2=$(echo $namenodelists | cut -d "," -f )
nn1state=$(curl "http://$nn1:50070/jmx?qry=Hadoop:service=NameNode,name=NameNodeStatus"|grep -c active)
nn2state=$(curl "http://$nn2:50070/jmx?qry=Hadoop:service=NameNode,name=NameNodeStatus"|grep -c active) source /etc/profile
source /root/.profile
curr_nn=$(grep -Po -m1 "http://(.*):50070" /usr/share/hue/desktop/conf/hue.ini |cut -d ':' -f |cut -d "/" -f )
echo $curr_nn
if [ $nn1state -eq ]; then
activenn=$nn1
if [ "X$curr_nn" != "X$activenn" ]; then
echo "nn change, now active is $activenn"
sed -i "s|fs_defaultfs=.*|webhdfs_url=http://$activenn:50070/webhdfs/v1|" /usr/share/hue/desktop/conf/hue.ini
sed -i "s|webhdfs_url=.*|webhdfs_url=http://$activenn:50070/webhdfs/v1|" /usr/share/hue/desktop/conf/hue.ini
ps -ef|grep hue |grep -v grep |awk '{print $2}' |xargs kill - >/dev/null
/usr/bin/nohup /usr/share/hue/build/env/bin/hue runserver 0.0.0.0: > /usr/share/hue/hue.log >& &
fi
fi
if [ $nn2state -eq ]; then
activenn=$nn2
if [ "X$curr_nn" != "X$activenn" ]; then
echo "nn change, now active is $activenn"
sed -i "s|fs_defaultfs=.*|webhdfs_url=http://$activenn:50070/webhdfs/v1|" /usr/share/hue/desktop/conf/hue.ini
sed -i "s|webhdfs_url=.*|webhdfs_url=http://$activenn:50070/webhdfs/v1|" /usr/share/hue/desktop/conf/hue.ini
ps -ef|grep hue |grep -v grep |awk '{print $2}' |xargs kill - >/dev/null
/usr/bin/nohup /usr/share/hue/build/env/bin/hue runserver 0.0.0.0: > /usr/share/hue/hue.log >& &
fi
fi
#start it if not start
live=`ps -ef|grep runserver|grep -v -c grep`
if [ $live -eq ]; then
/usr/bin/nohup /usr/share/hue/build/env/bin/python2. /usr/share/hue/build/env/bin/hue runserver 0.0.0.0: >& &
fi

当前使用hdp3.1,安装namenode ha,配置hue使用的时候需要安装httpfs,但这个版本的httpfs是空的包,安装后很多目录都没有,不能用,

所以采用了上面的方法,配置一个crontab * * * * * /xxx.sh 一分钟检查一次,如果active nn和配置文件中的active nn不一致,则就更新配置,

然后重启hue.

遇到的一个问题是配置在crontab 中不会把hue拉起来,测了很久发现`` $()有问题,改成``的方式是可以的。

上网查找相关的内容,也没有得到很好的解析,有一种说法是``中的内容本身就是经过转义的(和此也 无关的)

最新文章

  1. iOS10推送通知适配
  2. 动画--android图片点击放大动画,并遮挡旁边的控件
  3. 我的github代码库
  4. WPF入门教程系列二——Application介绍
  5. jQuery.lazyload使用及源码分析
  6. java中获取路径中的空格处理(%20)问题
  7. SQL注入自学[第二学:注入环境的简单突破]
  8. 超实用压力测试工具-ab工具
  9. bzoj 4373: 算术天才⑨与等差数列 hash
  10. WPF界面设计技巧(7)—模拟电梯升降的缓动动画
  11. 如何使用Maven创建web工程(详细步骤)
  12. R系列:关联分析;某电商平台的数据;做捆绑销售和商品关联推荐
  13. Nginx前端设置反向代理,后端Apache如何获取访客的真实IP,结合PHP
  14. oracle数据库中的trim不起作用
  15. AI 学习之路
  16. define 的全部使用方法
  17. Redis集群之Jedis的使用
  18. M1/M2总结
  19. 戴尔poweredge r730服务器配置及系统安装详解教程
  20. java-单例详解

热门文章

  1. 跨域知识(一)——CORS
  2. 小爬爬4:12306自动登录&&pyppeteer基本使用
  3. 【Django入坑之路】Form组件
  4. poj3308 最小割
  5. KiCad 5.1.0 镜像圆弧后错位问题
  6. 微信小程序入门到实战(1)-基础知识
  7. AcWing95. 费解的开关 枚举+位运算
  8. JavaWeb登录、注销、退出、记住用户名和密码
  9. 浅析调用android的content provider(一)
  10. Android 使用Toolbar+DrawerLayout快速实现仿“知乎APP”侧滑导航效果