kafka(三)-kafka安装

前面几篇介绍了kafka的原理,本文主要讲解kafka的安装:

kafka(一)-为什么使用kafka

kafka(二)-kafka原理及介绍

现在我们准备三台机器,都是centos7.2

IPbroker.id
192.168.10.11
192.168.10.22
192.168.10.33

1.下载安装压缩包:

下载地址:http://mirrors.cnnic.cn/apache/kafka  我这个下载的是kafka_2.12-1.1.0.tg,然后将压缩包传到三台服务器上,同时先安装好JDK1.8,JDK具体安装我的博客里有。

2.在三个机器上解压程序,创建数据库目录

tar xf kafka_2.12-1.1.0.tgz -C /usr/local/

mkdir /data/kafka/

3.修改三个节点上修改配置文件server.properties:

cd /usr/local/kafka_2.12-1.1.0/

 vi config/server.properties

192.168.10.1节点

broker.id=1
advertised.listeners=PLAINTEXT://192.168.10.1:9092
log.dirs=/data/kafka
zookeeper.connect=0.0.0.0:2181,192.168.10.2:2181,192.168.10.3:2181

192.168.10.2节点

broker.id=2
advertised.listeners=PLAINTEXT://192.168.10.2:9092
log.dirs=/data/kafka
zookeeper.connect=192.168.10.1:2181,0.0.0.0:2181,192.168.10.3:2181

192.168.10.3节点

broker.id=3
advertised.listeners=PLAINTEXT://192.168.10.3:9092
log.dirs=/data/kafka
zookeeper.connect=192.168.10.1:2181,192.168.10.2:2181,0.0.0.0:2181

4.启动服务&查看log 

./bin/kafka-server-start.sh -daemon config/server.properties  #启动

tailf logs/server.log #查看日志

5.解决启动时内存不足

## There is insufficient memory for the Java Runtime Environment to continue.

# Native memory allocation (malloc) failed to allocate 986513408 bytes for committing reserved memory.

# An error report file with more information is saved as:

# //hs_err_pid6500.logOpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000bad30000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)

==========================================================

原因:kafka启动脚本kafka-server-start.sh中指定了kafka启动时需要的最小内存,默认为1G

export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

虚拟机分配的虚拟内存在1G以下时就会出现该错误。

 

6.简单操作:

1、新建一个主题topic: kafka-topics.sh 
创建一个只有一个分区和一个备份名为“test”的Topic

# ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".

2、查看主题: 
运行list topic命令,查看该主题:

# ./bin/kafka-topics.sh --list --zookeeper localhost:2181
test    

同时也可以在zookeeper中查看:

# ./bin/zkCli.sh -server localhost:2181 
...
[zk: localhost:2181(CONNECTED) 1] ls /brokers
[ids, topics, seqid]
[zk: localhost:2181(CONNECTED) 2] ls /brokers/topics
[test]

3、发送消息:kafka-console-producer.sh 
Kafka带有一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送到Kafka集群。默认情况下,每行将作为单独的消息发送。 
运行producer生产者,然后在控制台输入几条消息到服务器。

# ./bin/kafka-console-producer.sh --broker-list 192.168.20.201:9092 --topic test
>111
>this is a message
>this is anothet message
>hehe

4、消费消息: kafka-console-consumer.sh 
Kafka也提供了一个消费消息的命令行工具,将存储的信息输出出来 
在另一台机器上或者不同终端上执行此命令,这样就能将消息键入生产者终端,并将它们显示在消费者终端

# ./bin/kafka-console-consumer.sh --bootstrap-server 192.168.20.203:9092 --topic test --from-beginning
111
this is a message
this is anothet message
hehe

5、查看topic详细信息 kafka-topics.sh --describe

# ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
Topic:test      PartitionCount:1        ReplicationFactor:1     Configs:
        Topic: test     Partition: 0    Leader: 3       Replicas: 3     Isr: 3  


Topic:     主题名称
Partition: 分片编号
Leader:    该分区的leader节点
Replicas:  该副本存在于哪个broker节点
Isr:       活跃状态的broker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haoxin963

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值