kafka详解(02) - kafka_2.11-2.4.1安装部署

环境准备

下载安装包

官网下载地址:https://kafka.apache.org/downloads.html

2.4.1版本下载地址:https://archive.apache.org/dist/kafka/2.4.1/kafka_2.11-2.4.1.tgz

Kafka安装包版本使用scala_2.11的版本,即kafka_2.11-kafka版本号.tgz的安装包,经测试scala_2.12的版本在增加topic时非常的慢,具体原因未定位, scala_2.13版本的未测试过

集群规划

hadoop102

hadoop103

hadoop104

zk

zk

zk

kafka

kafka

kafka

Zookeeper环境

Kafka集群需要依赖zookeeper环境,zookeeper安装请参考文档《Zookeeper详解(02) - zookeeper安装部署-单机模式-集群模式》

集群部署

上传解压

将安装包kafka_2.11-2.4.1.tgz上传到服务器的/opt/software并解压到指定目录

[hadoop@hadoop102 software]$ tar -zxvf kafka_2.11-2.4.1.tgz -C /opt/module/

修改解压后的文件夹名称

[hadoop@hadoop102 software]$ cd /opt/module/

[hadoop@hadoop102 module]$ mv kafka_2.11-2.4.1/ kafka

在/opt/module/kafka目录下创建logs文件夹

[hadoop@hadoop102 module]$ cd kafka/

[hadoop@hadoop102 kafka]$ mkdir logs

修改配置文件

[hadoop@hadoop102 kafka]$ cd config/

[hadoop@hadoop102 config]$ vi server.properties

修改以下内容:

#broker的全局唯一编号,不能重复

broker.id=0

#删除topic功能使能,当前版本此配置默认为true,已从配置文件移除

delete.topic.enable=true

#处理网络请求的线程数量

num.network.threads=3

#用来处理磁盘IO的线程数量

num.io.threads=8

#发送套接字的缓冲区大小

socket.send.buffer.bytes=102400

#接收套接字的缓冲区大小

socket.receive.buffer.bytes=102400

#请求套接字的缓冲区大小

socket.request.max.bytes=104857600

#kafka运行日志存放的路径

log.dirs=/opt/module/kafka/logs

#topic在当前broker上的分区个数

num.partitions=1

#用来恢复和清理data下数据的线程数量

num.recovery.threads.per.data.dir=1

#segment文件保留的最长时间,超时将被删除

log.retention.hours=168

#配置连接Zookeeper集群地址,zookeeper的host必须要用主机名或hosts中配置的映射,不能直接使用ip地址,直接使用ip会出现无法连接的现象

zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181

分发安装包

[hadoop@hadoop102 module]$ scp -r kafka/ hadoop103:/opt/module/

[hadoop@hadoop102 module]$ scp -r kafka/ hadoop104:/opt/module/

配置环境变量(可选)

sudo vim /etc/profile

#KAFKA_HOME

export KAFKA_HOME=/opt/module/kafka

export PATH=$PATH:$KAFKA_HOME/bin

立即生效

source /etc/profile

修改hadoop103和hadoop104上的broker.id

分别在hadoop103和hadoop104上修改配置文件/opt/module/kafka/config/server.properties中的broker.id=1、broker.id=2

集群中每个节点的broker.id不得重复

集群启停

先启动Zookeeper集群

[hadoop@hadoop102 module]$ myzookeeper.sh start

依次在hadoop102、hadoop103、hadoop104节点上启动kafka

[hadoop@hadoop102 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

[hadoop@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

[hadoop@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

查看进程

[hadoop@hadoop102 kafka]$ jpsall

=============== hadoop102 ===============

1237 QuorumPeerMain

1610 Kafka

=============== hadoop103 ===============

1236 QuorumPeerMain

1612 Kafka

=============== hadoop104 ===============

1603 Kafka

1236 QuorumPeerMain

停止kafka集群

[hadoop@hadoop102 kafka]$ bin/kafka-server-stop.sh stop

[hadoop@hadoop103 kafka]$ bin/kafka-server-stop.sh stop

[hadoop@hadoop104 kafka]$ bin/kafka-server-stop.sh stop

kafka群起脚本

[hadoop@hadoop102 kafka]$ vi /home/hadoop/bin/mykafka.sh

添加如下内容

#!/bin/bash

if [ $# -lt 1 ]

then

echo "Input Args Error....."

exit

fi

for i in hadoop102 hadoop103 hadoop104

do

case $1 in

start)

echo "==================START $i KAFKA==================="

ssh $i /opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties

;;

stop)

echo "==================STOP $i KAFKA==================="

ssh $i /opt/module/kafka/bin/kafka-server-stop.sh stop

;;

*)

echo "Input Args Error....."

exit

;;

esac

done

添加可执行权限

[hadoop@hadoop102 kafka]$ chmod +x /home/hadoop/bin/mykafka.sh

使用脚本启动kafka集群

[hadoop@hadoop102 kafka]$ mykafka.sh start

使用脚本停止kafka集群

[hadoop@hadoop102 kafka]$ mykafka.sh stop

Kafka基础命令行操作

1)创建topic

[hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --create --replication-factor 3 --partitions 1 --topic test

选项说明:

--topic 定义topic名

--replication-factor 定义副本数

--partitions 定义分区数

2)查看当前服务器中的所有topic

[hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list

3)向topic中发送消息

[hadoop@hadoop102 kafka]$ bin/kafka-console-producer.sh --broker-list hadoop102:9092 --topic test

>hello kafka

>hello hadoop

4)从指定topic消费消息

从此刻最新发送到消息开始消费

[hadoop@hadoop102 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic test

加--from-beginning:会把主题中现有的所有的数据都读取出来

[hadoop@hadoop102 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic test

5)查看某个Topic的详情

[hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --describe –-topic test

6)修改分区数

bin/kafka-topics.sh --zookeeper hadoop102:2181 --alter –-topic test --partitions 6

7)删除topic

[hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --delete --topic test

kafka详解(02) - kafka_2.11-2.4.1安装部署的更多相关文章

  1. 《算法详解:C++11语言描述》已出版

    经过漫长的编写.修订和印刷过程,书籍<算法详解:C++11语言描述>终于出版了!目前本书已在各大电商平台上架,搜索书名即可找到对应商品.本书的特色在于: 介绍最新的C++11.C++14和 ...

  2. Kafka 详解(二)------集群搭建

    这里通过 VMware ,我们安装了三台虚拟机,用来搭建 kafka集群,虚拟机网络地址如下: hostname                      ipaddress             ...

  3. Kafka详解与总结(一)

    1. Kafka概述 1.1. 消息队列 1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推 ...

  4. Linux用户、用户组权限管理详解 --- 02

    2,用户.用户组管理操作详解: 2.1 adduser 添加用户: adduser [-u uid][-g group][-d home][-s shell] -u:直接给出userID        ...

  5. [转]kafka详解

    一.入门     1.简介     Kafka is a distributed,partitioned,replicated commit logservice.它提供了类似于JMS的特性,但是在设 ...

  6. 大数据入门第十七天——storm上游数据源 之kafka详解(一)入门与集群安装

    一.概述 1.kafka是什么 根据标题可以有个概念:kafka是storm的上游数据源之一,也是一对经典的组合,就像郭德纲和于谦 根据官网:http://kafka.apache.org/intro ...

  7. (转)kafka 详解

    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建(转) 问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的 ...

  8. 大数据入门第十七天——storm上游数据源 之kafka详解(二)常用命令

    一.kafka常用命令 1.创建topic bin/kafka-topics. --replication-factor --zookeeper mini1: // 如果配置了PATH可以省略相关命令 ...

  9. kafka详解

    一.基本概念 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计. 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语:Kafk ...

  10. Kafka详解六:Kafka如何通过源码实现监控

    问题导读: 1.kafka的消费者组的消费偏移存储,kafka支持两个版本?        2.ConsumerOffsetChecker类的作用是什么?        3.Kafka如何通过源码实现 ...

随机推荐

  1. 记录一次成功反混淆脱壳及抓包激活app全过程

    记录一次成功反混淆脱壳及抓包激活app全过程 前言 ​ 近期接到一个需求,要对公司之前开发的一款app进行脱壳.因为该app是两年前开发的,源代码文件已经丢失,只有加壳后的apk文件,近期要查看其中一 ...

  2. C# 8.0 添加和增强的功能【基础篇】

    .NET Core 3.x和.NET Standard 2.1支持C# 8.0. 一.Readonly 成员 可将 readonly 修饰符应用于结构的成员,来限制成员为不可修改状态.这比在C# 7. ...

  3. pycharm安装第三方的包

    这里以安装selenium为例子 在file下找到settings 在弹出的窗口点击python interpreter ,然后在右侧点击[+] 在弹窗顶部输入要导入的包名,在下方列表找到对应包后,点 ...

  4. SimpleDateFormat线程安全问题排查

    一. 问题现象 运营部门反馈使用小程序配置的拉新现金红包活动二维码,在扫码后跳转至404页面. 二. 原因排查 首先,检查扫码后的跳转链接地址不是对应二维码的实际URL,根据代码逻辑推测,可能是acc ...

  5. TKK: 更新 TKK 失败,请检查网络连接 idea翻译错误-IDEA翻译失败-Translation用不了

    IDEA 提示:更新 TKK 失败,请检查网络连接 解决方法: 1.进入 C:\Windows\System32\drivers\etc 找到 hosts文件修改 注意:如果用记事本打开不能修改,则修 ...

  6. 12 张图看懂 CPU 缓存一致性与 MESI 协议,真的一致吗?

    本文已收录到  GitHub · AndroidFamily,有 Android 进阶知识体系,欢迎 Star.技术和职场问题,请关注公众号 [彭旭锐] 进 Android 面试交流群. 前言 大家好 ...

  7. shell文件报错syntax error near unexpected token '$'\r''

    本来跑的好好得一个文件,在windows下修改了,然后移植到linux就报错了. 找了一圈以下是解决方案: 这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n" ...

  8. JAVA 用分苹果来理解本题

    思路 其实这是一道非常经典的分苹果问题:有m个一样的苹果和n个一样的盘子,把苹果放盘子里,每个盘子允许0-m个苹果,求问有多少种分法? 与本题的共通之点在于,输入的正整数可以看成m个苹果,拆分出的加数 ...

  9. day19-web开发会话技术01

    WEB开发会话技术01 1.会话 Web开发中,用到的4种会话跟踪技术 - 博客园 (cnblogs.com) 会话的基本介绍 什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服 ...

  10. 痞子衡嵌入式:MCUXpresso IDE下高度灵活的FreeMarker链接文件模板机制

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是MCUXpresso IDE下高度灵活的FreeMarker链接文件模板机制. 痞子衡之前写过一篇文章 <MCUXpresso I ...