Kafka 安装与配置详细过程

本节详细介绍 Kafka 运行环境的搭建,为了节省篇幅,本节的内容以 Linux CentOS 作为安装演示的操作系统,其他 Linux 系列的操作系统也可以参考本节的内容。具体的操作系统的信息如下:

[root@node1 ~]# uname -a
Linux node1 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@node1 ~]# cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m

由第1节中第1张图可知,搭建 Kafka 运行环境还需要涉及 ZooKeeper,Kafka 和 ZooKeeper 都是运行在 JVM 之上的服务,所以还需要安装 JDK。Kafka 从2.0.0版本开始就不再支持 JDK7 及以下版本,本节就以 JDK8 为例来进行演示。

1. JDK的安装与配置

很多学习 Kafka 的读者也都是 JVM 系语言的支持者,如果你的操作系统中已经安装了 JDK8 及以上版本则可以跳过这段内容。

安装 JDK 的第一步就是下载 JDK 1.8的安装包,可以进入 Oracle 官网页面进行下载。示例中选择的安装包是 jdk-8u181-linux-x64.tar.gz,我们这里将其先复制至/opt 目录下,本书所有与安装有关的操作都在这个目录下进行。

其次将/opt 目录下的安装包解压,相关信息如下:

[root@node1 opt]# ll jdk-8u181-linux-x64.tar.gz
-rw-r--r-- 1 root root 185646832 Aug 31 14:48 jdk-8u181-linux-x64.tar.gz
[root@node1 opt]# tar zxvf jdk-8u181-linux-x64.tar.gz
# 解压之后当前/opt目录下生成一个名为jdk1.8.0_181的文件夹
[root@node1 opt]# cd jdk1.8.0_181/
[root@node1 jdk1.8.0_181]# pwd
/opt/jdk1.8.0_181
# 上面这个就是当前JDK8的安装目录

然后配置 JDK 的环境变量。修改/etc/profile 文件并向其中添加如下配置:

export JAVA_HOME=/opt/jdk1.8.0_181
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=./://$JAVA_HOME/lib:$JRE_HOME/lib

再执行 source /etc/profile 命令使配置生效,最后可以通过 java –version命令验证 JDK 是否已经安装配置成功。如果安装配置成功,则会正确显示出 JDK 的版本信息,参考如下:

[root@node1 ~]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

2. ZooKeeper安装与配置

ZooKeeper 是安装 Kafka 集群的必要组件,Kafka 通过 ZooKeeper 来实施对元数据信息的管理,包括集群、broker、主题、分区等内容。

ZooKeeper 是一个开源的分布式协调服务,是 Google Chubby的一个开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护等功能。

在 ZooKeeper 中共有3个角色:leader、follower 和 observer,同一时刻 ZooKeeper 集群中只会有一个 leader,其他的都是 follower 和 observer。observer 不参与投票,默认情况下 ZooKeeper 中只有 leader 和 follower 两个角色。更多相关知识可以查阅 ZooKeeper 官方网站来获得。

安装 ZooKeeper 的第一步也是下载相应的安装包,安装包可以从官网中获得,示例中使用的安装包是 zookeeper-3.4.12.tar.gz,同样将其复制到/opt 目录下,然后解压缩,参考如下:

[root@node1 opt]# ll zookeeper-3.4.12.tar.gz
-rw-r--r-- 1 root root 36667596 Aug 31 15:55 zookeeper-3.4.12.tar.gz
[root@node1 opt]# tar zxvf zookeeper-3.4.12.tar.gz
# 解压之后当前/opt目录下生成一个名为zookeeper-3.4.12的文件夹
[root@node1 opt]# cd zookeeper-3.4.12
[root@node1 zookeeper-3.4.12]# pwd
/opt/zookeeper-3.4.12

第二步,向/etc/profile 配置文件中添加如下内容,并执行 source /etc/profile 命令使配置生效:

export ZOOKEEPER_HOME=/opt/zookeeper-3.4.12
export PATH=$PATH:$ZOOKEEPER_HOME/bin

第三步,修改 ZooKeeper 的配置文件。首先进入$ZOOKEEPER_HOME/conf目录,并将zoo_sample.cfg 文件修改为 zoo.cfg:

[root@node1 zookeeper-3.4.12]# cd conf
[root@node1 conf]# cp zoo_sample.cfg zoo.cfg

然后修改 zoo.cfg 配置文件,zoo.cfg 文件的内容参考如下:

# ZooKeeper服务器心跳时间,单位为ms
tickTime=2000
# 允许follower连接并同步到leader的初始化连接时间,以tickTime的倍数来表示
initLimit=10
# leader与follower心跳检测最大容忍时间,响应超过syncLimit*tickTime,leader认为
# follower“死掉”,从服务器列表中删除follower
syncLimit=5
# 数据目录
dataDir=/tmp/zookeeper/data
# 日志目录
dataLogDir=/tmp/zookeeper/log
# ZooKeeper对外服务端口
clientPort=2181

默认情况下,Linux 系统中没有/tmp/zookeeper/data 和/tmp/zookeeper/log 这两个目录,所以接下来还要创建这两个目录:

[root@node1 conf]# mkdir -p /tmp/zookeeper/data
[root@node1 conf]# mkdir -p /tmp/zookeeper/log

第四步,在${dataDir}目录(也就是/tmp/zookeeper/data)下创建一个 myid 文件,并写入一个数值,比如0。myid 文件里存放的是服务器的编号。

第五步,启动 Zookeeper 服务,详情如下:

[root@node1 conf]# zkServer.sh start
JMX enabled by default
Using config: /opt/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

可以通过 zkServer.sh status 命令查看 Zookeeper 服务状态,示例如下:

[root@node1 ]# zkServer.sh status
JMX enabled by default
Using config: /opt/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: Standalone

以上是关于 ZooKeeper 单机模式的安装与配置,一般在生产环境中使用的都是集群模式,集群模式的配置也比较简单,相比单机模式而言只需要修改一些配置即可。下面以3台机器为例来配置一个 ZooKeeper 集群。首先在这3台机器的 /etc/hosts 文件中添加3台集群的IP地址与机器域名的映射,示例如下(3个IP地址分别对应3台机器):

192.168.0.2 node1
192.168.0.3 node2
192.168.0.4 node3

然后在这3台机器的 zoo.cfg 文件中添加以下配置:

server.0=192.168.0.2:2888:3888
server.1=192.168.0.3:2888:3888
server.2=192.168.0.4:2888:3888

为了便于讲解上面的配置,这里抽象出一个公式,即 server.A=B:C:D。其中A是一个数字,代表服务器的编号,就是前面所说的 myid 文件里面的值。集群中每台服务器的编号都必须唯一,所以要保证每台服务器中的 myid 文件中的值不同。B代表服务器的IP地址。C表示服务器与集群中的 leader 服务器交换信息的端口。D表示选举时服务器相互通信的端口。如此,集群模式的配置就告一段落,可以在这3台机器上各自执行 zkServer.sh start 命令来启动服务。

3. Kafka的安装与配置

在安装完 JDK 和 ZooKeeper 之后,就可以执行 Kafka broker 的安装了,首先也是从官网中下载安装包,示例中选用的安装包是 kafka_2.11-2.0.0.tgz,将其复制至/opt 目录下并进行解压缩,示例如下:

[root@node1 opt]# ll kafka_2.11-2.0.0.tgz
-rw-r--r-- 1 root root 55751827 Jul 31 10:45 kafka_2.11-2.0.0.tgz
[root@node1 opt]# tar zxvf kafka_2.11-2.0.0.tgz
# 解压之后当前/opt目录下生成一个名为kafka_2.11-2.0.0的文件夹
[root@node1 opt]# cd kafka_2.11-2.0.0
[root@node1 kafka_2.11-2.0.0]#
# Kafka的根目录$KAFKA_HOME即为/opt/kafka_2.11-2.0.0,可以将Kafka_HOME添加到/etc/profile文件中,具体做法可以参考前面JDK和ZooKeeper的安装示例

接下来需要修改 broker 的配置文件 $KAFKA_HOME/conf/server.properties。主要关注以下几个配置参数即可:

# broker的编号,如果集群中有多个broker,则每个broker的编号需要设置的不同
broker.id=0
# broker对外提供的服务入口地址
listeners=PLAINTEXT://localhost:9092
# 存放消息日志文件的地址
log.dirs=/tmp/kafka-logs
# Kafka所需的ZooKeeper集群地址,为了方便演示,我们假设Kafka和ZooKeeper都安装在本机
zookeeper.connect=localhost:2181/kafka

如果是单机模式,那么修改完上述配置参数之后就可以启动服务。如果是集群模式,那么只需要对单机模式的配置文件做相应的修改即可:确保集群中每个 broker 的 broker.id 配置参数的值不一样,以及 listeners 配置参数也需要修改为与 broker 对应的IP地址或域名,之后就可以各自启动服务。注意,在启动 Kafka 服务之前同样需要确保 zookeeper.connect 参数所配置的 ZooKeeper 服务已经正确启动。

启动 Kafka 服务的方式比较简单,在$KAFKA_HOME 目录下执行下面的命令即可:

bin/kafka-server-start.sh config/server.properties

如果要在后台运行 Kafka 服务,那么可以在启动命令中加入 -daemon 参数或&字符,示例如下:

bin/kafka-server-start.sh –daemon config/server.properties
# 或者
bin/kafka-server-start.sh config/server.properties &

可以通过 jps 命令查看 Kafka 服务进程是否已经启动,示例如下:

[root@node1 kafka_2.11-2.0.0]# jps -l
23152 sun.tools.jps.Jps
16052 org.apache.zookeeper.server.quorum.QuorumPeerMain
22807 kafka.Kafka  # 这个就是Kafka服务端的进程

到此这篇关于Kafka 安装与配置的文章就介绍到这了,更多相关Kafka 安装与配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • kafka安装部署超详细步骤

    目录 概述 Step 1: 下载代码 Step 2: 启动服务 Step 3:创建一个主题 Step 4: 发送消息 Step 5: 消费消息 Step 6: 设置多个broker集群(单机伪集群的配置) Step 7: 测试集群的容错能力 7.1发布消息到集群 7.2消费消息 7.3干掉leader,测试集群容错 7.4再次消费消息,确认消息没有丢失 概述 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当

  • docker部署kafka的方法步骤

    目录 1. 搭建docker 2.进入容器 3.修改配置文件 4.测试kafka 1. 搭建docker 这里我直接用的是docker-compose部署,所以需要提前安装好compose. 既然要用compose那么yml文件自然是少不了的. 首先要新建一个目录,并在目录中新建一个yml文件 文件的内容如下: version: '2' services: zookeeper: image: wurstmeister/zookeeper volumes: - ./data:/data ports

  • 带你玩转Kafka之初步使用

    目录 前言 1 简单介绍 2 下载安装 3 基本使用 3.1 启动Kafka 3.2 简单测试使用 3.3 搭建多代理集群 3.3.1 开始搭建 3.3.2 使用 3.3.3 验证容错性 4 小总结 总结 前言 官方文档:http://kafka.apache.org/ 中文文档:https://kafka.apachecn.org/ Apache Kafka是分布式发布-订阅消息系统. Apache Kafka与传统消息系统相比,有以下不同: 它被设计为一个分布式系统,易于向外扩展: 它同时为

  • 一文秒懂 kafka HA(高可用)

    目录 01名词解释 02kafka HA 03kafka架构中zookeeper的结构 04broker failover 05 controller failover 我们知道,kafka中每个topic被划分为多个partition,每个partition又有多个副本,那么这些分区副本是怎么均匀的分布在整个kafka集群的broker节点上的?partition副本的leader是通过什么算法选举出来的?partition副本的follower是怎么复制备份leader的数据的?本文我们就来

  • windows下使用 intellij idea 编译 kafka 源码环境

    1. 从 GitHub 网站,git clone kafka 源码 2. 下载安装好 gradle,scala 2.1 从 dependencies.gradle 文件中找到 gradle 的版本,然后下载指定版本,并配置好 GRADLE_HOME 环境变量 3. 进入 kafka 项目目录,依次执行 gradle wrapper,gradle idea,gradle build --exclude-task test 4. 将工程导入到 idea 4.1 启动主类 kafka.Kafka 4.

  • 深入解析kafka 架构原理

     kafka 架构原理 大数据时代来临,如果你还不知道Kafka那就真的out了!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP10银行,8家TOP10保险公司,9家TOP10电信公司等等.LinkedIn.Microsoft和Netflix每天都用Kafka处理万亿级的信息.本文就让我们一起来大白话kafka的架构原理. kafka官网:http://kafka.apache.org/ 01 kafka简介 Kafka最初由Linkedin公

  • Kafka 安装与配置详细过程

    本节详细介绍 Kafka 运行环境的搭建,为了节省篇幅,本节的内容以 Linux CentOS 作为安装演示的操作系统,其他 Linux 系列的操作系统也可以参考本节的内容.具体的操作系统的信息如下: [root@node1 ~]# uname -a Linux node1 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux [root@node1 ~]# cat

  • 在麒麟V10服务器上编译安装Storm的详细过程

    1 简介 Apache Storm是一个免费开源.分布式.高容错的实时计算系统,可以用来处理大量的数据,类似于Hadoop.Apache Storm是用Java和Clojure写的. 2 准备工作 源码下载地址: https://github.com/apache/storm 这里下载了1.1.0版本进行验证: 1.1.0 https://archive.apache.org/dist/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz 验证环境

  • 使用vmware测试PXE批量安装服务器的详细过程

    目录 一.准备阶段 1.准备环境 2.安装方式 3.网卡配置 二.安装阶段 1.安装httpd 2.安装tftp-server 3.复制pxe文件 4.安装dhcp服务 三.安装kickstart自动安装工具 四.在客户主机上测试 五.相关服务 一.准备阶段 1.准备环境 Vmware workstation Centos7一台做pxe-server 地址:192.168.138.5 子网掩码:255.255.255.0 网关:192.168.138.2 关闭selinux和防火墙 2.安装方式

  • win10环境安装kettle与linux环境安装kettle的详细过程

    目录 前言 一.Kettle下载 : 1.kettle源代码下载地址 : 2.官网下载 3.JDK安装 二.win10环境安装kettle 1.解压kettle 2.双击spoon启动 3.启动界面如下: 三.linux环境安装kettle 1.上传kettle压缩包到linux 2.解压安装包 3.linux下启动kettle 总结 前言 kettle是一款免费开源的.可视化的.国际上比较流行的.功能强大的ETL必备工具,在ETL这一方面做的还不错,下面介绍一下基于win10操作系统安装ket

  • Centos8安装mysql8的详细过程(免安装版/或者二进制包方式安装)

    目录 二进制包方式安装 一.首先检查服务器上是否安装有mysql: 二.开始安装配置mysql 在Navicat上测试连接 二进制包方式安装 一.首先检查服务器上是否安装有mysql: 第一步:查看mysql安装版本rpm -qa|grep -i mysql 第二步:卸载Mysqlrpm -ev --nodeps [上一步查询到的mysql版本名称] 最后删除关于mysql相关的文件夹:查找根目录下所有者是mysql和有mysql名称的文件find / -user mysqlfind / -na

  • Centos7安装JDK1.8详细过程实战记录

    目录 前言 一.OpenJDK1.8 详细步骤 1.检查当前机器是否有自带的JDK 2.如果没有 则跳至安装步骤,有的话 进行卸载 3.更新yum源 4.搜索yum中的软件包 5.安装OpenJDK 6.验证是否安装成功 7.其它常见问题: 二.OracleJDK1.8 详细步骤 1.查看java版本: 2.查看java相关: 3.删除openjdk—xxxx: 4.检查java版本: 5.下载jdk安装包: 6.切换到目录下解压 7.配置JDK 8.让环境变量生效: 9.检查是否配置成功 总结

  • MySQL5.7的安装与配置详细操作步骤

    一.MySQL的下载  1.登陆MySQL的官网下载适用于64位系统的ZIP压缩包(https://dev.mysql.com/downloads/mysql/) 二.解压安装包 将下载的ZIP压缩包解压到任意文件夹.(此处为: C:\mysql5.7) 三.修改配置文件 将解压文件夹目录下的my-default.ini 文件重命名为 my.ini  . 用文本编辑器打开并清空其中内容. 添加内容(参考互联网): [mysql] # 设置mysql客户端默认字符集 default-charact

  • WIN10环境 Maven的安装与配置详细教程

    WIN10环境 Maven的安装与配置,步骤如下所示: 第一步:安装JDK并配置环境变量     注意:全部配置到系统变量或者用户变量!! cmd输入java -version验证是否安装: 第二步:安装Maven 下载地址: http://maven.apache.org/download.cgi 下载好之后,解压并选择存放路径: 第三步:Maven环境变量配置 首先打开我的电脑->属性->高级系统设置. 新建系统变量:MAVEN_HOME,复制Maven的路径: 在系统变量:Path中复制

  • MySQL的安装与配置详细教程

    免安装版的Mysql MySQL是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的 标准化语言,其特点为体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,在 Web应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一. 在本博文里,我主要以Mysql免安装版为例,帮助大家解决安装与配置mysql的步骤. 首先:要先进入mysql官网里(Mysql的官网-->https

  • VirtualBox安装CentOS及JDK、Hadoop的安装与配置详细教程

    目录 1.先决条件 1.1 支持平台 1.2 jdk及hadoop安装包 1.3 Xshell 7与Xftp 7工具安装 2.具体安装步骤 2.1 网络配置 2.2 Xshell连接 2.3 Xftp传输 2.4 jdk环境配置 2.5 ssh服务配置 2.6 hadoop配置 2.7 hadoop单机模式操作方法 1.先决条件 1.1 支持平台 GNU/Linux是产品开发和运行的平台. Hadoop已在有2000个节点的GNU/Linux主机组成的集群系统上得到验证. 所以首先我们需要下载L

随机推荐