zookeeper一键安装、启动、停止脚本

释放双眼,带上耳机,听听看~!

** zookeeper一键安装脚本**


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
1#!/bin/bash
2#配置zk的安装目录 修改的地方1 脚本可以自己创建
3currentTime=$(date '+%Y-%m-%d %H:%M:%S')
4echo -e "请输入zk的安装目录,不存在脚本自动创建,最后一个/不要写 /bigdata/install"
5read zkinstallpath
6
7#创建zk安装的目录
8if [ ! -d $zkinstallpath ]; then
9   mkdir -p $zkinstallpath
10fi
11if [ ! -d $zkinstallpath ]; then
12  echo "创建目录$zkinstallpath失败!请检查目录是否有权限"
13  exit:
14fi
15
16#解压tar包
17currentdir=$(cd $(dirname $0); pwd)
18ls | grep 'zookeeper-.*[gz]$'
19if [ $? -ne 0 ]; then
20   #当前目录没有zk的压缩包
21   echo "在$currentdir下没有发现zookeeper的gz压缩包,请自行上传!"
22   exit
23else
24   #解压
25   tar -zxvf $currentdir/$(ls | grep 'zookeeper-.*[gz]$') -C $zkinstallpath
26fi
27
28zkbanben=`ls $zkinstallpath| grep 'zookeeper-.*'`
29
30confpath=$zkinstallpath/$zkbanben/conf
31
32cp $confpath/zoo_sample.cfg  $confpath/zoo.cfg
33
34echo -e "请输入zk数据存储目录:例如 /bigdata/data/zookeeper"
35read zkdatapath
36#创建zk数据的目录
37if [ ! -d $zkdatapath ]; then
38   mkdir -p $zkdatapath
39fi
40if [ ! -d $zkdatapath ]; then
41  echo "创建目录$zkdatapath失败!请检查目录是否有权限"
42  exit
43fi
44#sed -i "s/^dataDir=\/tmp\/zookeeper/dataDir=$zkdatapath" $confpath/zoo.cfg
45
46bak_dir='dataDir=/tmp/zookeeper'
47new_dir='dataDir='$zkdatapath
48sed -i "s!${bak_dir}!${new_dir}!g" $confpath/zoo.cfg
49
50
51echo  "请输入所有的zk集群节点:(按照空格分割) 例如 cdh01 cdh02 cdh03"   
52read redisPorts
53array=(`echo $redisPorts | tr ' ' ' '` )
54
55for i in `seq 0 $((${#array[@]}-1))`
56do
57 echo "server.$((${i}+1))=${array[${i}]}:2888:3888" >>$confpath/zoo.cfg
58done
59
60echo  "请输入zk的myid,不能重复,唯一值 例如 1"
61read myid
62echo $myid > $zkdatapath/myid
63
64binpath=$zkinstallpath/$zkbanben/bin
65
66sed -i 's/ZOO_LOG_DIR=\".\"/ZOO_LOG_DIR=\"${ZOOKEEPER_PREFIX}\/logs\"/g' $binpath/zkEnv.sh
67
68echo "ZOO_LOG_DIR修改成功"
69
70sed -i 's/ZOO_LOG4J_PROP=\"INFO,CONSOLE\"/ZOO_LOG4J_PROP=\"INFO,ROLLINGFILE\"/g' $binpath/zkEnv.sh
71echo "ZOO_LOG4J_PROP修改成功"
72
73sed -i 's/_ZOO_DAEMON_OUT=\"$ZOO_LOG_DIR\/zookeeper.out\"/_ZOO_DAEMON_OUT=\"$ZOO_LOG_DIR\/zookeeper.log\"/g' $binpath/zkServer.sh
74echo "_ZOO_DAEMON_OUT修改成功"
75
76sed -i 's/zookeeper.root.logger=INFO, CONSOLE/zookeeper.root.logger=INFO, ROLLINGFILE/g' $confpath/log4j.properties
77echo "zookeeper.root.logger修改成功"
78
79#PATH设置
80#末行插入
81echo "">>~/.bash_profile
82echo "#zookeeper $currentTime">>~/.bash_profile
83echo "export ZK_HOME=$zkinstallpath/$zkbanben">>~/.bash_profile
84echo 'export PATH=$PATH:$ZK_HOME/bin'>>~/.bash_profile
85source ~/.bash_profile
86
87
88echo -e "是否远程复制 请输入y/n"
89read flag
90if [[ $flag == "y" ]]; then
91
92#修改并分发安装文件
93zkpath=$zkinstallpath/$zkbanben
94zkpathtemp=$zkinstallpath/$zkbanben-temp
95cp -r $zkpath $zkpathtemp
96
97echo "以下输入的节点必须做免密登录"
98echo -e '请输入除当前之外的节点(当前节点cdh01),严格符合以下格式IP:zkID,空格隔开, cdh02:2 cdh03:3 cdh04:4 cdh05:5'
99read allnodes
100user=`whoami`
101array2=(${allnodes// / })
102for allnode in ${array2[@]}
103do
104 array3=(${allnode//:/ })
105 ip=${array3[0]}
106 zkid=${array3[1]}
107 echo ======= $ip  =======
108
109 #修改文件
110 ssh $ip "mkdir -p $zkpath"
111 ssh $ip "mkdir -p $zkdatapath"
112
113 #修改zk的myid唯一值
114 ssh $ip "echo $zkid > $zkdatapath/myid"
115
116 scp -r $zkpathtemp/* ${user}@$ip:$zkpath/
117
118 ssh $ip "echo ''>>~/.bash_profile"
119 ssh $ip "echo '#zk $currentTime'>>~/.bash_profile"
120 ssh $ip "echo 'export ZK_HOME=$zkinstallpath/$zkbanben'>>~/.bash_profile"
121 ssh $ip 'echo "export PATH=\$PATH:\$ZK_HOME/bin">>~/.bash_profile'
122 ssh $ip "source ~/.bash_profile"
123
124 echo ======= $ip 远程复制完成  =======
125done
126
127#删除临时文件
128rm -rf $zkpathtemp
129
130for allnode in ${array2[@]}
131do
132 echo ======= 在 $allnode 手动执行 source ~/.bash_profile 在通过 zkServer 查看是否安装成功 =======
133done
134fi
135
136
137
138

 

zookeeper一键启动脚本


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1#!/bin/bash
2#配置ES的安装目录 修改的地方1 脚本可以自己创建
3zkServers='storm01 storm02 storm03'
4#启动所有的zk
5for zk in $zkServers
6do
7    ssh -T $zk <<EOF
8    source ~/.bash_profile 
9    zkServer.sh start
10EOF
11echo 从节点 $zk 启动zookeeper...[ done ]
12sleep 5
13done
14

 

zookeeper一键停止脚本


1
2
3
4
5
6
7
8
9
10
11
12
13
1#!/bin/bash
2zkServers='storm01 storm02 storm03'
3#启动所有的zk
4for zk in $zkServers
5do
6    ssh -T $zk <<EOF
7    source ~/.bash_profile
8    zkServer.sh stop
9EOF
10echo 从节点 $zk 启动zookeeper...[ done ]
11sleep 5
12done
13

 

给TA打赏
共{{data.count}}人
人已打赏
安全技术安全运维

Windows服务器如何发现被黑

2018-5-20 12:24:31

安全技术

用node.js做cluster,监听异常的邮件提醒服务

2021-12-21 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索