DataSophon集成Zookeeper3.9.3升级手册

Datasophon1.2.1集成Zookeeper3.9.3

Zookeeper 下载地址: https://archive.apache.org/dist/zookeeper/zookeeper-3.9.3/

下载Zookeeper

wget -P /opt/datasophon/DDP/packages https://archive.apache.org/dist/zookeeper/zookeeper-3.9.3/apache-zookeeper-3.9.3-bin.tar.gz

构建压缩包

解压缩

cd /opt/datasophon/DDP/packages

tar -zxvf apache-zookeeper-3.9.3-bin.tar.gz

创建logs文件夹

# 创建logs文件夹
mkdir -p /opt/datasophon/DDP/packages/apache-zookeeper-3.9.3-bin/logs

创建jmx文件夹

# 创建jmx文件夹
# mkdir -p /opt/datasophon/DDP/packages/apache-zookeeper-3.9.3-bin/jmx

tar -zxvf /opt/datasophon/DDP/packages/zookeeper-3.5.10.tar.gz

# 拷贝监听jar包-这里可以选择将原Zookeeper3.5.10版本的压缩包进行解压得到
# jxm文件夹下包含jmx_prometheus_javaagent-0.16.1.jar和zookeeper.yaml
cp -r /opt/datasophon/DDP/packages/zookeeper-3.5.10/jmx /opt/datasophon/DDP/packages/apache-zookeeper-3.9.3-bin/

# zookeeper.yaml文件内容如下:
vi /opt/datasophon/DDP/packages/apache-zookeeper-3.9.3-bin/jmx/zookeeper.yaml
rules:
  # replicated Zookeeper
  - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+)><>(\\w+)"
    name: "zookeeper_$2"
    type: GAUGE
  - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+)><>(\\w+)"
    name: "zookeeper_$3"
    type: GAUGE
    labels:
      replicaId: "$2"
  - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+)><>(Packets\\w+)"
    name: "zookeeper_$4"
    type: COUNTER
    labels:
      replicaId: "$2"
      memberType: "$3"
  - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+)><>(\\w+)"
    name: "zookeeper_$4"
    type: GAUGE
    labels:
      replicaId: "$2"
      memberType: "$3"
  - pattern: "org.apache.ZooKeeperService<name0=ReplicatedServer_id(\\d+), name1=replica.(\\d+), name2=(\\w+), name3=(\\w+)><>(\\w+)"
    name: "zookeeper_$4_$5"
    type: GAUGE
    labels:
      replicaId: "$2"
      memberType: "$3"
  # standalone Zookeeper
  - pattern: "org.apache.ZooKeeperService<name0=StandaloneServer_port(\\d+)><>(\\w+)"
    type: GAUGE
    name: "zookeeper_$2"
  - pattern: "org.apache.ZooKeeperService<name0=StandaloneServer_port(\\d+), name1=InMemoryDataTree><>(\\w+)"
    type: GAUGE
    name: "zookeeper_$2"

准备zkStatus.sh状态文件

vi /opt/datasophon/DDP/packages/apache-zookeeper-3.9.3-bin/bin/zkStatus.sh

#!/bin/bash
usage="Usage: start.sh (start|stop|restart) <command> "

# if no args specified, show usage
if [ $# -le 1 ]; then
  echo $usage
  exit 1
fi
startStop=$1
shift
command=$1
SH_DIR=`dirname $0`


status(){
  echo "start check $command status"
	pid=`jps | grep -iw QuorumPeerMain | grep -v grep | awk '{print $1}'`
	echo "pid is : $pid"
	kill -0 $pid
	if [ $? -eq 0 ]
	then
		echo "$command is  running "
	else
		echo "$command  is not running"
		exit 1
	fi
}
case $startStop in
  (status)
	  status
	;;
  (*)
    echo $usage
    exit 1
    ;;
esac


echo "End $startStop $command."

# 授权-给可执行权限
chmod 755 /opt/datasophon/DDP/packages/apache-zookeeper-3.9.3-bin/bin/zkStatus.sh

修改zkServer.sh脚本文件

image-20241216174410029

# 大约在164行
nohup "$JAVA" $ZOO_DATADIR_AUTOCREATE "-javaagent:$ZOOBINDIR/../jmx/jmx_prometheus_javaagent-0.16.1.jar=2191:$ZOOBINDIR/../jmx/zookeeper.yaml" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" \

重新构建压缩包

cd /opt/datasophon/DDP/packages

# 这里注意一定要将文件包重命名成zookeeper-{version},否则后面安装会报错。
# 不进行重命名也可以,需要在service_ddl.json中指定decompressPackageName的包名
mv apache-zookeeper-3.9.3-bin zookeeper-3.9.3

tar czf zookeeper-3.9.3.tar.gz zookeeper-3.9.3

md5sum zookeeper-3.9.3.tar.gz | awk '{print $1}' > zookeeper-3.9.3.tar.gz.md5

修改配置文件service_ddl.json

进入datasophon-manager-1.2.1中

vi /opt/datasophon/datasophon-manager-1.2.1/conf/meta/DDP-1.2.1/ZOOKEEPER/service_ddl.json
{
  "name": "ZOOKEEPER",
  "label": "ZooKeeper",
  "description": "分布式协调系统",
  "version": "3.9.3",
  "sortNum": 3,
  "dependencies":[],
  "packageName": "zookeeper-3.9.3.tar.gz",
  "decompressPackageName": "zookeeper-3.9.3",
  "roles": [
    {
      "name": "ZkServer",
      "label": "ZkServer",
      "roleType": "master",
      "cardinality": "1+",
      "logFile": "logs/zookeeper-root-server-${host}.out",
      "jmxPort": 2191,
      "startRunner": {
        "timeout": "60",
        "program": "bin/zkServer.sh",
        "args": [
          "start"
        ]
      },
      "stopRunner": {
        "timeout": "600",
        "program": "bin/zkServer.sh",
        "args": [
          "stop"
        ]
      },
      "statusRunner": {
        "timeout": "60",
        "program": "bin/zkStatus.sh",
        "args": [
          "status",
          "zookeeper"
        ]
      },
      "restartRunner": {
        "timeout": "60",
        "program": "bin/zkServer.sh",
        "args": [
          "restart"
        ]
      }
    }
  ],
  "configWriter": {
    "generators": [
      {
        "filename": "zoo.cfg",
        "configFormat": "properties",
        "outputDirectory": "conf",
        "includeParams": [
          "clientPort",
          "dataDir",
          "dataLogDir",
          "tickTime",
          "initLimit",
          "syncLimit",
          "server.1",
          "server.2",
          "server.3",
          "server.4",
          "server.5",
          "authProvider.1",
          "jaasLoginRenew",
          "skipACL",
          "custom.zoo.cfg"
        ]
      },
      {
        "filename": "java.env",
        "configFormat": "custom",
        "outputDirectory": "conf",
        "templateName": "zk-env.ftl",
        "includeParams": [
          "zkHeapSize",
          "zkSecurity"
        ]
      },
      {
        "filename": "jaas.conf",
        "configFormat": "custom",
        "outputDirectory": "conf",
        "templateName": "jaas.ftl",
        "includeParams": [
          "hostname",
          "zkRealm"
        ]
      }
    ]
  },
  "parameters": [
    {
      "name": "clientPort",
      "label": "客户端连接的端口号",
      "description": "Zk提供服务的端口号",
      "required": true,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": false,
      "defaultValue": "2181"
    },
    {
      "name": "dataDir",
      "label": "数据存储目录",
      "description": "Zookeeper数据持久化存储目录",
      "configType": "path",
      "required": true,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": false,
      "defaultValue": "/data/zookeeper"
    },
    {
      "name": "dataLogDir",
      "label": "事务日志存储目录",
      "description": "指定事务日志的存放目录",
      "configType": "path",
      "required": true,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": false,
      "defaultValue": "/data/log"
    },
    {
      "name": "tickTime",
      "label": "心跳时间(毫秒)",
      "description": "Zookeeper服务器与客户端心跳时间,单位毫秒",
      "required": true,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": false,
      "defaultValue": "2000"
    },
    {
      "name": "initLimit",
      "label": "LF初始通信时限(tickTime的数量(次))",
      "description": "followers启动时需要连接leader,并从leader处获取它所缺失的那部分数据,以便它能和leader的数据保持同步。这个配置项限定从follower启动到恢复完成的超时时间。",
      "required": true,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": false,
      "defaultValue": "10"
    },
    {
      "name": "syncLimit",
      "label": "LF同步通信时限(tickTime的数量(次))",
      "description": "follower和leader之间数据延迟的最大时间长度。",
      "required": true,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": false,
      "defaultValue": "5"
    },
    {
      "name": "zkHeapSize",
      "label": "ZK最大堆内存(GB)",
      "description": "ZK最大堆内存",
      "configType": "map",
      "required": true,
      "minValue": 0,
      "maxValue": 8,
      "type": "slider",
      "value": "",
      "unit": "GB",
      "configurableInWizard": true,
      "hidden": false,
      "defaultValue": "1"
    },
    {
      "name": "skipACL",
      "label": "skipACL",
      "description": "",
      "required": true,
      "type": "input",
      "value": "yes",
      "configurableInWizard": true,
      "hidden": false,
      "defaultValue": "yes"
    },
    {
      "name": "enableKerberos",
      "label": "启用Kerberos认证",
      "description": "启用Kerberos认证",
      "required": true,
      "type": "switch",
      "value": false,
      "configurableInWizard": true,
      "hidden": false,
      "defaultValue": false
    },
    {
      "name": "authProvider.1",
      "label": "authProvider.1",
      "description": "",
      "configType": "kb",
      "configWithKerberos": true,
      "required": false,
      "type": "input",
      "value": "org.apache.zookeeper.server.auth.SASLAuthenticationProvider",
      "configurableInWizard": true,
      "hidden": true,
      "defaultValue": "org.apache.zookeeper.server.auth.SASLAuthenticationProvider"
    },
    {
      "name": "jaasLoginRenew",
      "label": "jaasLoginRenew",
      "description": "",
      "configType": "kb",
      "configWithKerberos": true,
      "required": false,
      "type": "input",
      "value": "3600000",
      "configurableInWizard": true,
      "hidden": true,
      "defaultValue": "3600000"
    },
    {
      "name": "hostname",
      "label": "hostname",
      "description": "",
      "configType": "map",
      "configWithKerberos": true,
      "required": false,
      "type": "input",
      "value": "${host}",
      "configurableInWizard": true,
      "hidden": true,
      "defaultValue": "${host}"
    },
    {
      "name": "zkRealm",
      "label": "zkRealm",
      "description": "默认为HADOOP.COM,需要与Kerberos的realm保持一致",
      "configType": "map",
      "configWithKerberos": true,
      "required": false,
      "type": "input",
      "value": "${realm}",
      "configurableInWizard": true,
      "hidden": true,
      "defaultValue": "${realm}"
    },
    {
      "name": "zkSecurity",
      "label": "zkSecurity",
      "description": "",
      "configType": "map",
      "configWithKerberos": true,
      "required": false,
      "type": "input",
      "value": "-Djava.security.auth.login.config=${ZOOKEEPER_HOME}/conf/jaas.conf",
      "configurableInWizard": true,
      "hidden": true,
      "defaultValue": "-Djava.security.auth.login.config=${ZOOKEEPER_HOME}/conf/jaas.conf"
    },
    {
      "name": "server.1",
      "label": "server.1",
      "description": "",
      "configType": "",
      "required": false,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": true,
      "defaultValue": ""
    },
    {
      "name": "server.2",
      "label": "server.2",
      "description": "",
      "configType": "",
      "required": false,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": true,
      "defaultValue": ""
    },
    {
      "name": "server.3",
      "label": "server.3",
      "description": "",
      "configType": "",
      "required": false,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": true,
      "defaultValue": ""
    },
    {
      "name": "server.4",
      "label": "server.4",
      "description": "",
      "configType": "",
      "required": false,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": true,
      "defaultValue": ""
    },
    {
      "name": "server.5",
      "label": "server.5",
      "description": "",
      "configType": "",
      "required": false,
      "type": "input",
      "value": "",
      "configurableInWizard": true,
      "hidden": true,
      "defaultValue": ""
    },
    {
      "name": "custom.zoo.cfg",
      "label": "自定义配置zoo.cfg",
      "description": "自定义配置",
      "configType": "custom",
      "required": false,
      "type": "multipleWithKey",
      "value": [],
      "configurableInWizard": true,
      "hidden": false,
      "defaultValue": ""
    }
  ]
}

重启datasophon-manager的api

sh /opt/datasophon/datasophon-manager-1.2.1/bin/datasophon-api.sh restart api

安装Zookeeper

image-20241216175958132

添加Zookeeper服务。

image-20241216180027184

分配Zookeeper角色。根据实际选择安装Zookeeper在哪个节点机器

image-20241129170254961

直接下一步。

image-20241216180054999

根据实际情况修改相关配置。

image-20241216180151395

到此。DataSophon升级Zookeeper3.9.3版本成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一肖没有脾气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值