Kafka学习笔记1:安装
Why Kafka
- 多个生产者
- 多个消费者
- 基于此盘的数据存储
- 伸缩性
- 高性能
安装前准备
- 前置条件
- OS适配
- Windows
- MacOS
- Linux(以下操作基于该系统)
- Version
- Java:运行Zookeeper及Kakfa仅需要JRE,但是推荐安装JDK。以下操作的JDK的版本为JDK 8 update 51,路径:/usr/java/jdk1.8.0_51。下载地址:https://download.oracle.com/otn/java/jdk/8u51-b16/jdk-8u51-linux-x64.rpm?AuthParam=1592889116_5a88bc9299c4b5cdf8c8a2d63a97bffd。 (可能需要oracle账户)
- Zookeeper:3.5.8;下载路径:https://downloads.apache.org/zookeeper/。
- Kafka:2.1.1;下载地址:https://downloads.apache.org/kafka/。
- OS适配
安装
安装JDK
rpm -ivh jdk-8u51-linux-x64.rpm
java -version //查看java版本,如果报错建议添加环境变量。
echo “export JAVA_HOME=/usr/java/jdk1.8.0_51” >> /etc/profile
source /etc/profile //使环境变量生效
安装Zookeeper
安装目录/usr/local/zookeeper;数据目录/var/lib/zookeeper。
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz
mv apache-zookeeper-3.5.8-bin /usr/local/zookeeper
mkdir -p /var/lib/zookeeper
配置文件编辑(/usr/local/zookeeper/apache-zookeeper-3.5.8-bin/conf目录下包含了zoosimple.cfg这个配置文件样例,可参考。)
vim /usr/local/zookeeper/apache-zookeeper-3.5.8-bin/conf/zoo.cfg
添加如下信息(驼峰命名法则,否则配置无效):
tickTime=2000 //计时时间单位ms
dataDir=/var/lib/zookeeper
clientPort=2181
配置环境变量、启动、测试。
export JAVA_HOME=/usr/java/jdk1.8.0_51
/usr/local/zookeeper/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start //启动
telnet localhost 2181 //检查启动情况
注意:检查防火墙等网路配置信息
Zookeeper集群配置:
配置文件字段含义:
- tickTime:计时单位ms,默认为2000
- dataDir:数据目录
- clientPort:端口,客户端通过此端口连接到Kafka服务器。
- initLimit:从节点与主节点之间建立初始化连接的时间上限
- syncLimit:允许从节点与主节点处于不同步状态的时间上限
- server.x=zoo1.example.com:2888:3888 = server.X=hostname:peerPort:leaderPort
- X:服务器ID
- hostname:服务器的机器名或者IP
- peerPort:节点间通讯的TCP端口
- leaderPort:首领选举的TCP端口
群组节点间通讯需要同时用到:clientPort、peerPort、leaderPort。
myid:保存在数据目录中,该文件包含了服务器ID,该ID要与配置文件(群组)内的ID一致。
安装Kafka
本次安装目录/usr/local/kafka,数据目录/tmp/kafka-logs
tar -zxvf kafka_2.12-2.2.2.tgz
mv kafka_2.12-2.2.2 /usr/local/kafka/
mkdir -p /tmp/kafka-logs
./kafka-server-start.sh -daemon 如果报错,建议使用 ./kafka-server-start.sh ../config/server.properties & 手动指定配置文件
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test //创建一个名为test的topic
./kafka-console-producer.sh --broker-list localhost:9092 --topic test //往test中发布消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic test //从test消费信息
以上测试完成,安装完成
当你觉得自己的想法很创新时,十有八九是知识面太窄。