首页 > 其他分享 >zookeeper3.5.5以上8080端口占用问题解决

zookeeper3.5.5以上8080端口占用问题解决

时间:2023-11-22 12:11:06浏览次数:29  
标签:8080 zookeeper3.5 端口 echo exit ZOOPIDFILE fi ZOO Dzookeeper

zookeeper 3.5.5启动默认会把AdminService服务启动,这个服务默认是8080端口,是一个通过jetty启动的管理控制台,一般不会用到,网上的复制粘贴就是来自同一个办法如下:

方法一、删除jetty

方法二、修改端口。

修改方法的方法有两种:

在启动脚本中增加 -Dzookeeper.admin.serverPort=你的端口号.

-Dzookeeper.admin.serverPort=你的未使用端口号

在zoo.cfg中增加admin.serverPort=没有被占用的端口号

admin.serverPort=没有被占用的端口号

方法三:停用这个服务。

在启动脚本中增加-Dzookeeper.admin.enableServer=false

-Dzookeeper.admin.enableServer=false

建议选择方法三,因为没有端口需求。
但是问题来了,到底在哪里改,笔者找了很久:
找到 zookeeper/bin 目录下的启动脚本 zkServer.sh

vim /bin/zkServer.sh

1、在哪里改取决于你启动zkServer.sh跟的参数,比如: ./zkServer.sh start-foreground,使用这个命令启动zookeeper可以查看错误信息
2、找到脚本中case语句的start-foreground分支,新增 -Dzookeeper.admin.enableServer=false
重新启动:./zkServer.sh start-foreground

case $1 in
start)
    echo  -n "Starting zookeeper ... "
    if [ -f "$ZOOPIDFILE" ]; then
      if kill -0 `cat "$ZOOPIDFILE"` > /dev/null 2>&1; then
         echo $command already running as process `cat "$ZOOPIDFILE"`.
         exit 1
      fi
    fi
    nohup "$JAVA" $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" \
    "-Dzookeeper.log.file=${ZOO_LOG_FILE}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
    -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='kill -9 %p' \
    -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
    if [ $? -eq 0 ]
    then
      case "$OSTYPE" in
      *solaris*)
        /bin/echo "${!}\\c" > "$ZOOPIDFILE"
        ;;
      *)
        /bin/echo -n $! > "$ZOOPIDFILE"
        ;;
      esac
      if [ $? -eq 0 ];
      then
        sleep 1
        pid=$(cat "${ZOOPIDFILE}")
        if ps -p "${pid}" > /dev/null 2>&1; then
          echo STARTED
        else
          echo FAILED TO START
          exit 1
        fi
      else
        echo FAILED TO WRITE PID
        exit 1
      fi
    else
      echo SERVER DID NOT START
      exit 1
    fi
    ;;
start-foreground)
    ZOO_CMD=(exec "$JAVA")
    if [ "${ZOO_NOEXEC}" != "" ]; then
      ZOO_CMD=("$JAVA")
    fi
    "${ZOO_CMD[@]}" $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" \
    "-Dzookeeper.log.file=${ZOO_LOG_FILE}" "-Dzookeeper.admin.enableServer=false" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
    -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='kill -9 %p' \
    -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG"
    ;;
print-cmd)
    echo "\"$JAVA\" $ZOO_DATADIR_AUTOCREATE -Dzookeeper.log.dir=\"${ZOO_LOG_DIR}\" \
    -Dzookeeper.log.file=\"${ZOO_LOG_FILE}\" -Dzookeeper.root.logger=\"${ZOO_LOG4J_PROP}\" \
    -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='kill -9 %p' \
    -cp \"$CLASSPATH\" $JVMFLAGS $ZOOMAIN \"$ZOOCFG\" > \"$_ZOO_DAEMON_OUT\" 2>&1 < /dev/null"
    ;;
stop)
    echo -n "Stopping zookeeper ... "
    if [ ! -f "$ZOOPIDFILE" ]
    then
      echo "no zookeeper to stop (could not find file $ZOOPIDFILE)"
    else
      $KILL $(cat "$ZOOPIDFILE")
      rm "$ZOOPIDFILE"
      sleep 1
      echo STOPPED
    fi
    exit 0
    ;;
version)
    ZOOMAIN=org.apache.zookeeper.version.VersionInfoMain
    $JAVA -cp "$CLASSPATH" $ZOOMAIN 2> /dev/null
    ;;
restart)
    shift
    "$0" stop ${@}
    sleep 3
    "$0" start ${@}
    ;;
status)
    # -q is necessary on some versions of linux where nc returns too quickly, and no stat result is output
    clientPortAddress=`$GREP "^[[:space:]]*clientPortAddress[^[:alpha:]]" "$ZOOCFG" | sed -e 's/.*=//'`
    if ! [ $clientPortAddress ]
    then
	clientPortAddress="localhost"
    fi
    clientPort=`$GREP "^[[:space:]]*clientPort[^[:alpha:]]" "$ZOOCFG" | sed -e 's/.*=//'`
    if ! [[ "$clientPort"  =~ ^[0-9]+$ ]]
    then
       dataDir=`$GREP "^[[:space:]]*dataDir" "$ZOOCFG" | sed -e 's/.*=//'`
       myid=`cat "$dataDir/myid"`
       if ! [[ "$myid" =~ ^[0-9]+$ ]] ; then
         echo "clientPort not found and myid could not be determined. Terminating."
         exit 1
       fi
       clientPortAndAddress=`$GREP "^[[:space:]]*server.$myid=.*;.*" "$ZOOCFG" | sed -e 's/.*=//' | sed -e 's/.*;//'`
       if [ ! "$clientPortAndAddress" ] ; then
           echo "Client port not found in static config file. Looking in dynamic config file."
           dynamicConfigFile=`$GREP "^[[:space:]]*dynamicConfigFile" "$ZOOCFG" | sed -e 's/.*=//'`
           clientPortAndAddress=`$GREP "^[[:space:]]*server.$myid=.*;.*" "$dynamicConfigFile" | sed -e 's/.*=//' | sed -e 's/.*;//'`
       fi
       if [ ! "$clientPortAndAddress" ] ; then
          echo "Client port not found. Terminating."
          exit 1
       fi
       if [[ "$clientPortAndAddress" =~ ^.*:[0-9]+ ]] ; then
          clientPortAddress=`echo "$clientPortAndAddress" | sed -e 's/:.*//'`
       fi
       clientPort=`echo "$clientPortAndAddress" | sed -e 's/.*://'`
       if [ ! "$clientPort" ] ; then
          echo "Client port not found. Terminating."
          exit 1
       fi
    fi
    echo "Client port found: $clientPort. Client address: $clientPortAddress."
    STAT=`"$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" "-Dzookeeper.log.file=${ZOO_LOG_FILE}" \
             -cp "$CLASSPATH" $JVMFLAGS org.apache.zookeeper.client.FourLetterWordMain \
             $clientPortAddress $clientPort srvr 2> /dev/null    \
          | $GREP Mode`
    if [ "x$STAT" = "x" ]
    then
        echo "Error contacting service. It is probably not running."
        exit 1
    else
        echo $STAT
        exit 0
    fi
    ;;
*)

标签:8080,zookeeper3.5,端口,echo,exit,ZOOPIDFILE,fi,ZOO,Dzookeeper
From: https://www.cnblogs.com/sili-future/p/17848712.html

相关文章

  • 13.centos8 关闭防火墙和selinux或者防火墙开启指定端口
    1.firewalld查看防火墙状态systemctlstatusfirewalld关闭防火墙systemctlstopfirewalld开机自启关闭systemctldisablefirewalld开启防火墙   systemctlstartfirewalld开放指定端口   firewall-cmd--zone=public--add-port=1935/tcp--per......
  • centos7.9 部署FastDFS+Nginx本地搭建文件服务器 高性能的文件服务器集群 同时实现在
    前言FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线......
  • Windows端口占用问题解决
    查询被占用的端口进程8080为端口号netstat-ano|findstr8080杀掉线程14816为进程号taskkill/f/t/im14816......
  • Linux 系统systemd(pid=1)占用80端口导致web程序无法启动
    注意务必组好快照备份后再操作。 做好备份后将/usr/lib/systemd/system内http相关的配置文件重命名后重启主机恢复正常。......
  • nginx的443端口+虚拟主机
    https配置端口:443生成证书文件;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@虚拟主机的配置内容server块虚拟主机:(一)虚拟主机概念虚拟主机指的是一台运行在因特网上的服务器主机分成了多台虚拟的主机,每台虚拟主机是一个独立的站点,虚拟主机可以具有独立的IP,独立的域名,独立的服务端口,......
  • 端口号错误解决 11.17
    在大数据实验二中遇到问题:端口号错误,导致无法对hdfs中文件进行读取,解决办法:输入shell命令;hdfs getconf-confKeyfs.default.name对端口号进行查看......
  • python实现socket端口监听
    #服务端importsocketip_port=('127.0.0.1',1234)sk=socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)sk.bind(ip_port)whileTrue:data=sk.recv(1024).strip().decode()print(data)ifdata=="exit":print(&qu......
  • windows停止占用指定端口的后台进程
    说明有点类似于linux下的使用lsof得到是哪个程序占用了端口,然后再使用kill结束程序#查询占用端口的程序的相关信息sudolsof-i:8080#停止程序kill11111Windows下使用#类似于lsofnetstat-ano|findstr8080#类似于kill-9taskkill/PID11111/F......
  • vue本地开发的时候自定义域名端口
    找到如下文件以记事本方式打开并插入以下代码127.0.0.1localhost127.0.0.1 test.hhProject.com #将此域名指向127.0.0.1本地环境再在项目的配置文件中配置域名和端口即可exportdefaultdefineConfig({plugins:[vue()],server:{host:'test.hhProject.com',......
  • 掌握Linux:查看服务器端口号的实用指南
    当你管理一个Linux服务器时,了解服务器上正在运行的服务以及它们使用的端口是至关重要的。这可以帮助你确保服务正常运行,定位问题,以及提高服务器的安全性。在这篇博客文章中,我将向你介绍如何使用Linux命令来查看服务端口号。查看所有打开的端口要查看服务器上所有打开的端口,可以使......