在Linux环境下安装Kafka

目录
  • 二、生产与消费
    • 2.1 kafka-topics.sh 用于管理主题
    • 2.2 kafka-console-consumer.sh用于消费消息
    • 2.3 kafka-console-producer.sh用于生产消息
    • 2.4 具体操作

一、环境准备

jdk下载地址链接:下载地址

zookeeper下载地址链接:下载地址

kafka下载地址链接:下载地址

1.1 Java环境为前提

1.1.1 上传jdk-8u261-linux-x64.rpm到服务器并安装

# 安装命令
rpm -ivh jdk-8u261-linux-x64.rpm 

1.1.2 配置环境变量

# 编辑配置文件,jdk的bin目录到/etc/profile文件,对所有用户的shell有效
vim /etc/profile
# 生效
source /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
export PATH=$PATH:$JAVA_HOME/bin

# 验证
java -version

至此,jdk安装成功。

1.2 Zookeeper的安装配置

1.2.1 上传zookeeper-3.4.14.tar.gz到服务器,解压到/opt

# 解压zk到指定目录
tar -zxf zookeeper-3.4.14.tar.gz -C /opt

1.2.2 修改Zookeeper保存数据的目录,dataDir

# 进入conf配置目录
cd /opt/zookeeper-3.4.14/conf
# 复制zoo_sample.cfg命名为zoo.cfg
cp zoo_sample.cfg zoo.cfg
# 编辑zoo.cfg文件
vim zoo.cfg
dataDir=/var/riemann/zookeeper/data


1.2.3 编辑/etc/profile,使配置生效

设置环境变量ZOO_LOG_DIR,指定Zookeeper保存日志的位置;
ZOOKEEPER_PREFIX指向Zookeeper的解压目录;
Zookeeperbin目录添加到PATH中:

export ZOOKEEPER_PREFIX=/opt/zookeeper-3.4.14
export PATH=$PATH:$ZOOKEEPER_PREFIX/bin
export ZOO_LOG_DIR=/var/riemann/zookeeper/log

配置完以后再生效配置:

source /etc/profile 

1.2.4 启动Zookeeper,确认Zookeeper的状态

zkServer.sh start

至此,zookeeper安装成功。

1.3 Kafka 的安装与配置

1.3.1 上传kafka_2.12-1.0.2.tgz到服务器并解压

tar -zxf kafka_2.12-1.0.2.tgz -C /opt

1.3.2 配置环境变量并生效

vim /etc/profile 
export KAFKA=/opt/kafka_2.12-1.0.2
export PATH=$PATH:$KAFKA/bin
source /etc/profile 

1.3.3 配置/opt/kafka_2.12-1.0.2/config中的server.properties文件

vi  /opt/kafka_2.12-1.0.2/config/server.properties

Kafka连接Zookeeper的地址,此处使用本地启动的Zookeeper实例
连接地址是localhost:2181
后面的 myKafkaKafka在Zookeeper中的根节点路径

配置kafka存储持久化数据目录

log.dirs=/var/riemann/kafka/kafka-logs

创建上述持久化数据目录

mkdir -p /var/riemann/kafka/kafka-logs

1.4 启动Kafka

进入Kafka安装的根目录,执行如下命令:

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

启动成功,可以看到控制台输出的最后一行的started状态:此时kafka安装成功。

1.5 重新开一个窗口,查看Zookeeper的节点

1.6 此时Kafka是前台模式启动,要停止,使用Ctrl+C

如果要后台启动,使用命令:

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

查看Kafka的后台进程:

ps -ef | grep kafka

停止后台运行的Kafka:

kafka-server-stop.sh 

二、生产与消费

查看zookeeper状态,zookeeper启动成功,再启动kafka。

2.1 kafka-topics.sh 用于管理主题

查看命令的帮助信息

[root@master1 bin]# kafka-topics.sh
Create, delete, describe, or change a topic.
Option                                   Description
------                                   -----------
--alter                                  Alter the number of partitions,
                                           replica assignment, and/or
                                           configuration for the topic.
--config <String: name=value>            A topic configuration override for the
                                           topic being created or altered.The
                                           following is a list of valid
                                           configurations:
                                         	cleanup.policy
                                         	compression.type
                                         	delete.retention.ms
                                         	file.delete.delay.ms
                                         	flush.messages
                                         	flush.ms
                                         	follower.replication.throttled.
                                           replicas
                                         	index.interval.bytes
                                         	leader.replication.throttled.replicas
                                         	max.message.bytes
                                         	message.format.version
                                         	message.timestamp.difference.max.ms
                                         	message.timestamp.type
                                         	min.cleanable.dirty.ratio
                                         	min.compaction.lag.ms
                                         	min.insync.replicas
                                         	preallocate
                                         	retention.bytes
                                         	retention.ms
                                         	segment.bytes
                                         	segment.index.bytes
                                         	segment.jitter.ms
                                         	segment.ms
                                         	unclean.leader.election.enable
                                         See the Kafka documentation for full
                                           details on the topic configs.
--create                                 Create a new topic.
--delete                                 Delete a topic
--delete-config <String: name>           A topic configuration override to be
                                           removed for an existing topic (see
                                           the list of configurations under the
                                           --config option).
--describe                               List details for the given topics.
--disable-rack-aware                     Disable rack aware replica assignment
--force                                  Suppress console prompts
--help                                   Print usage information.
--if-exists                              if set when altering or deleting
                                           topics, the action will only execute
                                           if the topic exists
--if-not-exists                          if set when creating topics, the
                                           action will only execute if the
                                           topic does not already exist
--list                                   List all available topics.
--partitions <Integer: # of partitions>  The number of partitions for the topic
                                           being created or altered (WARNING:
                                           If partitions are increased for a
                                           topic that has a key, the partition
                                           logic or ordering of the messages
                                           will be affected
--replica-assignment <String:            A list of manual partition-to-broker
  broker_id_for_part1_replica1 :           assignments for the topic being
  broker_id_for_part1_replica2 ,           created or altered.
  broker_id_for_part2_replica1 :
  broker_id_for_part2_replica2 , ...>
--replication-factor <Integer:           The replication factor for each
  replication factor>                      partition in the topic being created.
--topic <String: topic>                  The topic to be create, alter or
                                           describe. Can also accept a regular
                                           expression except for --create option
--topics-with-overrides                  if set when describing topics, only
                                           show topics that have overridden
                                           configs
--unavailable-partitions                 if set when describing topics, only
                                           show partitions whose leader is not
                                           available
--under-replicated-partitions            if set when describing topics, only
                                           show under replicated partitions
--zookeeper <String: urls>               REQUIRED: The connection string for
                                           the zookeeper connection in the form
                                           host:port. Multiple URLS can be
                                           given to allow fail-over.
[root@master1 bin]#
# 列出现有的主题
[root@master1 ~]# kafka-topics.sh --list --zookeeper localhost:2181/myKafka
# 创建主题,该主题包含一个分区,该分区为Leader分区,它没有Follower分区副本。
[root@master1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --create --topic topic_test --partitions 1 --replication-factor 1
# 查看分区信息
[root@master1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --list
# 查看指定主题的详细信息
[root@master1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --describe --topic topic_test
# 删除指定主题
[root@master1 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --delete --topic topic_test

列出现有主题,创建主题,该主题包含一个分区,该分区为Leader分区,它没有Follower分区副本。

查看指定主题的详细信息

创建主题,该主题包含多个分区

多个分区:横向扩展
多个副本:高可用

2.2 kafka-console-consumer.sh用于消费消息

# 开启消费者
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_test
# 开启消费者方式二,从头消费,不按照偏移量消费
[root@node1 ~]# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_test --from-beginning

2.3 kafka-console-producer.sh用于生产消息

# 开启生产者
[root@node1 ~]# kafka-console-producer.sh --topic topic_test --broker-list  localhost:9020

2.4 具体操作

开启消费者和生产者,生产并消费消息。

消费者,按照偏移量消费

消费者从头消费,不按照偏移量消费

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

(0)

相关推荐

  • Linux下Kafka分布式集群安装教程

    Kafka(http://kafka.apache.org/) 是由 LinkedIn 使用 Scala 编写的一个分布式消息系统,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础,具有高水平扩展和高吞吐量.Spack.Elasticsearch 都支持与 Kafka 集成.下面看一下几种分布式开源消息队列系统的对比: Kafka 集群架构: 一般不建议直接使用 Kafka 自带的 Zookeeper 建立 zk 集群,这里我们使用独

  • Linux下Kafka单机安装配置方法(图文)

    介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: •Kafka将消息以topic为单位进行归纳. •将向Kafka topic发布消息的程序成为producers. •将预订topics并消费消息的程序成为consumer. •Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker. producers通过网络将消息发送到Kafka集群,集群

  • 在Linux环境下安装Kafka

    目录 二.生产与消费 2.1 kafka-topics.sh 用于管理主题 2.2 kafka-console-consumer.sh用于消费消息 2.3 kafka-console-producer.sh用于生产消息 2.4 具体操作 一.环境准备 jdk下载地址链接:下载地址 zookeeper下载地址链接:下载地址 kafka下载地址链接:下载地址 1.1 Java环境为前提 1.1.1 上传jdk-8u261-linux-x64.rpm到服务器并安装 # 安装命令 rpm -ivh jd

  • linux环境下安装 openOffice 并启动服务 的方法

    一.背景故事 这两天遇到一个大坑,客户要做office 文档在线预览功能,于是乎就要把office文档转换成pdf交给前端显示.      在某度找了一圈都说openOffice+jodconverter 可以搞定这个事情.代码倒是很好找,不过版本很多,各类jar包也很多,但尝试下来发现,转化效果很一般,复杂的excel也无法成功.有同事建议放到服务器上效果可能好些,于是就开始折腾在服务器上安装OpenOffice这个事情.网上各种找大神的博文,发现安装起来不是很顺畅,就写了这篇随笔,记录一下,

  • linux环境下安装PHP的OpenSSL扩展的方法讲解

    先安装依赖包:yum install openssl openssl-devel 进入PHP安装包里的OpenSSL文件夹,根据个人的安装包位置不同,此处是 cd /home/local/php.5.6.25/ext/openssl/ phpize 可能会报错:Cannot find config.m4. Make sure that you run /usr/local/bin/phpize in the top level source directory of the module, 在当

  • linux环境下安装python虚拟环境及注意事项

    创建python虚拟环境virtualenv.virtualenvwrapper 1,为什么需要搭建虚拟环境 由于当机器上两个项目依赖于相同包的不同版本时,会导致项目运行失败,此时可以安装虚拟环境 . 2,什么是虚拟环境 虚拟环境就是python环境的复制版本 创建虚拟环境时需要有网络连接 3,安装python.pip.virtualenv ubuntu: sudo apt-get install python3 # 安装python3 sudo apt-get install python-p

  • linux环境下安装mysql数据库的详细教程

    1.安装数据库 1)yum -y install mysql-server(简单) yum命令自动从网上寻找mysql服务资源,下载至本地并完成安装 2)也可以自己在网上下载mysql服务,通过xftp传输至Linux系统,自己安装(一般安装在usr或opt目录下) 2.启动数据库 安装完毕,执行命令service mysqld start 3.登录数据库 mysql -u root -p回车后输入密码(mysql的默认用户是root,密码为空) 4.使用数据库 登录成功切换到mysql数据库,

  • python在linux环境下安装skimage的示例代码

    一.执行代码 yum install xz-devel yum install python-backports-lzma pip3 install scikit-image pip3 install backports.lzma 二.修改文件 修改文件路径 /usr/local/python3/lib/python3.6/lzma.py 修改文件部分内容 将 from _lzma import * from _lzma import _encode_filter_properties, _de

  • Linux环境下安装JDK1.8

    本文主要介绍的是如何是Linux环境下安装JDK的,因为Linux环境下,很多时候也离不开Java的,下面笔者就和大家一起分享如何jdk1.8的过程吧. 一.安装环境 操作系统:Red Hat Enterprise Linux 6 64 位(版本号6.6) JDK版本:1.8 工具:Xshell5.Xftp5 说明:本文是通过Xshell5工具远程连接Linux操作,如果是直接在Linux可视化界面操作那就更方便了,原理一样. 二.安装步骤 第一步:下载安装包 下载Linux环境下的jdk1.8

  • linux环境下安装mysql8.0过程介绍

    目录 前言 一.linux更改yum源(如果MYSQL安装慢可以试) 二.版本 三.安装 四.查看临时密码 五.配置外网可以访问 六.测试 七. 数据库卸载 八. 问题 总结 前言 借助同事写得笔记和自己在配置过程中遇到的坑,做一下记录. 一.linux更改yum源(如果MYSQL安装慢可以试) 简介:因为是官方yum,可能会导致安装比较慢,我们切换到国内的源. 第一步:进入yum配置文件目录 cd /etc/yum.repos.d/ 第二步:备份配置文件(如果后续出现了问题就可以恢复): mv

  • Linux环境下安装docker环境(亲测无坑)

    目录 安装前提条件 第一步:检查并清除系统残余项,并安装Docker依赖环境 第二步:Docker依赖环境搭建好之后,安装并启动Docker 安装前提条件 Docker 要求 CentOS 系统的内核版本高于 3.10 ,首先验证你的服务器是否支持Docker! 通过 uname -r 命令查看当前的内核版本 [root@iZbp18425116ezmjdmbdgeZ ~]# uname -r 4.18.0-193.14.2.el8_2.x86_64 可以看到我的服务器是4.18.0,是支持Do

  • Linux环境下安装mysql5.7.36数据库教程

    下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 上传到服务器 rz -be 解压文件 tar -xvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz 再移动并重命名一下 mv mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql 创建mysql用户组和用户并修改权限 groupadd mysql useradd -r -g mys

随机推荐