集群环境(3台设备):
192.168.60.112
192.168.60.113
192.168.72.224
1.首先安装JDK,需要JDK7以上的版本(若已安装请跳过此步)
cd /usr/local/
mv ~sdnmuser/jdk1.7.0_79.tar /usr/local/
tar zxvf jdk1.7.0_79.tar
chmod -R 777 jdk1.7.0_79
rm -f jdk1.7.0_79.tar
设置环境变量(注意,如果设备已经有别的版本jdk设置了环境变量,这里就不要覆盖其他版本的jdk,否则会影响其他java程序)
vi /etc/profile
添加 JAVA_HOME=/usr/local/jdk1.7.0_79
在PATH前面加上
$JAVA_HOME/bin:$PATH
使配置马上生效 source /etc/profile
在命令行输入java -version 显示如下即安装成功
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) Server VM (build 24.79-b02, mixed mode)
2.解压zookeeper安装包
tar zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /home/sdnmuser/
chmod -R 777 /home/sdnmuser/zookeeper-3.4.6/ 修改文件命令
3.创建zookeeper数据目录和myid文件
mkdir /home/sdnmuser/zookeeper-3.4.6/data
vi /home/sdnmuser/zookeeper-3.4.6/data/myid
内容为1 (myid的值需要与zoo.cfg中server.x的x值对应,它是zookeeper集群中每个sever的唯一标识)
4.配置zoo.cfg
cp /home/sdnmuser/zookeeper-3.4.6/conf/zoo_sample.cfg /home/sdnmuser/zookeeper-3.4.6/conf/zoo.cfg
vi /home/sdnmuser/zookeeper-3.4.6/conf/zoo.cfg
修改为如下内容:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/sdnmuser/zookeeper-3.4.6/data
clientPort=2181
server.1=192.168.60.112:2888:3888
server.2=192.168.60.113:2888:3888
server.3=192.168.72.224:2888:3888
注意 :
检查bin/zkEnv.sh文件中的java路径是否与本机路径相同
5.把zookeeper-3.4.6目录拷贝到其他2台设备
cd /home/sdnmuser/
scp -r zookeeper-3.4.6 192.168.60.113:
scp -r zookeeper-3.4.6 192.168.72.224:
修改其他2台设备上的myid
6.启动zookeeper集群
分别在3台设备上执行zookeeper启动命令
cd /home/sdnmuser/zookeeper-3.4.6/bin
./zkServer.sh start
查看启动是否成功
./zkServer.sh status
若执行成功会提示:
[sdnmuser@ELK2 bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /home/sdnmuser/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader
如果启动失败,请关闭防火墙再试试
7.安装kafka,解压kafka安装包
tar zxvf kafka_2.10-0.10.1.1.tgz
mv kafka_2.10-0.10.1.1 /home/sdnmuser/
8.创建kafka消息日志目录
cd /home/sdnmuser/kafka_2.10-0.10.1.1
mkdir logs
9.修改server.properties
vi /home/sdnmuser/kafka_2.10-0.10.1.1/config/server.properties
修改以下属性项
broker.id=1 #集群中每个broker的唯一标识
listeners=PLAINTEXT://192.168.60.112:9092 #kafka broker对外提供服务的IP和端口
log.dirs=/home/sdnmuser/kafka_2.10-0.10.1.1/logs #消息存放的目录,多个地址的话用逗号分割,多个目录分布在不同磁盘上可以提高读写性能
num.partitions=1 #默认的分区数,一个topic默认1个分区数
auto.create.topics.enable=false #默认false,当为true时则写数据时如果没有此topic就自动创建
zookeeper.connect=192.168.60.112:2181,192.168.60.113:2181,192.168.72.224:2181 #设置zookeeper的连接IP端口(端口默认2181) 以hostname:port的形式,可有多个以逗号分隔
10.复制kafka 到另外两台设备
cd /home/sdnmuser/
scp -r kafka_2.10-0.10.1.1 192.168.60.113:
scp -r kafka_2.10-0.10.1.1 192.168.72.224:
需要在另外2个broker的server.properties中 修改其对应的broker.id 和listeners
11.启动kafka集群
分别在3台设备上执行
cd /home/sdnmuser/kafka_2.10-0.10.1.1/bin
./kafka-server-start.sh ../config/server.properties &
12.验证kafka集群是否正常运行
i.创建一个topic,带一个分区,2个副本,name为test
./kafka-topics.sh --create --zookeeper 192.168.60.112:2181 --replication-factor 2 --partitions 1 --topic test
ii.在设备1创建一个producer,向test topic写入数据(步骤ii与步骤iii是是一起的,ii 是生产者 iii是消费者,需要不同的窗口同时进行)
./kafka-console-producer.sh --broker-list 192.168.60.112:9092 --topic test
iii.在设备2创建一个consumer,读取设备1的生产者写入topic中的数据
./kafka-console-consumer.sh --zookeeper 192.168.60.112:2181 --topic test --from-beginning
网友评论