安装kafka

1、下载:
kafka_2.11-0.10.1.1.tgz
最终解压(到)成 /usr/local/kafka
2、配置:
mkdir -p /usr/local/kafka/log/kafka //创建kafka日志目录
cd /usr/local/kafka/config //进入配置目录
vi server.properties //编辑修改相应的参数
broker.id=0
port=9092 //端口号
host.name=127.0.0.1 //服务器IP地址,修改为自己的服务器IP
log.dirs=/usr/local/kafka/log/kafka //日志存放路径,上面创建的目录
zookeeper.connect=localhost:2181 //zookeeper地址和端口,单机配置部署,localhost:2181
:wq!
3、配置zookeeper
mkdir -p /usr/local/kafka/zookeeper //创建zookeeper目录
mkdir -p /usr/local/kafka/log/zookeeper //创建zookeeper日志目录
cd /usr/local/kafka/config //进入配置目录
vi zookeeper.properties //编辑修改相应的参数
dataDir=/usr/local/kafka/zookeeper //zookeeper数据目录
dataLogDir=/usr/local/kafka/log/zookeeper //zookeeper日志目录
clientPort=2181
maxClientCnxns=100
tickTime=2000
initLimit=10
syncLimit=5
:wq!

4、启动
启动zookeeper

cd /usr/local/kafka
sudo bin/zookeeper-server-start.sh config/zookeeper.properties

命令执行后不会返回Shell命令输入状态,zookeeper就会按照默认的配置文件启动服务,请千万不要关闭当前终端.启动新的终端,输入如下命令

cd /usr/local/kafka
sudo bin/kafka-server-start.sh config/server.properties

kafka服务端就启动了,请千万不要关闭当前终端。启动另外一个终端,输入如下命令:

cd /usr/local/kafka
sudo bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic dblab

topic是发布消息发布的category,以单节点的配置创建了一个叫dblab的topic.可以用list列出所有创建的topics,来查看刚才创建的主题是否存在

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

可以在结果中查看到dblab这个topic存在。接下来用producer生产点数据:

sudo bin/kafka-console-producer.sh --broker-list localhost:9092 --topic dblab

并尝试输入如下信息:
hello world
然后再次开启新的终端或者直接按CTRL+C退出。然后使用consumer来接收数据,输入如下命令:

cd /usr/local/kafka
sudo bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic dblab --from-beginning

看到刚才产生的三条信息, 说明kafka安装成功。

其中在启动kafka时如果报
java.net.UnknownHostException: liumingjingMacBook-Pro.local: liumingjingMacBook-Pro.local: nodename nor servname provided, or not known
主机名称去DNS里找对应的IP地址报错,解决方法:
sudo vi /etc/hosts 增加如下内容
127.0.0.1 liumingjingMacBook-Pro.local
保存退出即可

可能遇到的另一个问题

kafka不能接受消息
1:[root@localhost bin]# /usr/local/kafka1/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic  test
1111
22222

另一个session:
[root@localhost bin]#bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic test

有报错:
[2016-10-09 15:36:41,877] ERROR Error when sending message to topic test with key: null, value: 4 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

解决方法:

Vi /usr/local/kafka1/config/server.properties
修改
listeners=PLAINTEXT://127.0.0.1:9092
为:
listeners=PLAINTEXT://0.0.0.0:9092

一边生产消息、一边消费消息; 如果注释掉消费部分的代码,只生产消息,然后放开注释的代码,重启系统,会发现,刚才生产的消息会补偿消费,即 消息生产后—>kafka, 消费者从kafka取消息, 消息在kafka中不会丢失

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值