文档章节

Kafka环境安装与部署

huxihx
 huxihx
发布于 2017/02/17 09:54
字数 1162
阅读 105
收藏 0

本文讲述如何安装Apache Kafka,包括安装Kafka的broker服务器和Apache zookeeper组件。Kafka使用zookeeper来保存broker的元数据信息。另外本文还会涉及到Kafka多节点集群的安装以及常规参数的设置。

准备工作

操作系统

Kafka是一个JVM系的框架。其服务器端的代码是由Scala语言编写的,新版客户端代码是Java语言编写的,所以它可以运行在很多操作系统下,比如Linux, Windows和OS X等。Apache Kafka官方推荐安装Kafka在Linux上。

Java

之前说过了,Kafka是JVM系的框架,所以需要安装Java。虽然目前还是支持Java7,不过还是推荐安装Java 8,因为Kafka和zookeeper都需要运行在Java环境中。截止到写本文时,Java 8的最新版本是jdk8u121

安装Zookeeper

安装Zookeeper的第一步就是下载。当前的最新版本是: 3.4.9

下载之后解压并配置对应的配置文件:

看到上面的STARTED即说明启动成功。当然,你可以使用telnet再去验证一下2181端口上的zk服务已经启动成功:

上面说的都是单机模式的配置。如果要启动多个zookeeper节点构成一个zookeeper集群,即配置集群模式。那么就需要保证所有节点上的配置文件都是相同的,然后在每个zookeeper节点的配置文件中dataDir所对应的目录下创建一个名为myid的文件。该文件的内容后面会提到。

假设我们搭建3台机器组成的zookeeper集群,且主机名分别为:zk1,zk2和zk3,那么3台zookeeper节点的配置文件内容为:
tickTime=2000
dataDir=/home/zookeeper
clientPort=2181
initLimit=20
syncLimit=5
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888
简单提一句,上面server.x = [hostname]:nnnnn[:nnnnn]的配置项中,x就是组成zookeeper集群的节点编号,虽然不需要一定从0开始,但至少要是个整数。后面接2个端口号:第一个端口用于是给集群中的follower连接leader使用的,而第二个端口号是用于leader选举的。 其他的参数含义可以参考zookeeper的官方手册

还记得之前提到的myid文件吧? 每台机器上都应该在配置的dataDir下创建一个名为myid的文件,内容只有1行,就是该服务器是server.x中的x。比如第一台服务器就是1,第二台服务器就是2,以此类推。
配置好这些之后,运行zkServer.sh start命令就可以启动了。

安装Kafka

我们已经成功地安装了Java和Zookeeper, 下一步就是安装Apache Kafka了。笔者在写这篇文章时最新的Kafka版本是0.10.1.1,还是先下载吧: Kafka 0.10.1.1 (我选择了使用Scala2.11编译的版本,Scala2.12编译的版本目前还是测试预览版本) 然后仍然是解压、启动:

okay! Kafka已经成功启动了并且能够成功地创建topic了。我们生产几条消息,看看稍后能否消费这些消息:

下面我们尝试去消费这些消息:

你可以看到可以看到这两条消息打印在你的控制台上。这就证明了Kafka已经被成功启动并且可以正常地工作。

同样地,这是Kafka的单机模式。如果要搭建多节点集群,那么我们需要简单地了解一下Kafka的配置文件,然后使用它搭建集群环境。
Kafka的配置文件位于config目录下,名字叫server.properties。在这个配置文件中,最关键的三个参数是:

  1. broker.id
  2. logs.dirs
  3. zookeeper.connect

这三个参数是必须要配置的。假设我们现在要搭建由3台机器组成的Kafka集群,那么每台机器上的这三个配置文件分别为:
broker.id=0
logs.dirs=/home/kafka/data
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181

broker.id=1
logs.dirs=/home/kafka/data
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181

broker.id=2
logs.dirs=/home/kafka/data
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181

你可以看到broker.id配置成了不同的数字,通常broker的序号从0开始,我们也建议你配置成这样。做完这些之后,在每台机器上分别运行之前的启动命令,一个3节点Kafka集群就安装完毕了。当然Kafka提供了超多的参数用于控制各种行为,有兴趣的话可以自己去官方的配置列表中学习每个参数的具体用法。

© 著作权归作者所有

上一篇: Streaming 101
huxihx
粉丝 1
博文 18
码字总数 30674
作品 0
东城
程序员
私信 提问
Kafka安装部署(Linux环境)

环境准备 JDK:建议版本在 1.7 及以上,否则可能会报如下错误:java.lang.UnsupportedClassVersionError (安装步骤略) ZooKeeper:Kafka 的安装包中自带 zookeeper,但并不建议使用之,最好...

qq_29116427
2018/04/15
0
0
playbook自动安装kafka集群

一、环境说明 1、服务器信息 2、软件版本信息 二、配置准备 1、编写playbook相关配置文件,先tree看下整目录结构 B、zookeeper的templates文件 C、zookeeper的host文件 D、zookeeper的安装的...

navyaijm2012
08/16
0
0
Flink消费kafka消息实战

版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/85549434 本次实战的内容是开发Flink应用,消费来自kafka的消息,进行实时计算; 环境情况 ...

博陵精骑
01/01
0
0
如何在CDH中安装Kudu&Spark2&Kafka

1.概述 在CDH的默认安装包中,是不包含Kafka,Kudu和Spark2的,需要单独下载特定的Parcel包才能安装相应服务。本文档主要描述在离线环境下,在CentOS6.5操作系统上基于CDH5.12.1集群,使用C...

hblt-j
2018/09/04
117
1
集群四部曲(四):完美的Kafka集群搭建

之前写过一篇关于Kafka消息的发布-订阅,只不过是基于一台服务器,不够全面,下面我要说下Kafka集群环境的搭建和消息的发布-订阅,希望大家喜欢。下面的集群搭建是基于单机部署的环境,所以大...

海岸线的曙光
2018/03/20
231
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部