Kafka安装

1.zookeeper在Kafka中的作用

Kafka实用zookeeper保存集群的元数据和消费者信息。Kafka发行版了自带Zookeeper,可以直接从脚本安装,不过安装一个完整版的Zookeeper也很easy。

2.安装zookeeper

下载  zookeeper-3.4.13.tar.gz

安装

tar -zxvf zookeeper-3.4.13.tar.gz 
mv zookeeper-3.4.13 /usr/local/zookeeper
mkdir -p /var/lib/zookeeper
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg  zoo.cfg 

sudo /usr/local/zookeeper/bin/zkServer.sh start

验证

$telnet localhost 2181
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
srvr
Zookeeper version: 3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
Latency min/avg/max: 0/0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: standalone
Node count: 4
Connection closed by foreign host.  

3.安装Kafka Broker

下载  kafka_2.12-2.1.1.tgz 

安装

tar -zxvf kafka_2.12-2.1.1.tgz  
 sudo mv kafka_2.12-2.1.1 /usr/local/kafka
 mkdir /tmp/kafka-logs
 /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties 

测试

发消息

$/usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
>hello word
>

收消息

$/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
Test Message 1
Test Message 2
u
123
abc
hello word  

4.配置说明

位置:kafka/config/server.properties里面的参数

  • broker.id:每个broker都有一个唯一的标识符,默认值是0,在整个Kafka集群里是唯一的。值可以任意选定,为了便于维护可以配置为机器名
  • zookeeper.connect:用于配置保存broker元数据的Zookeeper地址,格式:hostname:port/path(如localhost:2181),多个用逗号隔开
  • logs.dirs: Kafka把所有的消息都保存在磁盘上,存放这些认知片段的目录通过logs.dir指定,它是用逗号隔开的本地文件系统路径(默认配置是/tmp/kafka-logs

5.监控工具:Kafka Manager

下载安装

执行:./sbt clean dist

执行完后生成:kafka-manager-1.3.3.22.zip  (位置:kafka-manager/target/universal/)

解压

unzip kafka-manager-1.3.0.8.zip -d /usr/local
cd /usr/local/kafka-manager-1.3.0.8

修改配置 conf/application.properties

# 如果zk是集群,这里填写多个zk地址
kafka-manager.zkhosts="localhost:2181" 

启动服务

sudo nohup bin/kafka-manager &

默认端口9000,如果修改端口

bin/kafka-manager -Dconfig.file=/path/to/application.conf -Dhttp.port=8080

启动验证

访问:ip:port

创建一个cluster

Cluster Zookeeper Hosts地址配置为Zookeeper地址,和配置文件中的地址保持一致,全部打钩,保存。

查看topic详情和消费信息: 

6.常见问题解决

6.1 Kafka代码连接异常TimeoutException

此异常的出现的时候,多半是网络问题,检查/etc/hosts中的主机ip映射的hostname与配置的listeners中hostname是否保持一致,如下图

修改脚本:config/server.properties

6.2 kafka服务必需要开启JMX,否则在下一步启动kafka-manager时会出现: 
java.lang.IllegalArgumentException: requirement failed: No jmx port but jmx polling enabled! 

解决:在bin/kafka-server-start.sh前面加上

export JMX_PORT=9999

6.3 WARN [Producer clientId=console-producer] Connection to node -1 could not be established. Broker may not be available

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

如果弹出需将上文中localhost改为队列配置的地址

 

 

原文地址:https://www.cnblogs.com/kaituorensheng/p/10475551.html