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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章