1.安装kafka
安装zookeeper:
1、解压tar -zxvf zookeeper-3.4.10.tar.gz -C /opt
2、[root@hdp1 zookeeper-3.4.10]# mkdir data
3、进入conf目录
[root@hdp1 conf]# mv zoo_sample.cfg zoo.cfg
4、vim zoo.cfg
dataDir=/opt/zookeeper-3.4.10/data
server.1=hdp1:2888:3888
server.2=hdp2:2888:3888
server.3=hdp3:2888:3888
5、cd data
vim myid
填入1
6、分发zookeeper到hdp2 和hdp3 => myid第一台1 第二台2 第三台3
5、启动服务
安装kafka:
在hdp1下:
vim kafka_2.12-1.0.0/config --> server.properties
broler.id=0 标志当前机器在集群中的唯一标识
listeners=PLAINTEXT://hdp1:9092 提供的地址
log.dirs=/opt/kafka_2.11-2.4.1/kafka_logs
zookeeper.connect=hdp1:2181,hdp2:2181,hdp3:2181
#删除topic功能使能
delete.topic.enable=true
将kafka复制到hdp2和hdp3,
更改hdp2和hdp3中broler.id,listeners,使id唯一,listener对应各节点ip
启动服务:
./kafka-server-start.sh -daemon …/config/server.properties
生产者 消费者:
./kafka-console-producer.sh --topic test --broker-list hdp1:9092,hdp2:9092,hdp3:9092
./kafka-console-consumer.sh --topic test --bootstrap-server hdp1:9092,hdp2:9092,hdp3:9092
2.集群管理脚本
分发脚本:
#!/bin/sh
# 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args...;
exit;
fi
# 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
# 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
# 获取当前用户名称
user=`whoami`
# 循环
for((host=2; host<=3; host++)); do
echo $pdir/$fname $user@slave$host:$pdir
echo ==================slave$host==================
rsync -rvl $pdir/$fname $user@hdp$host:$pdir
done
#Note:这里的slave对应自己主机名,需要做相应修改。另外,for循环中的host的边界值
执行命令:
#! /bin/bash
for i in hdp1 hdp2 hdp3
do echo -----`在这里插入代码片`---- $i ----------
ssh $i "source /etc/profile;$*"
done
启动/停止zookeeper:
/opt/zookeeper-3.4.10/bin/zkServer.sh $1
ssh hdp2 "source /etc/profile;/opt/zookeeper-3.4.10/bin/zkServer.sh $1"
ssh hdp3 "source /etc/profile;/opt/zookeeper-3.4.10/bin/zkServer.sh $1"
启动/停止 kafka:
if [ $1 = "start" ]
then
/opt/kafka_2.11-2.4.1/bin/kafka-server-start.sh -daemon /opt/kafka_2.11-2.4.1/config/server.properties
ssh hdp2 "source /etc/profile;/opt/kafka_2.11-2.4.1/bin/kafka-server-start.sh -daemon /opt/kafka_2.11-2.4.1/config/server.properties"
ssh hdp3 "source /etc/profile;/opt/kafka_2.11-2.4.1/bin/kafka-server-start.sh -daemon /opt/kafka_2.11-2.4.1/config/server.properties"
elif [ $1 = "stop" ]
then
/opt/kafka_2.11-2.4.1/bin/kafka-server-stop.sh
ssh hdp2 "source /etc/profile;/opt/kafka_2.11-2.4.1/bin/kafka-server-stop.sh"
ssh hdp3 "source /etc/profile;/opt/kafka_2.11-2.4.1/bin/kafka-server-stop.sh"
else
echo '输入产生不合法只能输入start|stop!'
fi