【大數據】關於Kafka的進一步理解
前置:
文件host
192.168.11.13 192.168.11.14 192.168.11.30
腳本init_kafka.sh
#!/bin/bash source /etc/profile if [ `whoami` != "root" ];then echo " only root can run me" exit 1 fi basepath=$(cd `dirname $0`; pwd) cd $basepath for host in `cat $basepath/host`; do sshp $host "useradd kafka" sshp $host "chown -R kafka:kafka /opt/kafka_2.11-0.8.2.2" sshp $host "mkdir /data/kafka-log" sshp $host "mkdir /data1/kafka-log" sshp $host "chown -R kafka:kafka /data/kafka-log" sshp $host "chown -R kafka:kafka /data1/kafka-log" echo "$host done" done echo "done"
獲取新增服務器host文件,叠代循環每個host服務器,分別新增一個kafka用戶,然後將該服務器上的kafka安裝文件夾修改所屬權限為kafka用戶,然後創建kafka-log的日誌文件,分別放在/data和/data1下,然後修改kafka-log日誌文件的所屬權限為kafka用戶。
總結起來就幹了2個事:在新增的服務器節點上新增kafka用戶並將kafka安裝文件夾和日誌文件夾的權限改為kafka用戶。
腳本install_kafka.sh
#!/bin/bash source /etc/profile if [ `whoami` != "root" ];then echo " only root can run me" exit 1 fi basepath=$(cd `dirname $0`; pwd) cd $basepath kafka_tar=/opt/kafka_2.11-0.8.2.2.tgz kafka_conf_dir=/opt/kafka_2.11-0.8.2.2/config brokerid=101 for host in `cat $basepath/host`; do echo $brokerid scpp $kafka_tar $host:/opt sshp $host "cd /opt;tar -zxf kafka_2.11-0.8.2.2.tgz" # 發送配置文件 scpp $kafka_conf_dir/* $host:$kafka_conf_dir/ # 修改broker.id sshp $host "sed -i ‘s/broker.id=87/broker.id=$brokerid/g‘ /opt/kafka_2.11-0.8.2.2/config/server.properties" # 修改 hostname sshp $host "sed -i ‘s/host.name=192.168.11.87/host.name=$host/g‘ /opt/kafka_2.11-0.8.2.2/config/server.properties" brokerid=$(($brokerid+1)) echo "$host done" done echo ‘done‘
將該服務器下的kafka安裝文件tar包復制到新增服務器的/opt下並解壓,將kafka配置文件復制到服務器的配置文件夾下,修改101為host裏面第一個ip的kafka的brokerid,並隨著循環host而將brokerid數值+1,修改host的第一個ip為hostname,並隨著循環host而將其他host的ip改為hostname。
總結起來就幹了3個事:在新增的服務器節點上新增配置文件,並修改其中的brokerid和hostname為指定值
腳本remote_start_kafka.sh
#!/bin/bash source /etc/profile basepath=$(cd `dirname $0`; pwd) cd $basepath host=$1 scpp start_kafka.sh $host:/tmp/ scpp start.sh $host:/tmp/ sshp $host "sh /tmp/start.sh"
將start_kafka.sh和start.sh這個2個腳本復制到新增服務器的臨時文件夾裏,然後執行新增服務器上的start.sh腳本
總結起來就幹了2個事:復制執行腳本到新增服務器上並執行其中的start.sh腳本
腳本start_all.sh
#!/bin/bash
source /etc/profile
basepath=$(cd `dirname $0`; pwd)
cd $basepath
for host in `cat $basepath/host`
do
echo $host
sh remote_start_kafka.sh $host
echo "$host done"
done
循環執行,在host新增服務器裏執行腳本remote_start_kafka.sh,並傳遞循環host列表的ip
總結起來就1個事:執行start_all.sh,啟動全部的新增服務器的kafka服務
1.JMX的作用
【大數據】關於Kafka的進一步理解