加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

程序员笔记 | 一次Zookeeper扩展之殇

发布时间:2019-05-31 02:18:31 所属栏目:教程 来源:毛正卫
导读:副标题#e# 背景 基于公司发展硬性需求,生产VM服务器要统一迁移到ZStack 虚拟化服务器。检查自己项目使用的服务器,其中zookeeper集群中招,所以需要进行迁移。 迁移计划 为了使迁移不对业务产生影响,最好是采用扩容 - 缩容的方式进行。 说明: 原生产集群

第七、zkServer.sh里的nc命令有问题。

  1. 可能是机器上没有安装nc命令,还有种说法是在zkServer.sh里找到这句: 
  2. STAT=`echo stat | nc localhost $(grep clientPort “$ZOOCFG” | sed -e ‘s/.*=//’) 2> /dev/null| grep Mode` 
  3. 在nc与localhost之间加上 -q 1 (是数字1而不是字母l) 
  4.  
  5. zookeeper版本是3.4.6,zkServer.sh里根本没有这一句(获取状态的语句没有用nc命令) 
  6.  
  7. # -q is necessary on some versions of linux where nc returns too quickly, and no stat result is output 
  8.    clientPortAddress=`grep "^[[:space:]]*clientPortAddress[^[:alpha:]]" "$ZOOCFG" | sed -e 's/.*=//'` 
  9.    if ! [ $clientPortAddress ] 
  10.    then 
  11.        clientPortAddress="localhost" 
  12.    fi 
  13.    clientPort=`grep "^[[:space:]]*clientPort[^[:alpha:]]" "$ZOOCFG" | sed -e 's/.*=//'` 
  14.    STAT=`"$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}"  
  15.             -cp "$CLASSPATH" $JVMFLAGS org.apache.zookeeper.client.FourLetterWordMain  
  16.             $clientPortAddress $clientPort srvr 2> /dev/null     
  17.          | grep Mode` 
  18.    if [ "x$STAT" = "x" ] 
  19.    then 
  20.        echo "Error contacting service. It is probably not running." 
  21.        exit 1 
  22.    else 
  23.        echo $STAT 
  24.        exit 0 
  25.    fi 
  26.    ;; 

以下是自己排查的方式

目前现象老集群数据同步正常,也能进行leader选举(从日志获取),但是无法查看节点状态,同异常信息;进行集群扩容,数据不能同步。

解决方法:

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读