1.安装
tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz //解压zookeeper安装包
tar –zxvf kafka_2.12-2.6.0.tgz //解压kafka安装包
这里需要修改配置文件,为了后续方便,可以将zookeeper解压的配置文件拷贝到kafka的config文件夹中,具体修改配置项有zookeeper数据存放路径,日志路径,以及具体ip;
暂且认为,kafka有自带Zookeeper,是否需要单独安装Zookeeper,目前看来区别不大;
Zookeeper配置文件zookeeper.properties修改如下:
注意,该截图中未注释部分都需要有,最近在修改配置的时候,因为limit报错,在dataDir上面的tickTime,initLimit,syncLimit属性都是需要有的。
Kafka的配置文件,server.properties修改如下:
由于zookeeper涉及到apache,需要java环境,运行环境还需要安装jdk,直接解压到指定目录:/usr/java/,接着需要设置环境变量:
export LD_LIBRARY_PATH=/soft/lib36:$LD_LIBRARY_PATH
export JAVA_HOME=/usr/java/jdk1.8.0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:$JAVA_HOME/bin:/soft/lib36:/iHyperDB/library:$PATH:$KE_HOME/bin
这里如果觉得麻烦,可以直接用rpm版本jdk,我这里用的就是:
rpm -ivh jdk-8u171-linux-x64.rpm
- 集群
当涉及到集群,安装步骤都一致,额外需要的是新建文件myid,其中写上broker.id+1(broker.id是kafka配置文件中的一个属性)的对应值即可,这里的myid就相当于一个标识,让集群中的kafka与zookeeper互相认识。首先需要在kafka的config同级目录下新建zk_kfk_data文件夹,在zk_kfk_data中新建myid:
mkdir zk_kfk_data
touch myid
vi myid
i
0 //(broker.id + 1)
:wq
- 启停
cd /opt/kafka
cd /opt/kafka/kafka_2.12-2.6.0 //进入kafka安装目录
bin/zookeeper-server-start.sh –daemon config/zookeeper.properties //启动zookeeeper
bin/zookeeper-server-stop.sh -daemon config/zookeeper.properties //停止zookeeper
bin/kafka-server-start.sh -daemon config/server.properties //启动kafka
bin/kafka-server-stop.sh -daemon config/server.properties //停止kafka
- Topic创建
Kafka的主题创建有两种方式,命令行与代码创建。命令行创建需要进入bin目录:
#ip 也可以说是虚拟机名称
#factor 与kafak的配置文件中工厂属性保持一直
#partions 分区数量的数量的话控制在5个是较优的
bin/kafka-topics.sh --create --zookeeper ip:2181 --replication-factor 3 --partions 5 --topic test
这里重点说下指令创建topic的优势,提到kafka,就会提到集群,我们使用集群的目的就是为了冗余,一台机器down机不会影响正常使用,使用命令新建Topic会自动分配分区,分区第一位的就是目前在使用的Leader,当Leader出问题,会从Replicas中再选取一位,通常来说,如果是连接上之后出现的Down机,这种情况就可以发挥集群的功效;
查看主题:
bin/kafka-topics.sh --list --zookeeper ip:2181
如果是单个kafka,代码创建即可,涉及到集群,建议还是通过命令行创建Topic更为稳妥。