简单搭建kafka + zookeeper,附简单Java生产和消费客户端

首先说明一下这是一篇入门实战操作文章,本人亦是刚刚开始接触kafka,看了网上很多很多的文章,觉得自己也应当在搭建平台的过程中留下一些痕迹,总结一下遇到的问题和解决方法。

这篇文章主要是讲从零开始把服务器环境配好,然后用简单的java生产者和消费者客户端将整个流程跑通。

说一下为什么要使用kafka:实验室最近新起了一个研究方向,主要是挖掘用户的行为,基于机器学习的一些模型(SVM/LR/RF之类的)识别用户的状态,为用户提供实时的反馈。客户端会产生大量的用户行为数据和图像特征数据,服务端需要对这些数据进行实时计算并给出客户端反馈,与此同时这些数据需要持久化供模型训练使用。在这里kafka主要作为用户行为数据源,后面可能会使用Spark streaming进行online learning或者是先使用hbase,mongodb之类的nosql数据库存储数据再使用Spark进行offline learning,不过这是后话了。


有关kafka的背景知识,我觉得去官网上看看吧,别人的博文也一堆一堆的,这里主要讲讲怎么搭个简单的小集群。

本次搭建使用两台服务器(zookeeper由于选举机制推荐使用2*n+1台,不过这里是实验,所以先使用两台,等有闲置的服务器再加一台)

两台服务器系统均为Ubuntu 16.04 LTS desktop,Java环境为openjdk1.8.0_121,IP分别为192.168.1.37,192.168.1.199(在同一局域网内)

进入正题,我们先分别从kafka和zookeeper官网上分别下载各自程序包,解压,这里使用的是当前最新的zookeeper-3.4.9和kafka_2.11-0.10.1.1


1. 配置和启动zookeeper

1.1 配置文件

先拷贝一份sample配置,然后修改里面的参数,这里仅添加服务器列表,其余参数按默认的来(先按照最简单的来,以跑通为目标)

cp /zookeeper-3.4.9/conf/zoo_sample.cfg /zookeeper-3.4.9/conf/zoo.cfg
vim /zookeeper-3.4.9/conf/zoo.cfg

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you 
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值