配置叢集hostname(要先在host檔案中配置了ip和名字的映射,才能使用腳本)
配置hostname檔案在每台機器執行指令
echo hostname1 > /etc/hostname
hostname hostname1
備注:hostname1 為主機名,最好能辨別主機用途,例如:kafkaos1、kafkaos2。
配置hosts檔案
修改完hostname後,将叢集叢集名稱都加入到/etc/hosts檔案中,以後登入不同機器,直接使用hostname而不用IP。
示例:
10.8.10.101 zkos1
10.8.10.102 zkos2
10.8.10.103 zkos3
10.8.10.104 zkos4
10.8.10.111 kafkaos1
10.8.10.112 kafkaos2
10.8.10.113 kafkaos3
。。。。。 hostname1
腳本模闆(在hostname1,hostname2的機器上運作腳本)
#!/bin/bash
#hostname1 hostname2是需要修改host檔案的
for i in hostname1 hostname2
do
echo --------- $i ----------
ssh root@$i "Linux運作指令"
done
kafka運作腳本例子:
先啟動所有機器上的zookeeper,再啟動所有機器上的kafka(背景啟動)(使用了xcall腳本批量運作程式)
開啟zookeeper
xcall /opt/zookeeper-3.4.10/bin/zkServer.sh start
開啟kakfa
xcall /opt/kafka_2.11-0.11.0.0/bin/kafka-server-start.sh -daemon /opt/kafka_2.11-0.11.0.0/config/server.properties
關閉zookeeper
xcall /opt/zookeeper-3.4.10/bin/zkServer.sh stop
關閉kafka
xcall /opt/kafka_2.11-0.11.0.0/bin/kafka-server-stop.sh
也可以使用腳本運作kafka
cd /usr/local/bin
建立腳本
touch kafkastart
編輯腳本(就是将批量開啟關閉zookeeper和kafka指令放入其中)
#!/bin/bash
for i in hostname1 hostname2
do
echo --------- $i ----------
ssh root@$i "/opt/kafka_2.11-0.11.0.0/bin/kafka-server-start.sh -daemon /opt/kafka_2.11-0.11.0.0/config/server.properties"
done
kafkastart
#!/bin/bash
for i in hostname1 hostname2
do
echo --------- $i ----------
ssh root@$i "/opt/kafka_2.11-0.11.0.0/bin/kafka-server-stop.sh"
done
kafkastop
#!/bin/bash
for i in hostname1 hostname2
do
echo --------- $i ----------
ssh root@$i "/opt/zookeeper-3.4.10/bin/zkServer.sh start"
done
zkstart
#!/bin/bash
for i in hostname1 hostname2
do
echo --------- $i ----------
ssh root@$i "/opt/zookeeper-3.4.10/bin/zkServer.sh stop"
done
zkstop
添加執行權限
chmod 777 kafkastart
chmod 777 kafkastop
chmod 777 zkstart
chmod 777 zkstop
運作腳本
開啟kafka