DCOS搭建zookeeper集群搭建

dcos上zookeeper集群搭建

参考地址:https://my.oschina.net/dslcode/blog/1944775

1.在docs上构建zookeeper服务的json脚本

{
	"id": "/component-test-space/env-test/msg-queue",
	"groups": [{
		"id": "/component-test-space/env-test/msg-queue/nodes",
		"apps": [{
			"id": "/component-test-space/env-test/msg-queue/nodes/cluster-zk1",
			"cpus": 0.5,
			"mem": 1024,
			"container": {
				"type": "DOCKER",
				"docker": {
					"image": "zookeeper:3.4.13",
					"network": "BRIDGE",
					"portMappings": [{
						"containerPort": 2181,
						"hostPort": 21817,
						"labels": {
							"VIP_1": "/cluster-test-msg-zk:21817"
						}
					}, {
						"containerPort": 2888,
						"hostPort": 2887
					}, {
						"containerPort": 3888,
						"hostPort": 3887
					}]
				},
				"volumes": [{
					"containerPath": "/data",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/data",
					"mode": "RW"
				}, {
					"containerPath": "/datalog",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/datalog",
					"mode": "RW"
				}, {
					"containerPath": "/logs",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/logs",
					"mode": "RW"
				}, {
					"containerPath": "/conf",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/conf",
					"mode": "RW"
				}, {
					"containerPath": "/etc/localtime",
					"hostPath": "/etc/localtime",
					"mode": "RO"
				}]
			},
			"env": {
				"TZ": "Asia/Shanghai",
				"ZOO_MY_ID": "1",
				"ZOO_SERVERS": "server.1=0.0.0.0:2888:3888 server.2=xxx.xx.xx.66:2887:3887 server.3=xxx.xx.xx.64:2887:3887"
			},
			"constraints": [
				["hostname", "IS", "xxx.xx.xx.65"]
			]
		}, {
			"id": "/component-test-space/env-test/msg-queue/nodes/cluster-zk2",
			"cpus": 1,
			"mem": 1024,
			"container": {
				"type": "DOCKER",
				"docker": {
					"image": "zookeeper:3.4.13",
					"network": "BRIDGE",
					"portMappings": [{
						"containerPort": 2181,
						"hostPort": 21817,
						"labels": {
							"VIP_1": "/cluster-test-msg-zk:21817"
						}
					}, {
						"containerPort": 2888,
						"hostPort": 2887
					}, {
						"containerPort": 3888,
						"hostPort": 3887
					}]
				},
				"volumes": [{
					"containerPath": "/data",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/data",
					"mode": "RW"
				}, {
					"containerPath": "/datalog",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/datalog",
					"mode": "RW"
				}, {
					"containerPath": "/logs",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/logs",
					"mode": "RW"
				}, {
					"containerPath": "/conf",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/conf",
					"mode": "RW"
				}, {
					"containerPath": "/etc/localtime",
					"hostPath": "/etc/localtime",
					"mode": "RO"
				}]
			},
			"env": {
				"TZ": "Asia/Shanghai",
				"ZOO_MY_ID": "2",
				"ZOO_SERVERS": "server.1=xxx.xx.xx.65:2887:3887 server.2=0.0.0.0:2888:3888 server.3=xxx.xx.xx.64:2887:3887"
			},
			"constraints": [
				["hostname", "IS", "xxx.xx.xx.66"]
			]
		}, {
			"id": "/component-test-space/env-test/msg-queue/nodes/cluster-zk3",
			"cpus": 1,
			"mem": 1024,
			"container": {
				"type": "DOCKER",
				"docker": {
					"image": "zookeeper:3.4.13",
					"network": "BRIDGE",
					"portMappings": [{
						"containerPort": 2181,
						"hostPort": 21817,
						"labels": {
							"VIP_1": "/cluster-test-msg-zk:21817"
						}
					}, {
						"containerPort": 2888,
						"hostPort": 2887
					}, {
						"containerPort": 3888,
						"hostPort": 3887
					}]
				},
				"volumes": [{
					"containerPath": "/data",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/data",
					"mode": "RW"
				}, {
					"containerPath": "/datalog",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/datalog",
					"mode": "RW"
				}, {
					"containerPath": "/logs",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/logs",
					"mode": "RW"
				}, {
					"containerPath": "/conf",
					"hostPath": "/data/test-cluster/zookeeper/test-zk-cluster/conf",
					"mode": "RW"
				}, {
					"containerPath": "/etc/localtime",
					"hostPath": "/etc/localtime",
					"mode": "RO"
				}]
			},
			"env": {
				"TZ": "Asia/Shanghai",
				"ZOO_MY_ID": "3",
				"ZOO_SERVERS": "server.1=xxx.xx.xx.65:2887:3887 server.2=xxx.xx.xx.66:2887:3887 server.3=0.0.0.0:2888:3888"
			},
			"constraints": [
				["hostname", "IS", "xxx.xx.xx.64"]
			]
		}]
	}]
}

2.执行之后,

最终结果:

主节点66:

bash-4.4# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: leader

从节点64:

bash-4.4# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: follower

从节点65:

bash-4.4# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: follower

3.常见命令

3.1 常用命令:

zkServer.sh status #查看zookeeper集群状态

zkCli.sh -server xxx.xx.xx.64:21817 # 使用zookeeper客户端连接zk的服务器,用来查看相应的node信息;

4.常见问题

  1. 注意使用zookeeper的版本是: zookeeper:3.4.13,之前使用的zookeeper版本是3.5.5版本,导致各种问题错误,(在使用网上现成的例子的时候,需要对应的版本,否则导致出现各种异常情况);

  2. Will not attempt to authenticate using SASL (unknown error)

该问题是无法有效解析出自己的IP地址和端口导致,检查IP;

3.注意使用容器的搭建方式与普通的搭建方式有很大的不同;

server.1=zookeeper_1:2888:3888
server.2=zookeeper_2:2888:3888
server.3=zookeeper_3:2888:3888

在172.19.32.64上使用docker的方式:

server.1=xxx.xx.xx.65:2887:3887
server.2=0.0.0.0:2888:3888  ##此处配置的是0.0.0.0:2888:3888,当使用IP连接自身容器的时候;
server.3=xxx.xx.xx.64:2887:3887
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章