激动无比,终于成功搭建了一套集群的kafka,记录下我的搭建步骤,供大家参考,如有不对,请指正:
1.集群搭建
首先搭建一个一主三从(或一主两从)的集群,
2.配置jdk环境
需要是jdk8的包
我的是ubuntu14,需要预选准备jdk包,然后解压配置环境变量
路径:/usr/local/jdk
解压:tar -zxvf jdk-8u191-linux-x64.tar.gz
配置环境变量
编辑/etc/profile:vi /etc/profile
设置:
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
更新配置生效:source /etc/profile
无效解决方法:
检查~/.profile 和~/.bashrc 文件是否有环境变量配置存在,
(~/.bashrc ~/.profile /etc/profile)前两个是当前用户的配置,后面是系统配置,集群中的服务器配置相同
卸载jdk:
卸载:
$ sudo apt-get autoremove default-jdk
如果不能卸载干净,用下面的方法彻底卸载:
1、卸载JDK
$ sudo apt-get update
$ sudo apt-cachesearch java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e'^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)'-e 'java-common' | xargs sudo apt-get -y remove
$ sudo apt-get -yautoremove
2、清除配置信息:
$ dpkg -l | grep ^rc | awk '{print($2)}' |xargs
$ sudo apt-get -y purge
3、清除java配置及缓存:
$ bash -c 'ls -d /home/*/.java' | xargs
$ sudo rm -rf
4、手动清除JVMs:
$ rm -rf /usr/lib/jvm/*
依次配置其他三台jdk
3.zookeeper安装
搭建zookeeper,zookeeper可以自行搭建也可以使用kafka内置zookeeper,我这里使用的是单独搭建的zookeeper
下载安装
下载安装包到指定目录
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
解压:tar -zxvf zookeeper-3.4.13.tar.g
编辑配置
进入conf目录下:
配置环境变量前先复制一份zoo.cfg:cp zoo_sample.cfg zoo.cfg
编辑文件zoo.cfg:vi zoo.cfg
设置
#数据目录
dataDir=/usr/local/zookeeper/data
#日志目录
dataLogDir=/usr/local/zookeeper/data/log
#集群配置,四台设备的ip
server.1=192.168.56.100:2888:3885
server.2=192.168.56.101:2888:3886
server.3=192.168.56.102:2888:3887
server.4=192.168.56.103:2888:3888
保存退出
最后指定myid,放在dataDir=/usr/local/zookeeper/data目录下
切换到数据所在目录下:cd /usr/local/zookeeper/data
设置myid:echo '1' >myid #从1开始
安装其他三台
其中myid顺序配置
启动
依次在四台机执行启动:/usr/local/zookeeper/zookeeper-3.4.13/bin/zkServer.sh start
查看状态:/usr/local/zookeeper/zookeeper-3.4.13/bin/zkServer.sh status
停止:/usr/local/zookeeper/zookeeper-3.4.13/bin/zkServer.sh stop
4.Kafka安装
下载启动
下载安装包到指定目录:wget http://mirror.bit.edu.cn/apache/kafka/2.2.1/kafka_2.12-2.2.1.tgz
解压:tar -zxvf kafka_2.12-2.2.1.tgz
新建日志目录:mkdir kafkalogs
编辑配置
进入到配置目录:cd config
编辑配置文件:vi server.properties
设置
#每个节点的broker.id 都不能相同,从0开始这是,后面其他三台依次配置1、2、3
broker.id=0
#默认PLAINTEXT://:9092
listeners=PLAINTEXT://:9092
#设置为主机名
advertised.listeners=PLAINTEXT://master:9092
#配置日志目录
log.dirs=/usr/local/kafka/kafkalogs
#设置zookeeper的连接信息,多个zookeeper用,分隔
zookeeper.connect=master.local:2181,slave-2.local:2181,slave-2.local:2181
#设置可以删除topic,末尾加入
delete.topic.enable=true
安装其他三台
其中broker.id顺序配置
启动
依次在四台机执行启动:前台启动,可以直接看到启动执行的日志:
/usr/local/kafka/kafka_2.12-2.2.1/bin/kafka-server-start.sh /usr/local/kafka/kafka_2.12-2.2.1/config/server.properties
后台启动:
/usr/local/kafka/kafka_2.12-2.2.1/bin/kafka-server-start.sh /usr/local/kafka/kafka_2.12-2.2.1/config/server.properties &
查看状态:jps
关闭zookeeper:/usr/local/kafka/kafka_2.12-2.2.1/bin/kafka-server-stop.sh