linux上kafka安装

1.下载kafka 
Apache官网
http://kafka.apache.org/downloads.html


2.解压重命名
tar -zxvf kafka_2.12-1.0.0.tgz
mv kafka_2.12-1.0.0 kafka
rm -rf kafka_2.12-1.0.0.tgz(删除包)

3.配置kafka
vi /usr/local/kafka/config/server.properties
broker.id:依次增长的整数,0、1、2,集群中Broker的唯一id
advertised.listeners=PLAINTEXT://cache03:9092        cache01 公网地址已经在/etc/hosts做好了映射,其他三台也一样
zookeeper.connect=cache01:2181,cache02:2181,cache03:2181



4.启动kafka和关闭命令
在三台机器上的kafka目录下,分别执行以下命令:
nohup bin/kafka-server-start.sh config/server.properties &
或者
bin/kafka-server-start.sh config/server.properties &
使用jps检查启动是否成功


关闭kafka 
bin/kafka-server-stop.sh
或者
kill -9 端口号



5.使用基本命令检查kafka是否搭建成功


创建一个名称为test的Topic,1个分区,并且复制因子为1  
bin/kafka-topics.sh  --zookeeper cache01:2181,cache02:2181,cache03:2181  --replication-factor 1 --partitions 1 --create --topic test01


删除一个名称为test的Topic,但不是马上,先标记,一段时间后才会删除
bin/kafka-topics.sh --delete   --zookeeper cache01:2181,cache02:2181,cache03:2181 --topic test

你看到的“ Topic test is already marked for deletion.”是正常的。Kafka删除topic的过程实际上
是异步的:命令行仅仅是提交一个删除申请给到controller,并标记该topic为“待删除”状态。其实在Kafka服务器端
真正的删除逻辑应该已经开启,正常情况下您需要多等待一段时间topic自然会被成功删除。



查看创建的Topic  
bin/kafka-topics.sh --describe  --zookeeper cache01:2181,cache02:2181,cache03:2181 --topic test01


查看所有的Topic
bin/kafka-topics.sh --list  --zookeeper cache01:2181,cache02:2181,cache03:2181



启动Producer ,并向我们上面创建的名称为test的Topic中生产消息,  
bin/kafka-console-producer.sh --broker-list cache01:9092,cache02:9092,cache03:9092 --topic test01


启动Consumer ,并订阅我们上面创建的名称为test的Topic中生产的消息  
bin/kafka-console-consumer.sh --zookeeper  cache01:2181,cache02:2181,cache03:2181  --from-beginning --topic test01










1. kafka 启动的时候报错了,生成了一个类似这样的日志文件hs_err_pid4301.log
主要原因原因:kafka启动脚本kafka-server-start.sh中指定了kafka启动时需要的最小内存,默认为1G
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
虚拟机分配的虚拟内存在1G以下时就会出现该错误
解决:


vi /usr/local/kafka/bin/kafka-server-start.sh


将export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
改为export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"


2. kafka 启动的时候报错了:
java.lang.OutOfMemoryError: Java heap space
at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
at java.nio.ByteBuffer.allocate(ByteBuffer.java:335)
at kafka.log.SkimpyOffsetMap.<init>(OffsetMap.scala:45)
at kafka.log.LogCleaner$CleanerThread.<init>(LogCleaner.scala:222)
at kafka.log.LogCleaner.$anonfun$cleaners$1(LogCleaner.scala:108)
at kafka.log.LogCleaner.$anonfun$cleaners$1$adapted(LogCleaner.scala:108)
at kafka.log.LogCleaner$$Lambda$143/783191662.apply(Unknown Source)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
at scala.collection.TraversableLike$$Lambda$12/2074185499.apply(Unknown Source)
at scala.collection.immutable.Range.foreach(Range.scala:156)
at scala.collection.TraversableLike.map(TraversableLike.scala:234)
at scala.collection.TraversableLike.map$(TraversableLike.scala:227)
at scala.collection.AbstractTraversable.map(Traversable.scala:104)
at kafka.log.LogCleaner.<init>(LogCleaner.scala:108)


原因:kafka启动时分配的内存过小导致
解决方法:同样脚本kafka-server-start.sh中的最小启动内存,设置为较大值




3. kafka producer报了一个错kafka org.apache.kafka.clients.producer.internals.ErrorLoggingCallback




原因:配置文件的advertised.listeners配置出错了







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值